{"version":3,"sources":["refinersSearch.js","slider.js","bluebird.js","system-production.src.js"],"names":["refiners","btn","$","idDiv","attr","selectElement","undefined","deleteId","on","idElement","css","parent","closest","removeClass","removeAttr","length","document","finish","event","preventDefault","Id","this","next","addClass","refinersOut","drags","dragElement","resizeElement","container","e","startX","pageX","originalEvent","touches","dragWidth","outerWidth","posX","offset","left","containerOffset","containerWidth","minLeft","maxLeft","parents","moveX","leftValue","widthValue","exports","module","define","amd","f","window","global","self","Promise","t","n","r","s","o","u","a","_dereq_","i","Error","code","l","call","1","SomePromiseArray","_SomePromiseArray","any","promises","ret","promise","setHowMany","setUnwrap","init","prototype","2","firstLineError","schedule","Queue","util","Async","_customScheduler","_isTickUsed","_lateQueue","_normalQueue","_haveDrainedQueues","_trampolineEnabled","drainQueues","_drainQueues","_schedule","AsyncInvokeLater","fn","receiver","arg","push","_queueTick","AsyncInvoke","AsyncSettlePromises","_pushOne","setScheduler","prev","hasCustomScheduler","enableTrampoline","disableTrampolineIfNecessary","hasDevTools","haveItemsQueued","fatalError","isNode","process","stderr","write","stack","exit","throwLater","arguments","setTimeout","settlePromises","invokeLater","invoke","_settlePromises","_drainQueue","queue","shift","_reset","./queue","./schedule","./util","3","INTERNAL","tryConvertToPromise","debug","calledBind","rejectThis","_","_reject","targetRejected","context","promiseRejectionQueued","bindingPromise","_then","bindingResolved","thisArg","_bitField","_resolveCallback","target","bindingRejected","bind","_propagateFrom","propagateFromFunction","_boundValue","boundValueFunction","maybePromise","_target","_setBoundTo","_setOnCancel","obj","_boundTo","_isBound","value","resolve","4","old","bluebird","noConflict","./promise","5","cr","Object","create","callerCache","getterCache","getGetter","canEvaluate","isIdentifier","ensureMethod","methodName","message","classString","toString","TypeError","caller","pop","apply","namedGetter","indexedGetter","index","Math","max","args","slice","get","propertyName","getter","maybeGetter","6","PromiseArray","apiRejection","tryCatch","errorObj","async","_async","cancel","cancellation","_warn","child","_isCancellable","_cancelBy","_isFollowing","_followee","_cancelBranched","_cancellationParent","_setWillBeCancelled","_branchHasCancelled","_branchesRemainingToCancel","_enoughBranchesHaveCancelled","canceller","_invokeOnCancel","_cancel","_setCancelled","_cancelPromises","_length","_unsetOnCancel","_onCancelField","isPending","_isCancelled","isCancellable","isCancelled","_doInvokeOnCancel","onCancelCallback","internalOnly","isArray","_attachExtraTrace","_resultCancelled","_onCancel","_invokeInternalOnCancel","7","NEXT_FILTER","getKeys","keys","instances","cb","boundTo","predicateLoop","item","matchesPredicate","isObject","j","key","./es5","8","longStackTraces","contextStack","Context","_trace","CapturedTrace","peekContext","lastIndex","_promiseCreated","_pushContext","_popContext","_peekContext","trace","deactivateLongStackTraces","activateLongStackTraces","Promise_pushContext","Promise_popContext","Promise_PeekContext","Promise_peekContext","Promise_promiseCreated","ctx","9","unhandledRejectionHandled","possiblyUnhandledRejection","printWarning","getDomain","_getDomain","Warning","canAttachTrace","bluebirdFramePattern","nodeFramePattern","parseLinePattern","stackFramePattern","formatStack","indentStackFrames","debugging","env","warnings","wForgottenReturn","suppressUnhandledRejections","_ensurePossibleRejectionHandled","_setRejectionIsUnhandled","_notifyUnhandledRejection","_notifyUnhandledRejectionIsHandled","fireRejectionEvent","_setReturnedNonUndefined","_returnedNonUndefined","_isRejectionUnhandled","reason","_settledValue","_setUnhandledRejectionIsNotified","_unsetUnhandledRejectionIsNotified","_isUnhandledRejectionNotified","_unsetRejectionIsUnhandled","shouldUseOwnTrace","warn","onPossiblyUnhandledRejection","domain","domainBind","onUnhandledRejectionHandled","disableLongStackTraces","config","longStackTracesIsSupported","Promise_captureStackTrace","_captureStackTrace","Promise_attachExtraTrace","longStackTracesCaptureStackTrace","longStackTracesAttachExtraTrace","hasLongStackTraces","fireDomEvent","CustomEvent","dispatchEvent","name","domEvent","toLowerCase","detail","cancelable","Event","createEvent","initCustomEvent","fireGlobalEvent","emit","method","generatePromiseLifecycleEventObject","eventToObjectGenerator","promiseCreated","promiseFulfilled","promiseRejected","promiseResolved","promiseCancelled","promiseChained","warning","unhandledRejection","rejectionHandled","activeFireEvent","globalEventFired","domEventFired","defaultFireEvent","cancellationExecute","executor","reject","onCancel","_attachCancellationCallback","cancellationAttachCancellationCallback","previousOnCancel","cancellationOnCancel","cancellationSetOnCancel","cancellationClearCancellationData","cancellationPropagateFrom","flags","branchesRemainingToCancel","opts","warningsOption","_clearCancellationData","_execute","monitoring","_fireEvent","handler","isFulfilled","error","ignoreSelf","_parent","attachExtraTrace","__stackCleaned__","parsed","parseStackAndMessage","notEnumerableProp","join","formatAndLogError","cleanStack","line","isTraceLine","test","isInternalFrame","shouldIgnore","charAt","replace","split","stackFramesAsArray","title","isSoft","console","String","log","localHandler","localEventFired","formatNonError","str","JSON","stringify","substr","maxChars","snip","captureStackTrace","parseLineInfoRegex","parseLineInfo","matches","match","fileName","parseInt","_promisesCreated","uncycle","inherits","nodes","stackToIndex","node","cycleEdgeNode","currentChildLength","stacks","current","currentLastIndex","currentLastLine","commonRootMeetPoint","removeCommonRoots","splice","removeDuplicateOrEmptyJumps","reconstructStack","v8stackFramePattern","v8stackFormatter","stackTraceLimit","ignoreUntil","hasStackAfterThrow","err","indexOf","isTTY","color","checkForgottenReturns","returnValue","handlerLine","creatorLine","traceLines","lineMatches","firstUserLine","msg","setBounds","lastLineError","firstFileName","lastFileName","firstStackLines","lastStackLines","firstIndex","result","info","deprecated","replacement","./errors","10","returner","thrower","thenReturn","thenThrow","catchThrow","_reason","caught","catchReturn","_value","11","PromiseReduce","reduce","PromiseAll","all","promiseAllThis","each","mapSeries","12","_TypeError","_RangeError","es5","Objectfreeze","freeze","subError","nameProperty","defaultMessage","SubError","constructor","CancellationError","TimeoutError","AggregateError","RangeError","methods","Array","defineProperty","configurable","writable","enumerable","level","OperationalError","cause","indent","lines","errorTypes","RejectionError","13","isES5","getDescriptor","getOwnPropertyDescriptor","names","getOwnPropertyNames","getPrototypeOf","propertyIsWritable","prop","descriptor","set","has","hasOwnProperty","proto","ObjectKeys","desc","14","PromiseMap","map","filter","options","15","catchFilter","PassThroughHandlerContext","type","called","cancelPromise","FinallyHandlerCancelReaction","finallyHandler","checkCancel","succeed","fail","reasonOrValue","isFinallyHandler","isRejected","_passThrough","success","then","lastly","tap","tapCatch","handlerOrPredicate","len","catchInstances","./catch_filter","16","Proxyable","yieldHandlers","PromiseSpawn","generatorFunction","yieldHandler","internal","_finallyPromise","_promise","_stack","_generatorFunction","_receiver","_generator","_yieldHandlers","concat","_yieldedPromise","_cancellationPhase","_isResolved","_cleanup","_fulfill","_promiseCancelled","coroutine","returnSentinel","_continue","_promiseFulfilled","_promiseRejected","_run","_rejectCallback","done","traceParent","promiseFromYieldHandler","bitField","_proxy","PromiseSpawn$","generator","spawn","addYieldHandler","17","last","spread","18","MappingPromiseArray","limit","_filter","constructor$","_callback","_preservedValues","_limit","_inFlight","_queue","_asyncInit","concurrency","isFinite","_init$","_init","values","_values","preservedValues","callback","_totalResolved","_resolve","booleans","19","_resolveFromSyncValue","attempt","20","maybeWrapAsError","rErrorKey","wrapAsOperationalError","isUntypedError","markAsOriginatingFromRejection","multiArgs","wrapped","21","spreadAdapter","val","nodeback","successAdapter","errorAdapter","newReason","asCallback","nodeify","adapter","22","makeSelfResolutionError","reflectHandler","PromiseInspection","UNDEFINED_BINDING","errors","APPLY","createContext","nodebackForPromise","check","_fulfillmentHandler0","_rejectionHandler0","_promise0","_receiver0","_resolveFromExecutor","deferResolve","v","deferReject","fillTypes","p","reflect","didFulfill","didReject","_setIsFinal","toJSON","fulfillmentValue","rejectionReason","originatesFromRejection","getNewLibraryCopy","is","fromNode","fromCallback","_isFateSealed","_setAsyncGuaranteed","fulfilled","cast","_setFulfilled","rejected","internalData","haveInternalData","settler","_settlePromiseCtx","_settlePromiseLateCancellationObserver","_addCallbacks","_setLength","_setRejected","_setFollowing","_isFinal","_unsetCancelled","_receiverAt","_promiseAt","_fulfillmentHandlerAt","_rejectionHandlerAt","_migrateCallback0","follower","fulfill","_migrateCallbackAt","base","proxyable","shouldBind","_setFollowee","synchronous","ignoreNonErrorWarnings","ensureErrorObject","hasStack","_settlePromiseFromHandler","x","_settlePromise","isPromise","asyncGuaranteed","_settlePromise0","_clearCallbackDataAtIndex","_fulfillPromises","_rejectPromises","defer","pending","version","toFastProperties","b","c","./any.js","./async","./bind","./call_get.js","./cancel","./context","./debuggability","./direct_resolve","./each.js","./filter.js","./finally","./generators.js","./join","./map.js","./method","./nodeback","./nodeify.js","./promise_array","./promisify.js","./props.js","./race.js","./reduce.js","./settle.js","./some.js","./synchronous_inspection","./thenables","./timers.js","./using.js","23","resolveValueIfEmpty","asArray","_iterate","_resolveEmptyArray","Map","toResolutionValue","getActualLength","shouldCopyValues","isResolved","24","THIS","withAppended","defaultPromisified","__isPromisified__","noCopyPropsPattern","RegExp","defaultFilter","propsFilter","isPromisified","hasPromisified","suffix","getDataPropertyOrDefault","promisifiableMethods","suffixRegexp","inheritedDataKeys","passesDefaultFilter","keyWithoutAsyncSuffix","checkValid","makeNodePromisifiedEval","escapeIdentRegex","makeNodePromisified","__","defaultThis","promisified","promisifyAll","promisifier","promisifiedKey","promisify","copyDescriptors","isClass","25","Es6Map","mapToEntries","size","extractEntry","forEach","PropertiesPromiseArray","entries","isMap","_isMap","props","castValue","entriesToMap","keyOffset","26","capacity","_capacity","_front","_willBeOverCapacity","_checkCapacity","wrapMask","front","_resizeTo","oldCapacity","src","srcIndex","dst","dstIndex","arrayMove","27","raceLater","array","race","28","ReductionPromiseArray","initialValue","_each","_fn","_initialValue","_currentCancellable","_eachValues","completed","valueOrReason","gotAccum","accum","_gotAccum","gotValue","_eachComplete","sender","_resultCancelled$","29","NativePromise","getNativePromise","MutationObserver","GlobalSetImmediate","setImmediate","ProcessNextTick","nextTick","isRecentNode","nativePromise","navigator","standalone","cordova","div","createElement","attributes","toggleScheduled","div2","classList","toggle","observe","disconnect","30","SettledPromiseArray","_promiseResolved","inspection","_settledValueField","settle","31","CANCELLATION","_howMany","_unwrap","_initialized","some","howMany","isArrayResolved","_canPossiblyFulfill","_getRangeError","count","_addFulfilled","_fulfilled","_addRejected","_checkOutcome","_rejected","32","__isCancelled","33","hasProp","doGetThen","getThen","isAnyBluebirdPromise","doThenable","34","HandleWrapper","handle","clearTimeout","afterValue","delay","ms","successClear","failureClear","timeout","handleWrapper","afterTimeout","35","NULL","dispose","resources","iterator","thenable","_isDisposable","_getDisposer","_setDisposable","castPreservingDisposable","tryDispose","Disposer","data","_data","_context","FunctionDisposer","maybeUnwrapDisposer","isDisposer","ResourceList","resource","doDispose","_unsetDisposable","d","using","input","spreadArgs","disposer","reflectedResources","resultPromise","inspections","_disposer","36","tryCatchTarget","globalObject","tryCatcher","Child","Parent","T","isPrimitive","maybeError","safeToString","appendee","defaultValue","excludedPrototypes","Function","isExcludedProto","visitedKeys","enumeration","thisAssignmentPattern","hasMethods","hasMethodsOtherThanConstructor","hasThisAssignmentAndStaticMethods","FakeConstructor","rident","filledRange","prefix","isError","ignore","from","to","Symbol","ArrayFrom","itResult","it","hasEnvVariables","chrome","loadTimes","versions","Number","P","isBrowser","isWindows","platform","envGlobal","hasSymbol","createSymbol","baseURI","toStringTag","getElementsByTagName","bases","href","location","slashIndex","lastIndexOf","cwd","errArgs","LoaderError__Check_error_message_for_loader_stack","childErr","newMessage","lineNumber","originalErr","throwResolveError","relUrl","parentUrl","backslashRegEx","resolveIfNotPlain","trim","parentProtocol","firstChar","secondChar","pathname","parentIsPlain","segmented","output","segmentIndex","substring","resolvedPromise","arrayValues","arr","iterable","keyIndex","Loader","registry","Registry","ensureInstantiated","ModuleNamespace","import","loader","RESOLVE_INSTANTIATE","catch","RESOLVE","resolveInstantiate","ensureResolution","resolvedKey","resolved","iteratorSupport","REGISTRY","namespace","delete","BASE_OBJECT","baseObject","extendNamespace","resolvedPromise$1","REGISTER_INTERNAL","RegisterLoader","registryDelete","deleted","records","linkRecord","lastRegister","INSTANTIATE","instantiate","createLoadRecord","state","registration","importerSetters","loadError","evalError","instantiatePromise","dependencies","execute","executingRequire","moduleObj","setters","depsInstantiatePromise","dependencyInstantiations","evaluatePromise","load","link","createProcessAnonRegister","instantiation","traceLoad","default","__useDefault","declare","definedExports","declared","changed","ContextualLoader","registerDeclarative","resolveInstantiateDep","parentKey","traceDepMap","loads","deps","dynamicDeps","depMap","instantiateDeps","depsInstantiatePromises","setter","id","meta","url","doEvaluateDeclarative","seen","depLink","depLoadPromises","depLoad","depLoadPromise","doEvaluateDynamic","execPromise","nullContext","require","makeDynamicRequire","moduleDefault","__esModule","processAnonRegister","instantiated","addDeps","depPromises","deepInstantiateDeps","ensureEvaluate","register","registerDynamic","resolvedPromise$2","noop","CONFIG","PLAIN_RESOLVE","PLAIN_RESOLVE_SYNC","isWorker","importScripts","extend","supportsPreload","supportsPrefetch","preloadScript","rel","as","head","appendChild","Image","relList","supports","onerror","scriptLoad","crossOrigin","integrity","workerImport","script","cleanup","removeEventListener","removeChild","charset","addEventListener","applyPaths","baseURL","paths","mapMatch","getMapMatch","checkMap","curLen","bestMatch","setAmdHelper","errback","referer","normalized","decanonicalize","dynamicRequires","modules","factory","requireIndex","exportsIndex","moduleIndex","req","depValues","uri","contextualRequire","toUrl","normalizeSync","curRequire","curMetaDeps","source","requireAlias","commentRegEx","fnBracketRegEx","wsRegEx","requireRegEx","requireRegExs","cjsRequirePre","cjsRequirePost","exec","amdGetCJSDeps","lastNamedDefine","multipleNamedDefines","curEsModule","wrapEsModuleExecute","amdDefine","amdRequire","protocol","hostname","port","ignoredGlobalProps","globalIterator","globalName","registerLastDefine","SystemJSProductionLoader","submap","depCache","plainResolve","plainResolveSync","systemJSPrototype","newModule","bindings","isModule","m","resolveSync","wasm","fetch","res","ok","status","statusText","headers","text","globalSnapshot$1","eval","registered","moduleValue","retrieveGlobal","doEvalLoad","response","WebAssembly","compileStreaming","importObj","Module","imports","_export","Instance","instantiateWasm","doScriptLoad","cfg","resolvedParent","getConfig","globalValue","multipleGlobals","System","SystemJS"],"mappings":"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","file":"libs.js","sourcesContent":["function refiners() {\r\n var btn = $(\".cajaselect\");\r\n var act = $(\"div.active\");\r\n var idDiv = act.attr(\"id\");\r\n var selectElement = \"div#\" + idDiv + \".cajaselect.active\";\r\n if (idDiv != undefined) {\r\n var deleteId = \"div#\" + idDiv + \".cajaselect\";\r\n $(selectElement).on(\"click\", function() {\r\n var idElement = selectElement + \" > ul\";\r\n $(idElement).css(\"display\", \"none\");\r\n $(idElement).parent().closest(\".cajaselect\").removeClass(\"active\");\r\n $(deleteId).removeAttr(\"id\");\r\n idDiv = undefined;\r\n selectElement = 0;\r\n btn.length = 0;\r\n deleteId = 0;\r\n $(document).finish()\r\n }) \r\n }\r\n if (btn.length > 0) {\r\n btn.on(\"click\", \"span\", function() {\r\n event.preventDefault();\r\n var Id = $(this).attr(\"id\");\r\n var idElement = \"#\" + $(this).attr(\"id\");\r\n $(idElement).next(\"ul\").css(\"display\", \"block\");\r\n $(idElement).parent().closest(\".cajaselect\").addClass(\"active\");\r\n $(idElement).parent().closest(\".cajaselect\").attr(\"id\", Id);\r\n $(document).finish()\r\n })\r\n }\r\n}\r\n\r\nfunction refinersOut() {\r\n var btn = $(\".cajaselect\");\r\n var act = $(\"div.active\");\r\n var idDiv = act.attr(\"id\");\r\n var selectElement = \"div#\" + idDiv + \".cajaselect.active\";\r\n if (idDiv != undefined) {\r\n var deleteId = \"div#\" + idDiv + \".cajaselect\"; \r\n \r\n var idElement = selectElement + \" > ul\";\r\n $(idElement).css(\"display\", \"none\");\r\n $(idElement).parent().closest(\".cajaselect\").removeClass(\"active\");\r\n $(deleteId).removeAttr(\"id\");\r\n idDiv = undefined;\r\n selectElement = 0;\r\n btn.length = 0;\r\n deleteId = 0;\r\n $(document).finish() \r\n \r\n }\r\n \r\n}\r\n","// Call & init\r\n\r\n\r\nfunction drags(dragElement, resizeElement, container) {\r\n\r\n // Initialize the dragging event on mousedown.\r\n dragElement.on('mousedown touchstart', function (e) {\r\n\r\n dragElement.addClass('draggable');\r\n resizeElement.addClass('resizable');\r\n\r\n // Check if it's a mouse or touch event and pass along the correct value\r\n var startX = (e.pageX) ? e.pageX : e.originalEvent.touches[0].pageX;\r\n\r\n // Get the initial position\r\n var dragWidth = dragElement.outerWidth(),\r\n posX = dragElement.offset().left + dragWidth - startX,\r\n containerOffset = container.offset().left,\r\n containerWidth = container.outerWidth();\r\n\r\n // Set limits\r\n minLeft = containerOffset + 10;\r\n maxLeft = containerOffset + containerWidth - dragWidth - 10;\r\n\r\n // Calculate the dragging distance on mousemove.\r\n dragElement.parents().on(\"mousemove touchmove\", function (e) {\r\n\r\n // Check if it's a mouse or touch event and pass along the correct value\r\n var moveX = (e.pageX) ? e.pageX : e.originalEvent.touches[0].pageX;\r\n\r\n leftValue = moveX + posX - dragWidth;\r\n\r\n // Prevent going off limits\r\n if (leftValue < minLeft) {\r\n leftValue = minLeft;\r\n } else if (leftValue > maxLeft) {\r\n leftValue = maxLeft;\r\n }\r\n\r\n // Translate the handle's left value to masked divs width.\r\n widthValue = (leftValue + dragWidth / 2 - containerOffset) * 100 / containerWidth + '%';\r\n\r\n // Set the new values for the slider and the handle. \r\n // Bind mouseup events to stop dragging.\r\n $('.draggable').css('left', widthValue).on('mouseup touchend touchcancel', function () {\r\n $(this).removeClass('draggable');\r\n resizeElement.removeClass('resizable');\r\n });\r\n $('.resizable').css('width', widthValue);\r\n }).on('mouseup touchend touchcancel', function () {\r\n dragElement.removeClass('draggable');\r\n resizeElement.removeClass('resizable');\r\n });\r\n e.preventDefault();\r\n }).on('mouseup touchend touchcancel', function (e) {\r\n dragElement.removeClass('draggable');\r\n resizeElement.removeClass('resizable');\r\n });\r\n}","/* @preserve\n * The MIT License (MIT)\n * \n * Copyright (c) 2013-2017 Petka Antonov\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n * \n */\n/**\n * bluebird build version 3.5.1\n * Features enabled: core, race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each\n*/\n!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{var f;\"undefined\"!=typeof window?f=window:\"undefined\"!=typeof global?f=global:\"undefined\"!=typeof self&&(f=self),f.Promise=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof _dereq_==\"function\"&&_dereq_;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 _dereq_==\"function\"&&_dereq_;for(var o=0;o 0) {\n var fn = queue.shift();\n if (typeof fn !== \"function\") {\n fn._settlePromises();\n continue;\n }\n var receiver = queue.shift();\n var arg = queue.shift();\n fn.call(receiver, arg);\n }\n};\n\nAsync.prototype._drainQueues = function () {\n this._drainQueue(this._normalQueue);\n this._reset();\n this._haveDrainedQueues = true;\n this._drainQueue(this._lateQueue);\n};\n\nAsync.prototype._queueTick = function () {\n if (!this._isTickUsed) {\n this._isTickUsed = true;\n this._schedule(this.drainQueues);\n }\n};\n\nAsync.prototype._reset = function () {\n this._isTickUsed = false;\n};\n\nmodule.exports = Async;\nmodule.exports.firstLineError = firstLineError;\n\n},{\"./queue\":26,\"./schedule\":29,\"./util\":36}],3:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, INTERNAL, tryConvertToPromise, debug) {\nvar calledBind = false;\nvar rejectThis = function(_, e) {\n this._reject(e);\n};\n\nvar targetRejected = function(e, context) {\n context.promiseRejectionQueued = true;\n context.bindingPromise._then(rejectThis, rejectThis, null, this, e);\n};\n\nvar bindingResolved = function(thisArg, context) {\n if (((this._bitField & 50397184) === 0)) {\n this._resolveCallback(context.target);\n }\n};\n\nvar bindingRejected = function(e, context) {\n if (!context.promiseRejectionQueued) this._reject(e);\n};\n\nPromise.prototype.bind = function (thisArg) {\n if (!calledBind) {\n calledBind = true;\n Promise.prototype._propagateFrom = debug.propagateFromFunction();\n Promise.prototype._boundValue = debug.boundValueFunction();\n }\n var maybePromise = tryConvertToPromise(thisArg);\n var ret = new Promise(INTERNAL);\n ret._propagateFrom(this, 1);\n var target = this._target();\n ret._setBoundTo(maybePromise);\n if (maybePromise instanceof Promise) {\n var context = {\n promiseRejectionQueued: false,\n promise: ret,\n target: target,\n bindingPromise: maybePromise\n };\n target._then(INTERNAL, targetRejected, undefined, ret, context);\n maybePromise._then(\n bindingResolved, bindingRejected, undefined, ret, context);\n ret._setOnCancel(maybePromise);\n } else {\n ret._resolveCallback(target);\n }\n return ret;\n};\n\nPromise.prototype._setBoundTo = function (obj) {\n if (obj !== undefined) {\n this._bitField = this._bitField | 2097152;\n this._boundTo = obj;\n } else {\n this._bitField = this._bitField & (~2097152);\n }\n};\n\nPromise.prototype._isBound = function () {\n return (this._bitField & 2097152) === 2097152;\n};\n\nPromise.bind = function (thisArg, value) {\n return Promise.resolve(value).bind(thisArg);\n};\n};\n\n},{}],4:[function(_dereq_,module,exports){\n\"use strict\";\nvar old;\nif (typeof Promise !== \"undefined\") old = Promise;\nfunction noConflict() {\n try { if (Promise === bluebird) Promise = old; }\n catch (e) {}\n return bluebird;\n}\nvar bluebird = _dereq_(\"./promise\")();\nbluebird.noConflict = noConflict;\nmodule.exports = bluebird;\n\n},{\"./promise\":22}],5:[function(_dereq_,module,exports){\n\"use strict\";\nvar cr = Object.create;\nif (cr) {\n var callerCache = cr(null);\n var getterCache = cr(null);\n callerCache[\" size\"] = getterCache[\" size\"] = 0;\n}\n\nmodule.exports = function(Promise) {\nvar util = _dereq_(\"./util\");\nvar canEvaluate = util.canEvaluate;\nvar isIdentifier = util.isIdentifier;\n\nvar getMethodCaller;\nvar getGetter;\nif (!true) {\nvar makeMethodCaller = function (methodName) {\n return new Function(\"ensureMethod\", \" \\n\\\n return function(obj) { \\n\\\n 'use strict' \\n\\\n var len = this.length; \\n\\\n ensureMethod(obj, 'methodName'); \\n\\\n switch(len) { \\n\\\n case 1: return obj.methodName(this[0]); \\n\\\n case 2: return obj.methodName(this[0], this[1]); \\n\\\n case 3: return obj.methodName(this[0], this[1], this[2]); \\n\\\n case 0: return obj.methodName(); \\n\\\n default: \\n\\\n return obj.methodName.apply(obj, this); \\n\\\n } \\n\\\n }; \\n\\\n \".replace(/methodName/g, methodName))(ensureMethod);\n};\n\nvar makeGetter = function (propertyName) {\n return new Function(\"obj\", \" \\n\\\n 'use strict'; \\n\\\n return obj.propertyName; \\n\\\n \".replace(\"propertyName\", propertyName));\n};\n\nvar getCompiled = function(name, compiler, cache) {\n var ret = cache[name];\n if (typeof ret !== \"function\") {\n if (!isIdentifier(name)) {\n return null;\n }\n ret = compiler(name);\n cache[name] = ret;\n cache[\" size\"]++;\n if (cache[\" size\"] > 512) {\n var keys = Object.keys(cache);\n for (var i = 0; i < 256; ++i) delete cache[keys[i]];\n cache[\" size\"] = keys.length - 256;\n }\n }\n return ret;\n};\n\ngetMethodCaller = function(name) {\n return getCompiled(name, makeMethodCaller, callerCache);\n};\n\ngetGetter = function(name) {\n return getCompiled(name, makeGetter, getterCache);\n};\n}\n\nfunction ensureMethod(obj, methodName) {\n var fn;\n if (obj != null) fn = obj[methodName];\n if (typeof fn !== \"function\") {\n var message = \"Object \" + util.classString(obj) + \" has no method '\" +\n util.toString(methodName) + \"'\";\n throw new Promise.TypeError(message);\n }\n return fn;\n}\n\nfunction caller(obj) {\n var methodName = this.pop();\n var fn = ensureMethod(obj, methodName);\n return fn.apply(obj, this);\n}\nPromise.prototype.call = function (methodName) {\n var args = [].slice.call(arguments, 1);;\n if (!true) {\n if (canEvaluate) {\n var maybeCaller = getMethodCaller(methodName);\n if (maybeCaller !== null) {\n return this._then(\n maybeCaller, undefined, undefined, args, undefined);\n }\n }\n }\n args.push(methodName);\n return this._then(caller, undefined, undefined, args, undefined);\n};\n\nfunction namedGetter(obj) {\n return obj[this];\n}\nfunction indexedGetter(obj) {\n var index = +this;\n if (index < 0) index = Math.max(0, index + obj.length);\n return obj[index];\n}\nPromise.prototype.get = function (propertyName) {\n var isIndex = (typeof propertyName === \"number\");\n var getter;\n if (!isIndex) {\n if (canEvaluate) {\n var maybeGetter = getGetter(propertyName);\n getter = maybeGetter !== null ? maybeGetter : namedGetter;\n } else {\n getter = namedGetter;\n }\n } else {\n getter = indexedGetter;\n }\n return this._then(getter, undefined, undefined, propertyName, undefined);\n};\n};\n\n},{\"./util\":36}],6:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, PromiseArray, apiRejection, debug) {\nvar util = _dereq_(\"./util\");\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\nvar async = Promise._async;\n\nPromise.prototype[\"break\"] = Promise.prototype.cancel = function() {\n if (!debug.cancellation()) return this._warn(\"cancellation is disabled\");\n\n var promise = this;\n var child = promise;\n while (promise._isCancellable()) {\n if (!promise._cancelBy(child)) {\n if (child._isFollowing()) {\n child._followee().cancel();\n } else {\n child._cancelBranched();\n }\n break;\n }\n\n var parent = promise._cancellationParent;\n if (parent == null || !parent._isCancellable()) {\n if (promise._isFollowing()) {\n promise._followee().cancel();\n } else {\n promise._cancelBranched();\n }\n break;\n } else {\n if (promise._isFollowing()) promise._followee().cancel();\n promise._setWillBeCancelled();\n child = promise;\n promise = parent;\n }\n }\n};\n\nPromise.prototype._branchHasCancelled = function() {\n this._branchesRemainingToCancel--;\n};\n\nPromise.prototype._enoughBranchesHaveCancelled = function() {\n return this._branchesRemainingToCancel === undefined ||\n this._branchesRemainingToCancel <= 0;\n};\n\nPromise.prototype._cancelBy = function(canceller) {\n if (canceller === this) {\n this._branchesRemainingToCancel = 0;\n this._invokeOnCancel();\n return true;\n } else {\n this._branchHasCancelled();\n if (this._enoughBranchesHaveCancelled()) {\n this._invokeOnCancel();\n return true;\n }\n }\n return false;\n};\n\nPromise.prototype._cancelBranched = function() {\n if (this._enoughBranchesHaveCancelled()) {\n this._cancel();\n }\n};\n\nPromise.prototype._cancel = function() {\n if (!this._isCancellable()) return;\n this._setCancelled();\n async.invoke(this._cancelPromises, this, undefined);\n};\n\nPromise.prototype._cancelPromises = function() {\n if (this._length() > 0) this._settlePromises();\n};\n\nPromise.prototype._unsetOnCancel = function() {\n this._onCancelField = undefined;\n};\n\nPromise.prototype._isCancellable = function() {\n return this.isPending() && !this._isCancelled();\n};\n\nPromise.prototype.isCancellable = function() {\n return this.isPending() && !this.isCancelled();\n};\n\nPromise.prototype._doInvokeOnCancel = function(onCancelCallback, internalOnly) {\n if (util.isArray(onCancelCallback)) {\n for (var i = 0; i < onCancelCallback.length; ++i) {\n this._doInvokeOnCancel(onCancelCallback[i], internalOnly);\n }\n } else if (onCancelCallback !== undefined) {\n if (typeof onCancelCallback === \"function\") {\n if (!internalOnly) {\n var e = tryCatch(onCancelCallback).call(this._boundValue());\n if (e === errorObj) {\n this._attachExtraTrace(e.e);\n async.throwLater(e.e);\n }\n }\n } else {\n onCancelCallback._resultCancelled(this);\n }\n }\n};\n\nPromise.prototype._invokeOnCancel = function() {\n var onCancelCallback = this._onCancel();\n this._unsetOnCancel();\n async.invoke(this._doInvokeOnCancel, this, onCancelCallback);\n};\n\nPromise.prototype._invokeInternalOnCancel = function() {\n if (this._isCancellable()) {\n this._doInvokeOnCancel(this._onCancel(), true);\n this._unsetOnCancel();\n }\n};\n\nPromise.prototype._resultCancelled = function() {\n this.cancel();\n};\n\n};\n\n},{\"./util\":36}],7:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(NEXT_FILTER) {\nvar util = _dereq_(\"./util\");\nvar getKeys = _dereq_(\"./es5\").keys;\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\n\nfunction catchFilter(instances, cb, promise) {\n return function(e) {\n var boundTo = promise._boundValue();\n predicateLoop: for (var i = 0; i < instances.length; ++i) {\n var item = instances[i];\n\n if (item === Error ||\n (item != null && item.prototype instanceof Error)) {\n if (e instanceof item) {\n return tryCatch(cb).call(boundTo, e);\n }\n } else if (typeof item === \"function\") {\n var matchesPredicate = tryCatch(item).call(boundTo, e);\n if (matchesPredicate === errorObj) {\n return matchesPredicate;\n } else if (matchesPredicate) {\n return tryCatch(cb).call(boundTo, e);\n }\n } else if (util.isObject(e)) {\n var keys = getKeys(item);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n if (item[key] != e[key]) {\n continue predicateLoop;\n }\n }\n return tryCatch(cb).call(boundTo, e);\n }\n }\n return NEXT_FILTER;\n };\n}\n\nreturn catchFilter;\n};\n\n},{\"./es5\":13,\"./util\":36}],8:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise) {\nvar longStackTraces = false;\nvar contextStack = [];\n\nPromise.prototype._promiseCreated = function() {};\nPromise.prototype._pushContext = function() {};\nPromise.prototype._popContext = function() {return null;};\nPromise._peekContext = Promise.prototype._peekContext = function() {};\n\nfunction Context() {\n this._trace = new Context.CapturedTrace(peekContext());\n}\nContext.prototype._pushContext = function () {\n if (this._trace !== undefined) {\n this._trace._promiseCreated = null;\n contextStack.push(this._trace);\n }\n};\n\nContext.prototype._popContext = function () {\n if (this._trace !== undefined) {\n var trace = contextStack.pop();\n var ret = trace._promiseCreated;\n trace._promiseCreated = null;\n return ret;\n }\n return null;\n};\n\nfunction createContext() {\n if (longStackTraces) return new Context();\n}\n\nfunction peekContext() {\n var lastIndex = contextStack.length - 1;\n if (lastIndex >= 0) {\n return contextStack[lastIndex];\n }\n return undefined;\n}\nContext.CapturedTrace = null;\nContext.create = createContext;\nContext.deactivateLongStackTraces = function() {};\nContext.activateLongStackTraces = function() {\n var Promise_pushContext = Promise.prototype._pushContext;\n var Promise_popContext = Promise.prototype._popContext;\n var Promise_PeekContext = Promise._peekContext;\n var Promise_peekContext = Promise.prototype._peekContext;\n var Promise_promiseCreated = Promise.prototype._promiseCreated;\n Context.deactivateLongStackTraces = function() {\n Promise.prototype._pushContext = Promise_pushContext;\n Promise.prototype._popContext = Promise_popContext;\n Promise._peekContext = Promise_PeekContext;\n Promise.prototype._peekContext = Promise_peekContext;\n Promise.prototype._promiseCreated = Promise_promiseCreated;\n longStackTraces = false;\n };\n longStackTraces = true;\n Promise.prototype._pushContext = Context.prototype._pushContext;\n Promise.prototype._popContext = Context.prototype._popContext;\n Promise._peekContext = Promise.prototype._peekContext = peekContext;\n Promise.prototype._promiseCreated = function() {\n var ctx = this._peekContext();\n if (ctx && ctx._promiseCreated == null) ctx._promiseCreated = this;\n };\n};\nreturn Context;\n};\n\n},{}],9:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, Context) {\nvar getDomain = Promise._getDomain;\nvar async = Promise._async;\nvar Warning = _dereq_(\"./errors\").Warning;\nvar util = _dereq_(\"./util\");\nvar canAttachTrace = util.canAttachTrace;\nvar unhandledRejectionHandled;\nvar possiblyUnhandledRejection;\nvar bluebirdFramePattern =\n /[\\\\\\/]bluebird[\\\\\\/]js[\\\\\\/](release|debug|instrumented)/;\nvar nodeFramePattern = /\\((?:timers\\.js):\\d+:\\d+\\)/;\nvar parseLinePattern = /[\\/<\\(](.+?):(\\d+):(\\d+)\\)?\\s*$/;\nvar stackFramePattern = null;\nvar formatStack = null;\nvar indentStackFrames = false;\nvar printWarning;\nvar debugging = !!(util.env(\"BLUEBIRD_DEBUG\") != 0 &&\n (true ||\n util.env(\"BLUEBIRD_DEBUG\") ||\n util.env(\"NODE_ENV\") === \"development\"));\n\nvar warnings = !!(util.env(\"BLUEBIRD_WARNINGS\") != 0 &&\n (debugging || util.env(\"BLUEBIRD_WARNINGS\")));\n\nvar longStackTraces = !!(util.env(\"BLUEBIRD_LONG_STACK_TRACES\") != 0 &&\n (debugging || util.env(\"BLUEBIRD_LONG_STACK_TRACES\")));\n\nvar wForgottenReturn = util.env(\"BLUEBIRD_W_FORGOTTEN_RETURN\") != 0 &&\n (warnings || !!util.env(\"BLUEBIRD_W_FORGOTTEN_RETURN\"));\n\nPromise.prototype.suppressUnhandledRejections = function() {\n var target = this._target();\n target._bitField = ((target._bitField & (~1048576)) |\n 524288);\n};\n\nPromise.prototype._ensurePossibleRejectionHandled = function () {\n if ((this._bitField & 524288) !== 0) return;\n this._setRejectionIsUnhandled();\n var self = this;\n setTimeout(function() {\n self._notifyUnhandledRejection();\n }, 1);\n};\n\nPromise.prototype._notifyUnhandledRejectionIsHandled = function () {\n fireRejectionEvent(\"rejectionHandled\",\n unhandledRejectionHandled, undefined, this);\n};\n\nPromise.prototype._setReturnedNonUndefined = function() {\n this._bitField = this._bitField | 268435456;\n};\n\nPromise.prototype._returnedNonUndefined = function() {\n return (this._bitField & 268435456) !== 0;\n};\n\nPromise.prototype._notifyUnhandledRejection = function () {\n if (this._isRejectionUnhandled()) {\n var reason = this._settledValue();\n this._setUnhandledRejectionIsNotified();\n fireRejectionEvent(\"unhandledRejection\",\n possiblyUnhandledRejection, reason, this);\n }\n};\n\nPromise.prototype._setUnhandledRejectionIsNotified = function () {\n this._bitField = this._bitField | 262144;\n};\n\nPromise.prototype._unsetUnhandledRejectionIsNotified = function () {\n this._bitField = this._bitField & (~262144);\n};\n\nPromise.prototype._isUnhandledRejectionNotified = function () {\n return (this._bitField & 262144) > 0;\n};\n\nPromise.prototype._setRejectionIsUnhandled = function () {\n this._bitField = this._bitField | 1048576;\n};\n\nPromise.prototype._unsetRejectionIsUnhandled = function () {\n this._bitField = this._bitField & (~1048576);\n if (this._isUnhandledRejectionNotified()) {\n this._unsetUnhandledRejectionIsNotified();\n this._notifyUnhandledRejectionIsHandled();\n }\n};\n\nPromise.prototype._isRejectionUnhandled = function () {\n return (this._bitField & 1048576) > 0;\n};\n\nPromise.prototype._warn = function(message, shouldUseOwnTrace, promise) {\n return warn(message, shouldUseOwnTrace, promise || this);\n};\n\nPromise.onPossiblyUnhandledRejection = function (fn) {\n var domain = getDomain();\n possiblyUnhandledRejection =\n typeof fn === \"function\" ? (domain === null ?\n fn : util.domainBind(domain, fn))\n : undefined;\n};\n\nPromise.onUnhandledRejectionHandled = function (fn) {\n var domain = getDomain();\n unhandledRejectionHandled =\n typeof fn === \"function\" ? (domain === null ?\n fn : util.domainBind(domain, fn))\n : undefined;\n};\n\nvar disableLongStackTraces = function() {};\nPromise.longStackTraces = function () {\n if (async.haveItemsQueued() && !config.longStackTraces) {\n throw new Error(\"cannot enable long stack traces after promises have been created\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n if (!config.longStackTraces && longStackTracesIsSupported()) {\n var Promise_captureStackTrace = Promise.prototype._captureStackTrace;\n var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace;\n config.longStackTraces = true;\n disableLongStackTraces = function() {\n if (async.haveItemsQueued() && !config.longStackTraces) {\n throw new Error(\"cannot enable long stack traces after promises have been created\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n Promise.prototype._captureStackTrace = Promise_captureStackTrace;\n Promise.prototype._attachExtraTrace = Promise_attachExtraTrace;\n Context.deactivateLongStackTraces();\n async.enableTrampoline();\n config.longStackTraces = false;\n };\n Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace;\n Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace;\n Context.activateLongStackTraces();\n async.disableTrampolineIfNecessary();\n }\n};\n\nPromise.hasLongStackTraces = function () {\n return config.longStackTraces && longStackTracesIsSupported();\n};\n\nvar fireDomEvent = (function() {\n try {\n if (typeof CustomEvent === \"function\") {\n var event = new CustomEvent(\"CustomEvent\");\n util.global.dispatchEvent(event);\n return function(name, event) {\n var domEvent = new CustomEvent(name.toLowerCase(), {\n detail: event,\n cancelable: true\n });\n return !util.global.dispatchEvent(domEvent);\n };\n } else if (typeof Event === \"function\") {\n var event = new Event(\"CustomEvent\");\n util.global.dispatchEvent(event);\n return function(name, event) {\n var domEvent = new Event(name.toLowerCase(), {\n cancelable: true\n });\n domEvent.detail = event;\n return !util.global.dispatchEvent(domEvent);\n };\n } else {\n var event = document.createEvent(\"CustomEvent\");\n event.initCustomEvent(\"testingtheevent\", false, true, {});\n util.global.dispatchEvent(event);\n return function(name, event) {\n var domEvent = document.createEvent(\"CustomEvent\");\n domEvent.initCustomEvent(name.toLowerCase(), false, true,\n event);\n return !util.global.dispatchEvent(domEvent);\n };\n }\n } catch (e) {}\n return function() {\n return false;\n };\n})();\n\nvar fireGlobalEvent = (function() {\n if (util.isNode) {\n return function() {\n return process.emit.apply(process, arguments);\n };\n } else {\n if (!util.global) {\n return function() {\n return false;\n };\n }\n return function(name) {\n var methodName = \"on\" + name.toLowerCase();\n var method = util.global[methodName];\n if (!method) return false;\n method.apply(util.global, [].slice.call(arguments, 1));\n return true;\n };\n }\n})();\n\nfunction generatePromiseLifecycleEventObject(name, promise) {\n return {promise: promise};\n}\n\nvar eventToObjectGenerator = {\n promiseCreated: generatePromiseLifecycleEventObject,\n promiseFulfilled: generatePromiseLifecycleEventObject,\n promiseRejected: generatePromiseLifecycleEventObject,\n promiseResolved: generatePromiseLifecycleEventObject,\n promiseCancelled: generatePromiseLifecycleEventObject,\n promiseChained: function(name, promise, child) {\n return {promise: promise, child: child};\n },\n warning: function(name, warning) {\n return {warning: warning};\n },\n unhandledRejection: function (name, reason, promise) {\n return {reason: reason, promise: promise};\n },\n rejectionHandled: generatePromiseLifecycleEventObject\n};\n\nvar activeFireEvent = function (name) {\n var globalEventFired = false;\n try {\n globalEventFired = fireGlobalEvent.apply(null, arguments);\n } catch (e) {\n async.throwLater(e);\n globalEventFired = true;\n }\n\n var domEventFired = false;\n try {\n domEventFired = fireDomEvent(name,\n eventToObjectGenerator[name].apply(null, arguments));\n } catch (e) {\n async.throwLater(e);\n domEventFired = true;\n }\n\n return domEventFired || globalEventFired;\n};\n\nPromise.config = function(opts) {\n opts = Object(opts);\n if (\"longStackTraces\" in opts) {\n if (opts.longStackTraces) {\n Promise.longStackTraces();\n } else if (!opts.longStackTraces && Promise.hasLongStackTraces()) {\n disableLongStackTraces();\n }\n }\n if (\"warnings\" in opts) {\n var warningsOption = opts.warnings;\n config.warnings = !!warningsOption;\n wForgottenReturn = config.warnings;\n\n if (util.isObject(warningsOption)) {\n if (\"wForgottenReturn\" in warningsOption) {\n wForgottenReturn = !!warningsOption.wForgottenReturn;\n }\n }\n }\n if (\"cancellation\" in opts && opts.cancellation && !config.cancellation) {\n if (async.haveItemsQueued()) {\n throw new Error(\n \"cannot enable cancellation after promises are in use\");\n }\n Promise.prototype._clearCancellationData =\n cancellationClearCancellationData;\n Promise.prototype._propagateFrom = cancellationPropagateFrom;\n Promise.prototype._onCancel = cancellationOnCancel;\n Promise.prototype._setOnCancel = cancellationSetOnCancel;\n Promise.prototype._attachCancellationCallback =\n cancellationAttachCancellationCallback;\n Promise.prototype._execute = cancellationExecute;\n propagateFromFunction = cancellationPropagateFrom;\n config.cancellation = true;\n }\n if (\"monitoring\" in opts) {\n if (opts.monitoring && !config.monitoring) {\n config.monitoring = true;\n Promise.prototype._fireEvent = activeFireEvent;\n } else if (!opts.monitoring && config.monitoring) {\n config.monitoring = false;\n Promise.prototype._fireEvent = defaultFireEvent;\n }\n }\n return Promise;\n};\n\nfunction defaultFireEvent() { return false; }\n\nPromise.prototype._fireEvent = defaultFireEvent;\nPromise.prototype._execute = function(executor, resolve, reject) {\n try {\n executor(resolve, reject);\n } catch (e) {\n return e;\n }\n};\nPromise.prototype._onCancel = function () {};\nPromise.prototype._setOnCancel = function (handler) { ; };\nPromise.prototype._attachCancellationCallback = function(onCancel) {\n ;\n};\nPromise.prototype._captureStackTrace = function () {};\nPromise.prototype._attachExtraTrace = function () {};\nPromise.prototype._clearCancellationData = function() {};\nPromise.prototype._propagateFrom = function (parent, flags) {\n ;\n ;\n};\n\nfunction cancellationExecute(executor, resolve, reject) {\n var promise = this;\n try {\n executor(resolve, reject, function(onCancel) {\n if (typeof onCancel !== \"function\") {\n throw new TypeError(\"onCancel must be a function, got: \" +\n util.toString(onCancel));\n }\n promise._attachCancellationCallback(onCancel);\n });\n } catch (e) {\n return e;\n }\n}\n\nfunction cancellationAttachCancellationCallback(onCancel) {\n if (!this._isCancellable()) return this;\n\n var previousOnCancel = this._onCancel();\n if (previousOnCancel !== undefined) {\n if (util.isArray(previousOnCancel)) {\n previousOnCancel.push(onCancel);\n } else {\n this._setOnCancel([previousOnCancel, onCancel]);\n }\n } else {\n this._setOnCancel(onCancel);\n }\n}\n\nfunction cancellationOnCancel() {\n return this._onCancelField;\n}\n\nfunction cancellationSetOnCancel(onCancel) {\n this._onCancelField = onCancel;\n}\n\nfunction cancellationClearCancellationData() {\n this._cancellationParent = undefined;\n this._onCancelField = undefined;\n}\n\nfunction cancellationPropagateFrom(parent, flags) {\n if ((flags & 1) !== 0) {\n this._cancellationParent = parent;\n var branchesRemainingToCancel = parent._branchesRemainingToCancel;\n if (branchesRemainingToCancel === undefined) {\n branchesRemainingToCancel = 0;\n }\n parent._branchesRemainingToCancel = branchesRemainingToCancel + 1;\n }\n if ((flags & 2) !== 0 && parent._isBound()) {\n this._setBoundTo(parent._boundTo);\n }\n}\n\nfunction bindingPropagateFrom(parent, flags) {\n if ((flags & 2) !== 0 && parent._isBound()) {\n this._setBoundTo(parent._boundTo);\n }\n}\nvar propagateFromFunction = bindingPropagateFrom;\n\nfunction boundValueFunction() {\n var ret = this._boundTo;\n if (ret !== undefined) {\n if (ret instanceof Promise) {\n if (ret.isFulfilled()) {\n return ret.value();\n } else {\n return undefined;\n }\n }\n }\n return ret;\n}\n\nfunction longStackTracesCaptureStackTrace() {\n this._trace = new CapturedTrace(this._peekContext());\n}\n\nfunction longStackTracesAttachExtraTrace(error, ignoreSelf) {\n if (canAttachTrace(error)) {\n var trace = this._trace;\n if (trace !== undefined) {\n if (ignoreSelf) trace = trace._parent;\n }\n if (trace !== undefined) {\n trace.attachExtraTrace(error);\n } else if (!error.__stackCleaned__) {\n var parsed = parseStackAndMessage(error);\n util.notEnumerableProp(error, \"stack\",\n parsed.message + \"\\n\" + parsed.stack.join(\"\\n\"));\n util.notEnumerableProp(error, \"__stackCleaned__\", true);\n }\n }\n}\n\nfunction checkForgottenReturns(returnValue, promiseCreated, name, promise,\n parent) {\n if (returnValue === undefined && promiseCreated !== null &&\n wForgottenReturn) {\n if (parent !== undefined && parent._returnedNonUndefined()) return;\n if ((promise._bitField & 65535) === 0) return;\n\n if (name) name = name + \" \";\n var handlerLine = \"\";\n var creatorLine = \"\";\n if (promiseCreated._trace) {\n var traceLines = promiseCreated._trace.stack.split(\"\\n\");\n var stack = cleanStack(traceLines);\n for (var i = stack.length - 1; i >= 0; --i) {\n var line = stack[i];\n if (!nodeFramePattern.test(line)) {\n var lineMatches = line.match(parseLinePattern);\n if (lineMatches) {\n handlerLine = \"at \" + lineMatches[1] +\n \":\" + lineMatches[2] + \":\" + lineMatches[3] + \" \";\n }\n break;\n }\n }\n\n if (stack.length > 0) {\n var firstUserLine = stack[0];\n for (var i = 0; i < traceLines.length; ++i) {\n\n if (traceLines[i] === firstUserLine) {\n if (i > 0) {\n creatorLine = \"\\n\" + traceLines[i - 1];\n }\n break;\n }\n }\n\n }\n }\n var msg = \"a promise was created in a \" + name +\n \"handler \" + handlerLine + \"but was not returned from it, \" +\n \"see http://goo.gl/rRqMUw\" +\n creatorLine;\n promise._warn(msg, true, promiseCreated);\n }\n}\n\nfunction deprecated(name, replacement) {\n var message = name +\n \" is deprecated and will be removed in a future version.\";\n if (replacement) message += \" Use \" + replacement + \" instead.\";\n return warn(message);\n}\n\nfunction warn(message, shouldUseOwnTrace, promise) {\n if (!config.warnings) return;\n var warning = new Warning(message);\n var ctx;\n if (shouldUseOwnTrace) {\n promise._attachExtraTrace(warning);\n } else if (config.longStackTraces && (ctx = Promise._peekContext())) {\n ctx.attachExtraTrace(warning);\n } else {\n var parsed = parseStackAndMessage(warning);\n warning.stack = parsed.message + \"\\n\" + parsed.stack.join(\"\\n\");\n }\n\n if (!activeFireEvent(\"warning\", warning)) {\n formatAndLogError(warning, \"\", true);\n }\n}\n\nfunction reconstructStack(message, stacks) {\n for (var i = 0; i < stacks.length - 1; ++i) {\n stacks[i].push(\"From previous event:\");\n stacks[i] = stacks[i].join(\"\\n\");\n }\n if (i < stacks.length) {\n stacks[i] = stacks[i].join(\"\\n\");\n }\n return message + \"\\n\" + stacks.join(\"\\n\");\n}\n\nfunction removeDuplicateOrEmptyJumps(stacks) {\n for (var i = 0; i < stacks.length; ++i) {\n if (stacks[i].length === 0 ||\n ((i + 1 < stacks.length) && stacks[i][0] === stacks[i+1][0])) {\n stacks.splice(i, 1);\n i--;\n }\n }\n}\n\nfunction removeCommonRoots(stacks) {\n var current = stacks[0];\n for (var i = 1; i < stacks.length; ++i) {\n var prev = stacks[i];\n var currentLastIndex = current.length - 1;\n var currentLastLine = current[currentLastIndex];\n var commonRootMeetPoint = -1;\n\n for (var j = prev.length - 1; j >= 0; --j) {\n if (prev[j] === currentLastLine) {\n commonRootMeetPoint = j;\n break;\n }\n }\n\n for (var j = commonRootMeetPoint; j >= 0; --j) {\n var line = prev[j];\n if (current[currentLastIndex] === line) {\n current.pop();\n currentLastIndex--;\n } else {\n break;\n }\n }\n current = prev;\n }\n}\n\nfunction cleanStack(stack) {\n var ret = [];\n for (var i = 0; i < stack.length; ++i) {\n var line = stack[i];\n var isTraceLine = \" (No stack trace)\" === line ||\n stackFramePattern.test(line);\n var isInternalFrame = isTraceLine && shouldIgnore(line);\n if (isTraceLine && !isInternalFrame) {\n if (indentStackFrames && line.charAt(0) !== \" \") {\n line = \" \" + line;\n }\n ret.push(line);\n }\n }\n return ret;\n}\n\nfunction stackFramesAsArray(error) {\n var stack = error.stack.replace(/\\s+$/g, \"\").split(\"\\n\");\n for (var i = 0; i < stack.length; ++i) {\n var line = stack[i];\n if (\" (No stack trace)\" === line || stackFramePattern.test(line)) {\n break;\n }\n }\n if (i > 0 && error.name != \"SyntaxError\") {\n stack = stack.slice(i);\n }\n return stack;\n}\n\nfunction parseStackAndMessage(error) {\n var stack = error.stack;\n var message = error.toString();\n stack = typeof stack === \"string\" && stack.length > 0\n ? stackFramesAsArray(error) : [\" (No stack trace)\"];\n return {\n message: message,\n stack: error.name == \"SyntaxError\" ? stack : cleanStack(stack)\n };\n}\n\nfunction formatAndLogError(error, title, isSoft) {\n if (typeof console !== \"undefined\") {\n var message;\n if (util.isObject(error)) {\n var stack = error.stack;\n message = title + formatStack(stack, error);\n } else {\n message = title + String(error);\n }\n if (typeof printWarning === \"function\") {\n printWarning(message, isSoft);\n } else if (typeof console.log === \"function\" ||\n typeof console.log === \"object\") {\n console.log(message);\n }\n }\n}\n\nfunction fireRejectionEvent(name, localHandler, reason, promise) {\n var localEventFired = false;\n try {\n if (typeof localHandler === \"function\") {\n localEventFired = true;\n if (name === \"rejectionHandled\") {\n localHandler(promise);\n } else {\n localHandler(reason, promise);\n }\n }\n } catch (e) {\n async.throwLater(e);\n }\n\n if (name === \"unhandledRejection\") {\n if (!activeFireEvent(name, reason, promise) && !localEventFired) {\n formatAndLogError(reason, \"Unhandled rejection \");\n }\n } else {\n activeFireEvent(name, promise);\n }\n}\n\nfunction formatNonError(obj) {\n var str;\n if (typeof obj === \"function\") {\n str = \"[function \" +\n (obj.name || \"anonymous\") +\n \"]\";\n } else {\n str = obj && typeof obj.toString === \"function\"\n ? obj.toString() : util.toString(obj);\n var ruselessToString = /\\[object [a-zA-Z0-9$_]+\\]/;\n if (ruselessToString.test(str)) {\n try {\n var newStr = JSON.stringify(obj);\n str = newStr;\n }\n catch(e) {\n\n }\n }\n if (str.length === 0) {\n str = \"(empty array)\";\n }\n }\n return (\"(<\" + snip(str) + \">, no stack trace)\");\n}\n\nfunction snip(str) {\n var maxChars = 41;\n if (str.length < maxChars) {\n return str;\n }\n return str.substr(0, maxChars - 3) + \"...\";\n}\n\nfunction longStackTracesIsSupported() {\n return typeof captureStackTrace === \"function\";\n}\n\nvar shouldIgnore = function() { return false; };\nvar parseLineInfoRegex = /[\\/<\\(]([^:\\/]+):(\\d+):(?:\\d+)\\)?\\s*$/;\nfunction parseLineInfo(line) {\n var matches = line.match(parseLineInfoRegex);\n if (matches) {\n return {\n fileName: matches[1],\n line: parseInt(matches[2], 10)\n };\n }\n}\n\nfunction setBounds(firstLineError, lastLineError) {\n if (!longStackTracesIsSupported()) return;\n var firstStackLines = firstLineError.stack.split(\"\\n\");\n var lastStackLines = lastLineError.stack.split(\"\\n\");\n var firstIndex = -1;\n var lastIndex = -1;\n var firstFileName;\n var lastFileName;\n for (var i = 0; i < firstStackLines.length; ++i) {\n var result = parseLineInfo(firstStackLines[i]);\n if (result) {\n firstFileName = result.fileName;\n firstIndex = result.line;\n break;\n }\n }\n for (var i = 0; i < lastStackLines.length; ++i) {\n var result = parseLineInfo(lastStackLines[i]);\n if (result) {\n lastFileName = result.fileName;\n lastIndex = result.line;\n break;\n }\n }\n if (firstIndex < 0 || lastIndex < 0 || !firstFileName || !lastFileName ||\n firstFileName !== lastFileName || firstIndex >= lastIndex) {\n return;\n }\n\n shouldIgnore = function(line) {\n if (bluebirdFramePattern.test(line)) return true;\n var info = parseLineInfo(line);\n if (info) {\n if (info.fileName === firstFileName &&\n (firstIndex <= info.line && info.line <= lastIndex)) {\n return true;\n }\n }\n return false;\n };\n}\n\nfunction CapturedTrace(parent) {\n this._parent = parent;\n this._promisesCreated = 0;\n var length = this._length = 1 + (parent === undefined ? 0 : parent._length);\n captureStackTrace(this, CapturedTrace);\n if (length > 32) this.uncycle();\n}\nutil.inherits(CapturedTrace, Error);\nContext.CapturedTrace = CapturedTrace;\n\nCapturedTrace.prototype.uncycle = function() {\n var length = this._length;\n if (length < 2) return;\n var nodes = [];\n var stackToIndex = {};\n\n for (var i = 0, node = this; node !== undefined; ++i) {\n nodes.push(node);\n node = node._parent;\n }\n length = this._length = i;\n for (var i = length - 1; i >= 0; --i) {\n var stack = nodes[i].stack;\n if (stackToIndex[stack] === undefined) {\n stackToIndex[stack] = i;\n }\n }\n for (var i = 0; i < length; ++i) {\n var currentStack = nodes[i].stack;\n var index = stackToIndex[currentStack];\n if (index !== undefined && index !== i) {\n if (index > 0) {\n nodes[index - 1]._parent = undefined;\n nodes[index - 1]._length = 1;\n }\n nodes[i]._parent = undefined;\n nodes[i]._length = 1;\n var cycleEdgeNode = i > 0 ? nodes[i - 1] : this;\n\n if (index < length - 1) {\n cycleEdgeNode._parent = nodes[index + 1];\n cycleEdgeNode._parent.uncycle();\n cycleEdgeNode._length =\n cycleEdgeNode._parent._length + 1;\n } else {\n cycleEdgeNode._parent = undefined;\n cycleEdgeNode._length = 1;\n }\n var currentChildLength = cycleEdgeNode._length + 1;\n for (var j = i - 2; j >= 0; --j) {\n nodes[j]._length = currentChildLength;\n currentChildLength++;\n }\n return;\n }\n }\n};\n\nCapturedTrace.prototype.attachExtraTrace = function(error) {\n if (error.__stackCleaned__) return;\n this.uncycle();\n var parsed = parseStackAndMessage(error);\n var message = parsed.message;\n var stacks = [parsed.stack];\n\n var trace = this;\n while (trace !== undefined) {\n stacks.push(cleanStack(trace.stack.split(\"\\n\")));\n trace = trace._parent;\n }\n removeCommonRoots(stacks);\n removeDuplicateOrEmptyJumps(stacks);\n util.notEnumerableProp(error, \"stack\", reconstructStack(message, stacks));\n util.notEnumerableProp(error, \"__stackCleaned__\", true);\n};\n\nvar captureStackTrace = (function stackDetection() {\n var v8stackFramePattern = /^\\s*at\\s*/;\n var v8stackFormatter = function(stack, error) {\n if (typeof stack === \"string\") return stack;\n\n if (error.name !== undefined &&\n error.message !== undefined) {\n return error.toString();\n }\n return formatNonError(error);\n };\n\n if (typeof Error.stackTraceLimit === \"number\" &&\n typeof Error.captureStackTrace === \"function\") {\n Error.stackTraceLimit += 6;\n stackFramePattern = v8stackFramePattern;\n formatStack = v8stackFormatter;\n var captureStackTrace = Error.captureStackTrace;\n\n shouldIgnore = function(line) {\n return bluebirdFramePattern.test(line);\n };\n return function(receiver, ignoreUntil) {\n Error.stackTraceLimit += 6;\n captureStackTrace(receiver, ignoreUntil);\n Error.stackTraceLimit -= 6;\n };\n }\n var err = new Error();\n\n if (typeof err.stack === \"string\" &&\n err.stack.split(\"\\n\")[0].indexOf(\"stackDetection@\") >= 0) {\n stackFramePattern = /@/;\n formatStack = v8stackFormatter;\n indentStackFrames = true;\n return function captureStackTrace(o) {\n o.stack = new Error().stack;\n };\n }\n\n var hasStackAfterThrow;\n try { throw new Error(); }\n catch(e) {\n hasStackAfterThrow = (\"stack\" in e);\n }\n if (!(\"stack\" in err) && hasStackAfterThrow &&\n typeof Error.stackTraceLimit === \"number\") {\n stackFramePattern = v8stackFramePattern;\n formatStack = v8stackFormatter;\n return function captureStackTrace(o) {\n Error.stackTraceLimit += 6;\n try { throw new Error(); }\n catch(e) { o.stack = e.stack; }\n Error.stackTraceLimit -= 6;\n };\n }\n\n formatStack = function(stack, error) {\n if (typeof stack === \"string\") return stack;\n\n if ((typeof error === \"object\" ||\n typeof error === \"function\") &&\n error.name !== undefined &&\n error.message !== undefined) {\n return error.toString();\n }\n return formatNonError(error);\n };\n\n return null;\n\n})([]);\n\nif (typeof console !== \"undefined\" && typeof console.warn !== \"undefined\") {\n printWarning = function (message) {\n console.warn(message);\n };\n if (util.isNode && process.stderr.isTTY) {\n printWarning = function(message, isSoft) {\n var color = isSoft ? \"\\u001b[33m\" : \"\\u001b[31m\";\n console.warn(color + message + \"\\u001b[0m\\n\");\n };\n } else if (!util.isNode && typeof (new Error().stack) === \"string\") {\n printWarning = function(message, isSoft) {\n console.warn(\"%c\" + message,\n isSoft ? \"color: darkorange\" : \"color: red\");\n };\n }\n}\n\nvar config = {\n warnings: warnings,\n longStackTraces: false,\n cancellation: false,\n monitoring: false\n};\n\nif (longStackTraces) Promise.longStackTraces();\n\nreturn {\n longStackTraces: function() {\n return config.longStackTraces;\n },\n warnings: function() {\n return config.warnings;\n },\n cancellation: function() {\n return config.cancellation;\n },\n monitoring: function() {\n return config.monitoring;\n },\n propagateFromFunction: function() {\n return propagateFromFunction;\n },\n boundValueFunction: function() {\n return boundValueFunction;\n },\n checkForgottenReturns: checkForgottenReturns,\n setBounds: setBounds,\n warn: warn,\n deprecated: deprecated,\n CapturedTrace: CapturedTrace,\n fireDomEvent: fireDomEvent,\n fireGlobalEvent: fireGlobalEvent\n};\n};\n\n},{\"./errors\":12,\"./util\":36}],10:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise) {\nfunction returner() {\n return this.value;\n}\nfunction thrower() {\n throw this.reason;\n}\n\nPromise.prototype[\"return\"] =\nPromise.prototype.thenReturn = function (value) {\n if (value instanceof Promise) value.suppressUnhandledRejections();\n return this._then(\n returner, undefined, undefined, {value: value}, undefined);\n};\n\nPromise.prototype[\"throw\"] =\nPromise.prototype.thenThrow = function (reason) {\n return this._then(\n thrower, undefined, undefined, {reason: reason}, undefined);\n};\n\nPromise.prototype.catchThrow = function (reason) {\n if (arguments.length <= 1) {\n return this._then(\n undefined, thrower, undefined, {reason: reason}, undefined);\n } else {\n var _reason = arguments[1];\n var handler = function() {throw _reason;};\n return this.caught(reason, handler);\n }\n};\n\nPromise.prototype.catchReturn = function (value) {\n if (arguments.length <= 1) {\n if (value instanceof Promise) value.suppressUnhandledRejections();\n return this._then(\n undefined, returner, undefined, {value: value}, undefined);\n } else {\n var _value = arguments[1];\n if (_value instanceof Promise) _value.suppressUnhandledRejections();\n var handler = function() {return _value;};\n return this.caught(value, handler);\n }\n};\n};\n\n},{}],11:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, INTERNAL) {\nvar PromiseReduce = Promise.reduce;\nvar PromiseAll = Promise.all;\n\nfunction promiseAllThis() {\n return PromiseAll(this);\n}\n\nfunction PromiseMapSeries(promises, fn) {\n return PromiseReduce(promises, fn, INTERNAL, INTERNAL);\n}\n\nPromise.prototype.each = function (fn) {\n return PromiseReduce(this, fn, INTERNAL, 0)\n ._then(promiseAllThis, undefined, undefined, this, undefined);\n};\n\nPromise.prototype.mapSeries = function (fn) {\n return PromiseReduce(this, fn, INTERNAL, INTERNAL);\n};\n\nPromise.each = function (promises, fn) {\n return PromiseReduce(promises, fn, INTERNAL, 0)\n ._then(promiseAllThis, undefined, undefined, promises, undefined);\n};\n\nPromise.mapSeries = PromiseMapSeries;\n};\n\n\n},{}],12:[function(_dereq_,module,exports){\n\"use strict\";\nvar es5 = _dereq_(\"./es5\");\nvar Objectfreeze = es5.freeze;\nvar util = _dereq_(\"./util\");\nvar inherits = util.inherits;\nvar notEnumerableProp = util.notEnumerableProp;\n\nfunction subError(nameProperty, defaultMessage) {\n function SubError(message) {\n if (!(this instanceof SubError)) return new SubError(message);\n notEnumerableProp(this, \"message\",\n typeof message === \"string\" ? message : defaultMessage);\n notEnumerableProp(this, \"name\", nameProperty);\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n Error.call(this);\n }\n }\n inherits(SubError, Error);\n return SubError;\n}\n\nvar _TypeError, _RangeError;\nvar Warning = subError(\"Warning\", \"warning\");\nvar CancellationError = subError(\"CancellationError\", \"cancellation error\");\nvar TimeoutError = subError(\"TimeoutError\", \"timeout error\");\nvar AggregateError = subError(\"AggregateError\", \"aggregate error\");\ntry {\n _TypeError = TypeError;\n _RangeError = RangeError;\n} catch(e) {\n _TypeError = subError(\"TypeError\", \"type error\");\n _RangeError = subError(\"RangeError\", \"range error\");\n}\n\nvar methods = (\"join pop push shift unshift slice filter forEach some \" +\n \"every map indexOf lastIndexOf reduce reduceRight sort reverse\").split(\" \");\n\nfor (var i = 0; i < methods.length; ++i) {\n if (typeof Array.prototype[methods[i]] === \"function\") {\n AggregateError.prototype[methods[i]] = Array.prototype[methods[i]];\n }\n}\n\nes5.defineProperty(AggregateError.prototype, \"length\", {\n value: 0,\n configurable: false,\n writable: true,\n enumerable: true\n});\nAggregateError.prototype[\"isOperational\"] = true;\nvar level = 0;\nAggregateError.prototype.toString = function() {\n var indent = Array(level * 4 + 1).join(\" \");\n var ret = \"\\n\" + indent + \"AggregateError of:\" + \"\\n\";\n level++;\n indent = Array(level * 4 + 1).join(\" \");\n for (var i = 0; i < this.length; ++i) {\n var str = this[i] === this ? \"[Circular AggregateError]\" : this[i] + \"\";\n var lines = str.split(\"\\n\");\n for (var j = 0; j < lines.length; ++j) {\n lines[j] = indent + lines[j];\n }\n str = lines.join(\"\\n\");\n ret += str + \"\\n\";\n }\n level--;\n return ret;\n};\n\nfunction OperationalError(message) {\n if (!(this instanceof OperationalError))\n return new OperationalError(message);\n notEnumerableProp(this, \"name\", \"OperationalError\");\n notEnumerableProp(this, \"message\", message);\n this.cause = message;\n this[\"isOperational\"] = true;\n\n if (message instanceof Error) {\n notEnumerableProp(this, \"message\", message.message);\n notEnumerableProp(this, \"stack\", message.stack);\n } else if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n}\ninherits(OperationalError, Error);\n\nvar errorTypes = Error[\"__BluebirdErrorTypes__\"];\nif (!errorTypes) {\n errorTypes = Objectfreeze({\n CancellationError: CancellationError,\n TimeoutError: TimeoutError,\n OperationalError: OperationalError,\n RejectionError: OperationalError,\n AggregateError: AggregateError\n });\n es5.defineProperty(Error, \"__BluebirdErrorTypes__\", {\n value: errorTypes,\n writable: false,\n enumerable: false,\n configurable: false\n });\n}\n\nmodule.exports = {\n Error: Error,\n TypeError: _TypeError,\n RangeError: _RangeError,\n CancellationError: errorTypes.CancellationError,\n OperationalError: errorTypes.OperationalError,\n TimeoutError: errorTypes.TimeoutError,\n AggregateError: errorTypes.AggregateError,\n Warning: Warning\n};\n\n},{\"./es5\":13,\"./util\":36}],13:[function(_dereq_,module,exports){\nvar isES5 = (function(){\n \"use strict\";\n return this === undefined;\n})();\n\nif (isES5) {\n module.exports = {\n freeze: Object.freeze,\n defineProperty: Object.defineProperty,\n getDescriptor: Object.getOwnPropertyDescriptor,\n keys: Object.keys,\n names: Object.getOwnPropertyNames,\n getPrototypeOf: Object.getPrototypeOf,\n isArray: Array.isArray,\n isES5: isES5,\n propertyIsWritable: function(obj, prop) {\n var descriptor = Object.getOwnPropertyDescriptor(obj, prop);\n return !!(!descriptor || descriptor.writable || descriptor.set);\n }\n };\n} else {\n var has = {}.hasOwnProperty;\n var str = {}.toString;\n var proto = {}.constructor.prototype;\n\n var ObjectKeys = function (o) {\n var ret = [];\n for (var key in o) {\n if (has.call(o, key)) {\n ret.push(key);\n }\n }\n return ret;\n };\n\n var ObjectGetDescriptor = function(o, key) {\n return {value: o[key]};\n };\n\n var ObjectDefineProperty = function (o, key, desc) {\n o[key] = desc.value;\n return o;\n };\n\n var ObjectFreeze = function (obj) {\n return obj;\n };\n\n var ObjectGetPrototypeOf = function (obj) {\n try {\n return Object(obj).constructor.prototype;\n }\n catch (e) {\n return proto;\n }\n };\n\n var ArrayIsArray = function (obj) {\n try {\n return str.call(obj) === \"[object Array]\";\n }\n catch(e) {\n return false;\n }\n };\n\n module.exports = {\n isArray: ArrayIsArray,\n keys: ObjectKeys,\n names: ObjectKeys,\n defineProperty: ObjectDefineProperty,\n getDescriptor: ObjectGetDescriptor,\n freeze: ObjectFreeze,\n getPrototypeOf: ObjectGetPrototypeOf,\n isES5: isES5,\n propertyIsWritable: function() {\n return true;\n }\n };\n}\n\n},{}],14:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, INTERNAL) {\nvar PromiseMap = Promise.map;\n\nPromise.prototype.filter = function (fn, options) {\n return PromiseMap(this, fn, options, INTERNAL);\n};\n\nPromise.filter = function (promises, fn, options) {\n return PromiseMap(promises, fn, options, INTERNAL);\n};\n};\n\n},{}],15:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, tryConvertToPromise, NEXT_FILTER) {\nvar util = _dereq_(\"./util\");\nvar CancellationError = Promise.CancellationError;\nvar errorObj = util.errorObj;\nvar catchFilter = _dereq_(\"./catch_filter\")(NEXT_FILTER);\n\nfunction PassThroughHandlerContext(promise, type, handler) {\n this.promise = promise;\n this.type = type;\n this.handler = handler;\n this.called = false;\n this.cancelPromise = null;\n}\n\nPassThroughHandlerContext.prototype.isFinallyHandler = function() {\n return this.type === 0;\n};\n\nfunction FinallyHandlerCancelReaction(finallyHandler) {\n this.finallyHandler = finallyHandler;\n}\n\nFinallyHandlerCancelReaction.prototype._resultCancelled = function() {\n checkCancel(this.finallyHandler);\n};\n\nfunction checkCancel(ctx, reason) {\n if (ctx.cancelPromise != null) {\n if (arguments.length > 1) {\n ctx.cancelPromise._reject(reason);\n } else {\n ctx.cancelPromise._cancel();\n }\n ctx.cancelPromise = null;\n return true;\n }\n return false;\n}\n\nfunction succeed() {\n return finallyHandler.call(this, this.promise._target()._settledValue());\n}\nfunction fail(reason) {\n if (checkCancel(this, reason)) return;\n errorObj.e = reason;\n return errorObj;\n}\nfunction finallyHandler(reasonOrValue) {\n var promise = this.promise;\n var handler = this.handler;\n\n if (!this.called) {\n this.called = true;\n var ret = this.isFinallyHandler()\n ? handler.call(promise._boundValue())\n : handler.call(promise._boundValue(), reasonOrValue);\n if (ret === NEXT_FILTER) {\n return ret;\n } else if (ret !== undefined) {\n promise._setReturnedNonUndefined();\n var maybePromise = tryConvertToPromise(ret, promise);\n if (maybePromise instanceof Promise) {\n if (this.cancelPromise != null) {\n if (maybePromise._isCancelled()) {\n var reason =\n new CancellationError(\"late cancellation observer\");\n promise._attachExtraTrace(reason);\n errorObj.e = reason;\n return errorObj;\n } else if (maybePromise.isPending()) {\n maybePromise._attachCancellationCallback(\n new FinallyHandlerCancelReaction(this));\n }\n }\n return maybePromise._then(\n succeed, fail, undefined, this, undefined);\n }\n }\n }\n\n if (promise.isRejected()) {\n checkCancel(this);\n errorObj.e = reasonOrValue;\n return errorObj;\n } else {\n checkCancel(this);\n return reasonOrValue;\n }\n}\n\nPromise.prototype._passThrough = function(handler, type, success, fail) {\n if (typeof handler !== \"function\") return this.then();\n return this._then(success,\n fail,\n undefined,\n new PassThroughHandlerContext(this, type, handler),\n undefined);\n};\n\nPromise.prototype.lastly =\nPromise.prototype[\"finally\"] = function (handler) {\n return this._passThrough(handler,\n 0,\n finallyHandler,\n finallyHandler);\n};\n\n\nPromise.prototype.tap = function (handler) {\n return this._passThrough(handler, 1, finallyHandler);\n};\n\nPromise.prototype.tapCatch = function (handlerOrPredicate) {\n var len = arguments.length;\n if(len === 1) {\n return this._passThrough(handlerOrPredicate,\n 1,\n undefined,\n finallyHandler);\n } else {\n var catchInstances = new Array(len - 1),\n j = 0, i;\n for (i = 0; i < len - 1; ++i) {\n var item = arguments[i];\n if (util.isObject(item)) {\n catchInstances[j++] = item;\n } else {\n return Promise.reject(new TypeError(\n \"tapCatch statement predicate: \"\n + \"expecting an object but got \" + util.classString(item)\n ));\n }\n }\n catchInstances.length = j;\n var handler = arguments[i];\n return this._passThrough(catchFilter(catchInstances, handler, this),\n 1,\n undefined,\n finallyHandler);\n }\n\n};\n\nreturn PassThroughHandlerContext;\n};\n\n},{\"./catch_filter\":7,\"./util\":36}],16:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise,\n apiRejection,\n INTERNAL,\n tryConvertToPromise,\n Proxyable,\n debug) {\nvar errors = _dereq_(\"./errors\");\nvar TypeError = errors.TypeError;\nvar util = _dereq_(\"./util\");\nvar errorObj = util.errorObj;\nvar tryCatch = util.tryCatch;\nvar yieldHandlers = [];\n\nfunction promiseFromYieldHandler(value, yieldHandlers, traceParent) {\n for (var i = 0; i < yieldHandlers.length; ++i) {\n traceParent._pushContext();\n var result = tryCatch(yieldHandlers[i])(value);\n traceParent._popContext();\n if (result === errorObj) {\n traceParent._pushContext();\n var ret = Promise.reject(errorObj.e);\n traceParent._popContext();\n return ret;\n }\n var maybePromise = tryConvertToPromise(result, traceParent);\n if (maybePromise instanceof Promise) return maybePromise;\n }\n return null;\n}\n\nfunction PromiseSpawn(generatorFunction, receiver, yieldHandler, stack) {\n if (debug.cancellation()) {\n var internal = new Promise(INTERNAL);\n var _finallyPromise = this._finallyPromise = new Promise(INTERNAL);\n this._promise = internal.lastly(function() {\n return _finallyPromise;\n });\n internal._captureStackTrace();\n internal._setOnCancel(this);\n } else {\n var promise = this._promise = new Promise(INTERNAL);\n promise._captureStackTrace();\n }\n this._stack = stack;\n this._generatorFunction = generatorFunction;\n this._receiver = receiver;\n this._generator = undefined;\n this._yieldHandlers = typeof yieldHandler === \"function\"\n ? [yieldHandler].concat(yieldHandlers)\n : yieldHandlers;\n this._yieldedPromise = null;\n this._cancellationPhase = false;\n}\nutil.inherits(PromiseSpawn, Proxyable);\n\nPromiseSpawn.prototype._isResolved = function() {\n return this._promise === null;\n};\n\nPromiseSpawn.prototype._cleanup = function() {\n this._promise = this._generator = null;\n if (debug.cancellation() && this._finallyPromise !== null) {\n this._finallyPromise._fulfill();\n this._finallyPromise = null;\n }\n};\n\nPromiseSpawn.prototype._promiseCancelled = function() {\n if (this._isResolved()) return;\n var implementsReturn = typeof this._generator[\"return\"] !== \"undefined\";\n\n var result;\n if (!implementsReturn) {\n var reason = new Promise.CancellationError(\n \"generator .return() sentinel\");\n Promise.coroutine.returnSentinel = reason;\n this._promise._attachExtraTrace(reason);\n this._promise._pushContext();\n result = tryCatch(this._generator[\"throw\"]).call(this._generator,\n reason);\n this._promise._popContext();\n } else {\n this._promise._pushContext();\n result = tryCatch(this._generator[\"return\"]).call(this._generator,\n undefined);\n this._promise._popContext();\n }\n this._cancellationPhase = true;\n this._yieldedPromise = null;\n this._continue(result);\n};\n\nPromiseSpawn.prototype._promiseFulfilled = function(value) {\n this._yieldedPromise = null;\n this._promise._pushContext();\n var result = tryCatch(this._generator.next).call(this._generator, value);\n this._promise._popContext();\n this._continue(result);\n};\n\nPromiseSpawn.prototype._promiseRejected = function(reason) {\n this._yieldedPromise = null;\n this._promise._attachExtraTrace(reason);\n this._promise._pushContext();\n var result = tryCatch(this._generator[\"throw\"])\n .call(this._generator, reason);\n this._promise._popContext();\n this._continue(result);\n};\n\nPromiseSpawn.prototype._resultCancelled = function() {\n if (this._yieldedPromise instanceof Promise) {\n var promise = this._yieldedPromise;\n this._yieldedPromise = null;\n promise.cancel();\n }\n};\n\nPromiseSpawn.prototype.promise = function () {\n return this._promise;\n};\n\nPromiseSpawn.prototype._run = function () {\n this._generator = this._generatorFunction.call(this._receiver);\n this._receiver =\n this._generatorFunction = undefined;\n this._promiseFulfilled(undefined);\n};\n\nPromiseSpawn.prototype._continue = function (result) {\n var promise = this._promise;\n if (result === errorObj) {\n this._cleanup();\n if (this._cancellationPhase) {\n return promise.cancel();\n } else {\n return promise._rejectCallback(result.e, false);\n }\n }\n\n var value = result.value;\n if (result.done === true) {\n this._cleanup();\n if (this._cancellationPhase) {\n return promise.cancel();\n } else {\n return promise._resolveCallback(value);\n }\n } else {\n var maybePromise = tryConvertToPromise(value, this._promise);\n if (!(maybePromise instanceof Promise)) {\n maybePromise =\n promiseFromYieldHandler(maybePromise,\n this._yieldHandlers,\n this._promise);\n if (maybePromise === null) {\n this._promiseRejected(\n new TypeError(\n \"A value %s was yielded that could not be treated as a promise\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\\u000a\".replace(\"%s\", String(value)) +\n \"From coroutine:\\u000a\" +\n this._stack.split(\"\\n\").slice(1, -7).join(\"\\n\")\n )\n );\n return;\n }\n }\n maybePromise = maybePromise._target();\n var bitField = maybePromise._bitField;\n ;\n if (((bitField & 50397184) === 0)) {\n this._yieldedPromise = maybePromise;\n maybePromise._proxy(this, null);\n } else if (((bitField & 33554432) !== 0)) {\n Promise._async.invoke(\n this._promiseFulfilled, this, maybePromise._value()\n );\n } else if (((bitField & 16777216) !== 0)) {\n Promise._async.invoke(\n this._promiseRejected, this, maybePromise._reason()\n );\n } else {\n this._promiseCancelled();\n }\n }\n};\n\nPromise.coroutine = function (generatorFunction, options) {\n if (typeof generatorFunction !== \"function\") {\n throw new TypeError(\"generatorFunction must be a function\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n var yieldHandler = Object(options).yieldHandler;\n var PromiseSpawn$ = PromiseSpawn;\n var stack = new Error().stack;\n return function () {\n var generator = generatorFunction.apply(this, arguments);\n var spawn = new PromiseSpawn$(undefined, undefined, yieldHandler,\n stack);\n var ret = spawn.promise();\n spawn._generator = generator;\n spawn._promiseFulfilled(undefined);\n return ret;\n };\n};\n\nPromise.coroutine.addYieldHandler = function(fn) {\n if (typeof fn !== \"function\") {\n throw new TypeError(\"expecting a function but got \" + util.classString(fn));\n }\n yieldHandlers.push(fn);\n};\n\nPromise.spawn = function (generatorFunction) {\n debug.deprecated(\"Promise.spawn()\", \"Promise.coroutine()\");\n if (typeof generatorFunction !== \"function\") {\n return apiRejection(\"generatorFunction must be a function\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n var spawn = new PromiseSpawn(generatorFunction, this);\n var ret = spawn.promise();\n spawn._run(Promise.spawn);\n return ret;\n};\n};\n\n},{\"./errors\":12,\"./util\":36}],17:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports =\nfunction(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async,\n getDomain) {\nvar util = _dereq_(\"./util\");\nvar canEvaluate = util.canEvaluate;\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\nvar reject;\n\nif (!true) {\nif (canEvaluate) {\n var thenCallback = function(i) {\n return new Function(\"value\", \"holder\", \" \\n\\\n 'use strict'; \\n\\\n holder.pIndex = value; \\n\\\n holder.checkFulfillment(this); \\n\\\n \".replace(/Index/g, i));\n };\n\n var promiseSetter = function(i) {\n return new Function(\"promise\", \"holder\", \" \\n\\\n 'use strict'; \\n\\\n holder.pIndex = promise; \\n\\\n \".replace(/Index/g, i));\n };\n\n var generateHolderClass = function(total) {\n var props = new Array(total);\n for (var i = 0; i < props.length; ++i) {\n props[i] = \"this.p\" + (i+1);\n }\n var assignment = props.join(\" = \") + \" = null;\";\n var cancellationCode= \"var promise;\\n\" + props.map(function(prop) {\n return \" \\n\\\n promise = \" + prop + \"; \\n\\\n if (promise instanceof Promise) { \\n\\\n promise.cancel(); \\n\\\n } \\n\\\n \";\n }).join(\"\\n\");\n var passedArguments = props.join(\", \");\n var name = \"Holder$\" + total;\n\n\n var code = \"return function(tryCatch, errorObj, Promise, async) { \\n\\\n 'use strict'; \\n\\\n function [TheName](fn) { \\n\\\n [TheProperties] \\n\\\n this.fn = fn; \\n\\\n this.asyncNeeded = true; \\n\\\n this.now = 0; \\n\\\n } \\n\\\n \\n\\\n [TheName].prototype._callFunction = function(promise) { \\n\\\n promise._pushContext(); \\n\\\n var ret = tryCatch(this.fn)([ThePassedArguments]); \\n\\\n promise._popContext(); \\n\\\n if (ret === errorObj) { \\n\\\n promise._rejectCallback(ret.e, false); \\n\\\n } else { \\n\\\n promise._resolveCallback(ret); \\n\\\n } \\n\\\n }; \\n\\\n \\n\\\n [TheName].prototype.checkFulfillment = function(promise) { \\n\\\n var now = ++this.now; \\n\\\n if (now === [TheTotal]) { \\n\\\n if (this.asyncNeeded) { \\n\\\n async.invoke(this._callFunction, this, promise); \\n\\\n } else { \\n\\\n this._callFunction(promise); \\n\\\n } \\n\\\n \\n\\\n } \\n\\\n }; \\n\\\n \\n\\\n [TheName].prototype._resultCancelled = function() { \\n\\\n [CancellationCode] \\n\\\n }; \\n\\\n \\n\\\n return [TheName]; \\n\\\n }(tryCatch, errorObj, Promise, async); \\n\\\n \";\n\n code = code.replace(/\\[TheName\\]/g, name)\n .replace(/\\[TheTotal\\]/g, total)\n .replace(/\\[ThePassedArguments\\]/g, passedArguments)\n .replace(/\\[TheProperties\\]/g, assignment)\n .replace(/\\[CancellationCode\\]/g, cancellationCode);\n\n return new Function(\"tryCatch\", \"errorObj\", \"Promise\", \"async\", code)\n (tryCatch, errorObj, Promise, async);\n };\n\n var holderClasses = [];\n var thenCallbacks = [];\n var promiseSetters = [];\n\n for (var i = 0; i < 8; ++i) {\n holderClasses.push(generateHolderClass(i + 1));\n thenCallbacks.push(thenCallback(i + 1));\n promiseSetters.push(promiseSetter(i + 1));\n }\n\n reject = function (reason) {\n this._reject(reason);\n };\n}}\n\nPromise.join = function () {\n var last = arguments.length - 1;\n var fn;\n if (last > 0 && typeof arguments[last] === \"function\") {\n fn = arguments[last];\n if (!true) {\n if (last <= 8 && canEvaluate) {\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n var HolderClass = holderClasses[last - 1];\n var holder = new HolderClass(fn);\n var callbacks = thenCallbacks;\n\n for (var i = 0; i < last; ++i) {\n var maybePromise = tryConvertToPromise(arguments[i], ret);\n if (maybePromise instanceof Promise) {\n maybePromise = maybePromise._target();\n var bitField = maybePromise._bitField;\n ;\n if (((bitField & 50397184) === 0)) {\n maybePromise._then(callbacks[i], reject,\n undefined, ret, holder);\n promiseSetters[i](maybePromise, holder);\n holder.asyncNeeded = false;\n } else if (((bitField & 33554432) !== 0)) {\n callbacks[i].call(ret,\n maybePromise._value(), holder);\n } else if (((bitField & 16777216) !== 0)) {\n ret._reject(maybePromise._reason());\n } else {\n ret._cancel();\n }\n } else {\n callbacks[i].call(ret, maybePromise, holder);\n }\n }\n\n if (!ret._isFateSealed()) {\n if (holder.asyncNeeded) {\n var domain = getDomain();\n if (domain !== null) {\n holder.fn = util.domainBind(domain, holder.fn);\n }\n }\n ret._setAsyncGuaranteed();\n ret._setOnCancel(holder);\n }\n return ret;\n }\n }\n }\n var args = [].slice.call(arguments);;\n if (fn) args.pop();\n var ret = new PromiseArray(args).promise();\n return fn !== undefined ? ret.spread(fn) : ret;\n};\n\n};\n\n},{\"./util\":36}],18:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise,\n PromiseArray,\n apiRejection,\n tryConvertToPromise,\n INTERNAL,\n debug) {\nvar getDomain = Promise._getDomain;\nvar util = _dereq_(\"./util\");\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\nvar async = Promise._async;\n\nfunction MappingPromiseArray(promises, fn, limit, _filter) {\n this.constructor$(promises);\n this._promise._captureStackTrace();\n var domain = getDomain();\n this._callback = domain === null ? fn : util.domainBind(domain, fn);\n this._preservedValues = _filter === INTERNAL\n ? new Array(this.length())\n : null;\n this._limit = limit;\n this._inFlight = 0;\n this._queue = [];\n async.invoke(this._asyncInit, this, undefined);\n}\nutil.inherits(MappingPromiseArray, PromiseArray);\n\nMappingPromiseArray.prototype._asyncInit = function() {\n this._init$(undefined, -2);\n};\n\nMappingPromiseArray.prototype._init = function () {};\n\nMappingPromiseArray.prototype._promiseFulfilled = function (value, index) {\n var values = this._values;\n var length = this.length();\n var preservedValues = this._preservedValues;\n var limit = this._limit;\n\n if (index < 0) {\n index = (index * -1) - 1;\n values[index] = value;\n if (limit >= 1) {\n this._inFlight--;\n this._drainQueue();\n if (this._isResolved()) return true;\n }\n } else {\n if (limit >= 1 && this._inFlight >= limit) {\n values[index] = value;\n this._queue.push(index);\n return false;\n }\n if (preservedValues !== null) preservedValues[index] = value;\n\n var promise = this._promise;\n var callback = this._callback;\n var receiver = promise._boundValue();\n promise._pushContext();\n var ret = tryCatch(callback).call(receiver, value, index, length);\n var promiseCreated = promise._popContext();\n debug.checkForgottenReturns(\n ret,\n promiseCreated,\n preservedValues !== null ? \"Promise.filter\" : \"Promise.map\",\n promise\n );\n if (ret === errorObj) {\n this._reject(ret.e);\n return true;\n }\n\n var maybePromise = tryConvertToPromise(ret, this._promise);\n if (maybePromise instanceof Promise) {\n maybePromise = maybePromise._target();\n var bitField = maybePromise._bitField;\n ;\n if (((bitField & 50397184) === 0)) {\n if (limit >= 1) this._inFlight++;\n values[index] = maybePromise;\n maybePromise._proxy(this, (index + 1) * -1);\n return false;\n } else if (((bitField & 33554432) !== 0)) {\n ret = maybePromise._value();\n } else if (((bitField & 16777216) !== 0)) {\n this._reject(maybePromise._reason());\n return true;\n } else {\n this._cancel();\n return true;\n }\n }\n values[index] = ret;\n }\n var totalResolved = ++this._totalResolved;\n if (totalResolved >= length) {\n if (preservedValues !== null) {\n this._filter(values, preservedValues);\n } else {\n this._resolve(values);\n }\n return true;\n }\n return false;\n};\n\nMappingPromiseArray.prototype._drainQueue = function () {\n var queue = this._queue;\n var limit = this._limit;\n var values = this._values;\n while (queue.length > 0 && this._inFlight < limit) {\n if (this._isResolved()) return;\n var index = queue.pop();\n this._promiseFulfilled(values[index], index);\n }\n};\n\nMappingPromiseArray.prototype._filter = function (booleans, values) {\n var len = values.length;\n var ret = new Array(len);\n var j = 0;\n for (var i = 0; i < len; ++i) {\n if (booleans[i]) ret[j++] = values[i];\n }\n ret.length = j;\n this._resolve(ret);\n};\n\nMappingPromiseArray.prototype.preservedValues = function () {\n return this._preservedValues;\n};\n\nfunction map(promises, fn, options, _filter) {\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n\n var limit = 0;\n if (options !== undefined) {\n if (typeof options === \"object\" && options !== null) {\n if (typeof options.concurrency !== \"number\") {\n return Promise.reject(\n new TypeError(\"'concurrency' must be a number but it is \" +\n util.classString(options.concurrency)));\n }\n limit = options.concurrency;\n } else {\n return Promise.reject(new TypeError(\n \"options argument must be an object but it is \" +\n util.classString(options)));\n }\n }\n limit = typeof limit === \"number\" &&\n isFinite(limit) && limit >= 1 ? limit : 0;\n return new MappingPromiseArray(promises, fn, limit, _filter).promise();\n}\n\nPromise.prototype.map = function (fn, options) {\n return map(this, fn, options, null);\n};\n\nPromise.map = function (promises, fn, options, _filter) {\n return map(promises, fn, options, _filter);\n};\n\n\n};\n\n},{\"./util\":36}],19:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports =\nfunction(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) {\nvar util = _dereq_(\"./util\");\nvar tryCatch = util.tryCatch;\n\nPromise.method = function (fn) {\n if (typeof fn !== \"function\") {\n throw new Promise.TypeError(\"expecting a function but got \" + util.classString(fn));\n }\n return function () {\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n ret._pushContext();\n var value = tryCatch(fn).apply(this, arguments);\n var promiseCreated = ret._popContext();\n debug.checkForgottenReturns(\n value, promiseCreated, \"Promise.method\", ret);\n ret._resolveFromSyncValue(value);\n return ret;\n };\n};\n\nPromise.attempt = Promise[\"try\"] = function (fn) {\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n ret._pushContext();\n var value;\n if (arguments.length > 1) {\n debug.deprecated(\"calling Promise.try with more than 1 argument\");\n var arg = arguments[1];\n var ctx = arguments[2];\n value = util.isArray(arg) ? tryCatch(fn).apply(ctx, arg)\n : tryCatch(fn).call(ctx, arg);\n } else {\n value = tryCatch(fn)();\n }\n var promiseCreated = ret._popContext();\n debug.checkForgottenReturns(\n value, promiseCreated, \"Promise.try\", ret);\n ret._resolveFromSyncValue(value);\n return ret;\n};\n\nPromise.prototype._resolveFromSyncValue = function (value) {\n if (value === util.errorObj) {\n this._rejectCallback(value.e, false);\n } else {\n this._resolveCallback(value, true);\n }\n};\n};\n\n},{\"./util\":36}],20:[function(_dereq_,module,exports){\n\"use strict\";\nvar util = _dereq_(\"./util\");\nvar maybeWrapAsError = util.maybeWrapAsError;\nvar errors = _dereq_(\"./errors\");\nvar OperationalError = errors.OperationalError;\nvar es5 = _dereq_(\"./es5\");\n\nfunction isUntypedError(obj) {\n return obj instanceof Error &&\n es5.getPrototypeOf(obj) === Error.prototype;\n}\n\nvar rErrorKey = /^(?:name|message|stack|cause)$/;\nfunction wrapAsOperationalError(obj) {\n var ret;\n if (isUntypedError(obj)) {\n ret = new OperationalError(obj);\n ret.name = obj.name;\n ret.message = obj.message;\n ret.stack = obj.stack;\n var keys = es5.keys(obj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!rErrorKey.test(key)) {\n ret[key] = obj[key];\n }\n }\n return ret;\n }\n util.markAsOriginatingFromRejection(obj);\n return obj;\n}\n\nfunction nodebackForPromise(promise, multiArgs) {\n return function(err, value) {\n if (promise === null) return;\n if (err) {\n var wrapped = wrapAsOperationalError(maybeWrapAsError(err));\n promise._attachExtraTrace(wrapped);\n promise._reject(wrapped);\n } else if (!multiArgs) {\n promise._fulfill(value);\n } else {\n var args = [].slice.call(arguments, 1);;\n promise._fulfill(args);\n }\n promise = null;\n };\n}\n\nmodule.exports = nodebackForPromise;\n\n},{\"./errors\":12,\"./es5\":13,\"./util\":36}],21:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise) {\nvar util = _dereq_(\"./util\");\nvar async = Promise._async;\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\n\nfunction spreadAdapter(val, nodeback) {\n var promise = this;\n if (!util.isArray(val)) return successAdapter.call(promise, val, nodeback);\n var ret =\n tryCatch(nodeback).apply(promise._boundValue(), [null].concat(val));\n if (ret === errorObj) {\n async.throwLater(ret.e);\n }\n}\n\nfunction successAdapter(val, nodeback) {\n var promise = this;\n var receiver = promise._boundValue();\n var ret = val === undefined\n ? tryCatch(nodeback).call(receiver, null)\n : tryCatch(nodeback).call(receiver, null, val);\n if (ret === errorObj) {\n async.throwLater(ret.e);\n }\n}\nfunction errorAdapter(reason, nodeback) {\n var promise = this;\n if (!reason) {\n var newReason = new Error(reason + \"\");\n newReason.cause = reason;\n reason = newReason;\n }\n var ret = tryCatch(nodeback).call(promise._boundValue(), reason);\n if (ret === errorObj) {\n async.throwLater(ret.e);\n }\n}\n\nPromise.prototype.asCallback = Promise.prototype.nodeify = function (nodeback,\n options) {\n if (typeof nodeback == \"function\") {\n var adapter = successAdapter;\n if (options !== undefined && Object(options).spread) {\n adapter = spreadAdapter;\n }\n this._then(\n adapter,\n errorAdapter,\n undefined,\n this,\n nodeback\n );\n }\n return this;\n};\n};\n\n},{\"./util\":36}],22:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function() {\nvar makeSelfResolutionError = function () {\n return new TypeError(\"circular promise resolution chain\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n};\nvar reflectHandler = function() {\n return new Promise.PromiseInspection(this._target());\n};\nvar apiRejection = function(msg) {\n return Promise.reject(new TypeError(msg));\n};\nfunction Proxyable() {}\nvar UNDEFINED_BINDING = {};\nvar util = _dereq_(\"./util\");\n\nvar getDomain;\nif (util.isNode) {\n getDomain = function() {\n var ret = process.domain;\n if (ret === undefined) ret = null;\n return ret;\n };\n} else {\n getDomain = function() {\n return null;\n };\n}\nutil.notEnumerableProp(Promise, \"_getDomain\", getDomain);\n\nvar es5 = _dereq_(\"./es5\");\nvar Async = _dereq_(\"./async\");\nvar async = new Async();\nes5.defineProperty(Promise, \"_async\", {value: async});\nvar errors = _dereq_(\"./errors\");\nvar TypeError = Promise.TypeError = errors.TypeError;\nPromise.RangeError = errors.RangeError;\nvar CancellationError = Promise.CancellationError = errors.CancellationError;\nPromise.TimeoutError = errors.TimeoutError;\nPromise.OperationalError = errors.OperationalError;\nPromise.RejectionError = errors.OperationalError;\nPromise.AggregateError = errors.AggregateError;\nvar INTERNAL = function(){};\nvar APPLY = {};\nvar NEXT_FILTER = {};\nvar tryConvertToPromise = _dereq_(\"./thenables\")(Promise, INTERNAL);\nvar PromiseArray =\n _dereq_(\"./promise_array\")(Promise, INTERNAL,\n tryConvertToPromise, apiRejection, Proxyable);\nvar Context = _dereq_(\"./context\")(Promise);\n /*jshint unused:false*/\nvar createContext = Context.create;\nvar debug = _dereq_(\"./debuggability\")(Promise, Context);\nvar CapturedTrace = debug.CapturedTrace;\nvar PassThroughHandlerContext =\n _dereq_(\"./finally\")(Promise, tryConvertToPromise, NEXT_FILTER);\nvar catchFilter = _dereq_(\"./catch_filter\")(NEXT_FILTER);\nvar nodebackForPromise = _dereq_(\"./nodeback\");\nvar errorObj = util.errorObj;\nvar tryCatch = util.tryCatch;\nfunction check(self, executor) {\n if (self == null || self.constructor !== Promise) {\n throw new TypeError(\"the promise constructor cannot be invoked directly\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n if (typeof executor !== \"function\") {\n throw new TypeError(\"expecting a function but got \" + util.classString(executor));\n }\n\n}\n\nfunction Promise(executor) {\n if (executor !== INTERNAL) {\n check(this, executor);\n }\n this._bitField = 0;\n this._fulfillmentHandler0 = undefined;\n this._rejectionHandler0 = undefined;\n this._promise0 = undefined;\n this._receiver0 = undefined;\n this._resolveFromExecutor(executor);\n this._promiseCreated();\n this._fireEvent(\"promiseCreated\", this);\n}\n\nPromise.prototype.toString = function () {\n return \"[object Promise]\";\n};\n\nPromise.prototype.caught = Promise.prototype[\"catch\"] = function (fn) {\n var len = arguments.length;\n if (len > 1) {\n var catchInstances = new Array(len - 1),\n j = 0, i;\n for (i = 0; i < len - 1; ++i) {\n var item = arguments[i];\n if (util.isObject(item)) {\n catchInstances[j++] = item;\n } else {\n return apiRejection(\"Catch statement predicate: \" +\n \"expecting an object but got \" + util.classString(item));\n }\n }\n catchInstances.length = j;\n fn = arguments[i];\n return this.then(undefined, catchFilter(catchInstances, fn, this));\n }\n return this.then(undefined, fn);\n};\n\nPromise.prototype.reflect = function () {\n return this._then(reflectHandler,\n reflectHandler, undefined, this, undefined);\n};\n\nPromise.prototype.then = function (didFulfill, didReject) {\n if (debug.warnings() && arguments.length > 0 &&\n typeof didFulfill !== \"function\" &&\n typeof didReject !== \"function\") {\n var msg = \".then() only accepts functions but was passed: \" +\n util.classString(didFulfill);\n if (arguments.length > 1) {\n msg += \", \" + util.classString(didReject);\n }\n this._warn(msg);\n }\n return this._then(didFulfill, didReject, undefined, undefined, undefined);\n};\n\nPromise.prototype.done = function (didFulfill, didReject) {\n var promise =\n this._then(didFulfill, didReject, undefined, undefined, undefined);\n promise._setIsFinal();\n};\n\nPromise.prototype.spread = function (fn) {\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n return this.all()._then(fn, undefined, undefined, APPLY, undefined);\n};\n\nPromise.prototype.toJSON = function () {\n var ret = {\n isFulfilled: false,\n isRejected: false,\n fulfillmentValue: undefined,\n rejectionReason: undefined\n };\n if (this.isFulfilled()) {\n ret.fulfillmentValue = this.value();\n ret.isFulfilled = true;\n } else if (this.isRejected()) {\n ret.rejectionReason = this.reason();\n ret.isRejected = true;\n }\n return ret;\n};\n\nPromise.prototype.all = function () {\n if (arguments.length > 0) {\n this._warn(\".all() was passed arguments but it does not take any\");\n }\n return new PromiseArray(this).promise();\n};\n\nPromise.prototype.error = function (fn) {\n return this.caught(util.originatesFromRejection, fn);\n};\n\nPromise.getNewLibraryCopy = module.exports;\n\nPromise.is = function (val) {\n return val instanceof Promise;\n};\n\nPromise.fromNode = Promise.fromCallback = function(fn) {\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n var multiArgs = arguments.length > 1 ? !!Object(arguments[1]).multiArgs\n : false;\n var result = tryCatch(fn)(nodebackForPromise(ret, multiArgs));\n if (result === errorObj) {\n ret._rejectCallback(result.e, true);\n }\n if (!ret._isFateSealed()) ret._setAsyncGuaranteed();\n return ret;\n};\n\nPromise.all = function (promises) {\n return new PromiseArray(promises).promise();\n};\n\nPromise.cast = function (obj) {\n var ret = tryConvertToPromise(obj);\n if (!(ret instanceof Promise)) {\n ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n ret._setFulfilled();\n ret._rejectionHandler0 = obj;\n }\n return ret;\n};\n\nPromise.resolve = Promise.fulfilled = Promise.cast;\n\nPromise.reject = Promise.rejected = function (reason) {\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n ret._rejectCallback(reason, true);\n return ret;\n};\n\nPromise.setScheduler = function(fn) {\n if (typeof fn !== \"function\") {\n throw new TypeError(\"expecting a function but got \" + util.classString(fn));\n }\n return async.setScheduler(fn);\n};\n\nPromise.prototype._then = function (\n didFulfill,\n didReject,\n _, receiver,\n internalData\n) {\n var haveInternalData = internalData !== undefined;\n var promise = haveInternalData ? internalData : new Promise(INTERNAL);\n var target = this._target();\n var bitField = target._bitField;\n\n if (!haveInternalData) {\n promise._propagateFrom(this, 3);\n promise._captureStackTrace();\n if (receiver === undefined &&\n ((this._bitField & 2097152) !== 0)) {\n if (!((bitField & 50397184) === 0)) {\n receiver = this._boundValue();\n } else {\n receiver = target === this ? undefined : this._boundTo;\n }\n }\n this._fireEvent(\"promiseChained\", this, promise);\n }\n\n var domain = getDomain();\n if (!((bitField & 50397184) === 0)) {\n var handler, value, settler = target._settlePromiseCtx;\n if (((bitField & 33554432) !== 0)) {\n value = target._rejectionHandler0;\n handler = didFulfill;\n } else if (((bitField & 16777216) !== 0)) {\n value = target._fulfillmentHandler0;\n handler = didReject;\n target._unsetRejectionIsUnhandled();\n } else {\n settler = target._settlePromiseLateCancellationObserver;\n value = new CancellationError(\"late cancellation observer\");\n target._attachExtraTrace(value);\n handler = didReject;\n }\n\n async.invoke(settler, target, {\n handler: domain === null ? handler\n : (typeof handler === \"function\" &&\n util.domainBind(domain, handler)),\n promise: promise,\n receiver: receiver,\n value: value\n });\n } else {\n target._addCallbacks(didFulfill, didReject, promise, receiver, domain);\n }\n\n return promise;\n};\n\nPromise.prototype._length = function () {\n return this._bitField & 65535;\n};\n\nPromise.prototype._isFateSealed = function () {\n return (this._bitField & 117506048) !== 0;\n};\n\nPromise.prototype._isFollowing = function () {\n return (this._bitField & 67108864) === 67108864;\n};\n\nPromise.prototype._setLength = function (len) {\n this._bitField = (this._bitField & -65536) |\n (len & 65535);\n};\n\nPromise.prototype._setFulfilled = function () {\n this._bitField = this._bitField | 33554432;\n this._fireEvent(\"promiseFulfilled\", this);\n};\n\nPromise.prototype._setRejected = function () {\n this._bitField = this._bitField | 16777216;\n this._fireEvent(\"promiseRejected\", this);\n};\n\nPromise.prototype._setFollowing = function () {\n this._bitField = this._bitField | 67108864;\n this._fireEvent(\"promiseResolved\", this);\n};\n\nPromise.prototype._setIsFinal = function () {\n this._bitField = this._bitField | 4194304;\n};\n\nPromise.prototype._isFinal = function () {\n return (this._bitField & 4194304) > 0;\n};\n\nPromise.prototype._unsetCancelled = function() {\n this._bitField = this._bitField & (~65536);\n};\n\nPromise.prototype._setCancelled = function() {\n this._bitField = this._bitField | 65536;\n this._fireEvent(\"promiseCancelled\", this);\n};\n\nPromise.prototype._setWillBeCancelled = function() {\n this._bitField = this._bitField | 8388608;\n};\n\nPromise.prototype._setAsyncGuaranteed = function() {\n if (async.hasCustomScheduler()) return;\n this._bitField = this._bitField | 134217728;\n};\n\nPromise.prototype._receiverAt = function (index) {\n var ret = index === 0 ? this._receiver0 : this[\n index * 4 - 4 + 3];\n if (ret === UNDEFINED_BINDING) {\n return undefined;\n } else if (ret === undefined && this._isBound()) {\n return this._boundValue();\n }\n return ret;\n};\n\nPromise.prototype._promiseAt = function (index) {\n return this[\n index * 4 - 4 + 2];\n};\n\nPromise.prototype._fulfillmentHandlerAt = function (index) {\n return this[\n index * 4 - 4 + 0];\n};\n\nPromise.prototype._rejectionHandlerAt = function (index) {\n return this[\n index * 4 - 4 + 1];\n};\n\nPromise.prototype._boundValue = function() {};\n\nPromise.prototype._migrateCallback0 = function (follower) {\n var bitField = follower._bitField;\n var fulfill = follower._fulfillmentHandler0;\n var reject = follower._rejectionHandler0;\n var promise = follower._promise0;\n var receiver = follower._receiverAt(0);\n if (receiver === undefined) receiver = UNDEFINED_BINDING;\n this._addCallbacks(fulfill, reject, promise, receiver, null);\n};\n\nPromise.prototype._migrateCallbackAt = function (follower, index) {\n var fulfill = follower._fulfillmentHandlerAt(index);\n var reject = follower._rejectionHandlerAt(index);\n var promise = follower._promiseAt(index);\n var receiver = follower._receiverAt(index);\n if (receiver === undefined) receiver = UNDEFINED_BINDING;\n this._addCallbacks(fulfill, reject, promise, receiver, null);\n};\n\nPromise.prototype._addCallbacks = function (\n fulfill,\n reject,\n promise,\n receiver,\n domain\n) {\n var index = this._length();\n\n if (index >= 65535 - 4) {\n index = 0;\n this._setLength(0);\n }\n\n if (index === 0) {\n this._promise0 = promise;\n this._receiver0 = receiver;\n if (typeof fulfill === \"function\") {\n this._fulfillmentHandler0 =\n domain === null ? fulfill : util.domainBind(domain, fulfill);\n }\n if (typeof reject === \"function\") {\n this._rejectionHandler0 =\n domain === null ? reject : util.domainBind(domain, reject);\n }\n } else {\n var base = index * 4 - 4;\n this[base + 2] = promise;\n this[base + 3] = receiver;\n if (typeof fulfill === \"function\") {\n this[base + 0] =\n domain === null ? fulfill : util.domainBind(domain, fulfill);\n }\n if (typeof reject === \"function\") {\n this[base + 1] =\n domain === null ? reject : util.domainBind(domain, reject);\n }\n }\n this._setLength(index + 1);\n return index;\n};\n\nPromise.prototype._proxy = function (proxyable, arg) {\n this._addCallbacks(undefined, undefined, arg, proxyable, null);\n};\n\nPromise.prototype._resolveCallback = function(value, shouldBind) {\n if (((this._bitField & 117506048) !== 0)) return;\n if (value === this)\n return this._rejectCallback(makeSelfResolutionError(), false);\n var maybePromise = tryConvertToPromise(value, this);\n if (!(maybePromise instanceof Promise)) return this._fulfill(value);\n\n if (shouldBind) this._propagateFrom(maybePromise, 2);\n\n var promise = maybePromise._target();\n\n if (promise === this) {\n this._reject(makeSelfResolutionError());\n return;\n }\n\n var bitField = promise._bitField;\n if (((bitField & 50397184) === 0)) {\n var len = this._length();\n if (len > 0) promise._migrateCallback0(this);\n for (var i = 1; i < len; ++i) {\n promise._migrateCallbackAt(this, i);\n }\n this._setFollowing();\n this._setLength(0);\n this._setFollowee(promise);\n } else if (((bitField & 33554432) !== 0)) {\n this._fulfill(promise._value());\n } else if (((bitField & 16777216) !== 0)) {\n this._reject(promise._reason());\n } else {\n var reason = new CancellationError(\"late cancellation observer\");\n promise._attachExtraTrace(reason);\n this._reject(reason);\n }\n};\n\nPromise.prototype._rejectCallback =\nfunction(reason, synchronous, ignoreNonErrorWarnings) {\n var trace = util.ensureErrorObject(reason);\n var hasStack = trace === reason;\n if (!hasStack && !ignoreNonErrorWarnings && debug.warnings()) {\n var message = \"a promise was rejected with a non-error: \" +\n util.classString(reason);\n this._warn(message, true);\n }\n this._attachExtraTrace(trace, synchronous ? hasStack : false);\n this._reject(reason);\n};\n\nPromise.prototype._resolveFromExecutor = function (executor) {\n if (executor === INTERNAL) return;\n var promise = this;\n this._captureStackTrace();\n this._pushContext();\n var synchronous = true;\n var r = this._execute(executor, function(value) {\n promise._resolveCallback(value);\n }, function (reason) {\n promise._rejectCallback(reason, synchronous);\n });\n synchronous = false;\n this._popContext();\n\n if (r !== undefined) {\n promise._rejectCallback(r, true);\n }\n};\n\nPromise.prototype._settlePromiseFromHandler = function (\n handler, receiver, value, promise\n) {\n var bitField = promise._bitField;\n if (((bitField & 65536) !== 0)) return;\n promise._pushContext();\n var x;\n if (receiver === APPLY) {\n if (!value || typeof value.length !== \"number\") {\n x = errorObj;\n x.e = new TypeError(\"cannot .spread() a non-array: \" +\n util.classString(value));\n } else {\n x = tryCatch(handler).apply(this._boundValue(), value);\n }\n } else {\n x = tryCatch(handler).call(receiver, value);\n }\n var promiseCreated = promise._popContext();\n bitField = promise._bitField;\n if (((bitField & 65536) !== 0)) return;\n\n if (x === NEXT_FILTER) {\n promise._reject(value);\n } else if (x === errorObj) {\n promise._rejectCallback(x.e, false);\n } else {\n debug.checkForgottenReturns(x, promiseCreated, \"\", promise, this);\n promise._resolveCallback(x);\n }\n};\n\nPromise.prototype._target = function() {\n var ret = this;\n while (ret._isFollowing()) ret = ret._followee();\n return ret;\n};\n\nPromise.prototype._followee = function() {\n return this._rejectionHandler0;\n};\n\nPromise.prototype._setFollowee = function(promise) {\n this._rejectionHandler0 = promise;\n};\n\nPromise.prototype._settlePromise = function(promise, handler, receiver, value) {\n var isPromise = promise instanceof Promise;\n var bitField = this._bitField;\n var asyncGuaranteed = ((bitField & 134217728) !== 0);\n if (((bitField & 65536) !== 0)) {\n if (isPromise) promise._invokeInternalOnCancel();\n\n if (receiver instanceof PassThroughHandlerContext &&\n receiver.isFinallyHandler()) {\n receiver.cancelPromise = promise;\n if (tryCatch(handler).call(receiver, value) === errorObj) {\n promise._reject(errorObj.e);\n }\n } else if (handler === reflectHandler) {\n promise._fulfill(reflectHandler.call(receiver));\n } else if (receiver instanceof Proxyable) {\n receiver._promiseCancelled(promise);\n } else if (isPromise || promise instanceof PromiseArray) {\n promise._cancel();\n } else {\n receiver.cancel();\n }\n } else if (typeof handler === \"function\") {\n if (!isPromise) {\n handler.call(receiver, value, promise);\n } else {\n if (asyncGuaranteed) promise._setAsyncGuaranteed();\n this._settlePromiseFromHandler(handler, receiver, value, promise);\n }\n } else if (receiver instanceof Proxyable) {\n if (!receiver._isResolved()) {\n if (((bitField & 33554432) !== 0)) {\n receiver._promiseFulfilled(value, promise);\n } else {\n receiver._promiseRejected(value, promise);\n }\n }\n } else if (isPromise) {\n if (asyncGuaranteed) promise._setAsyncGuaranteed();\n if (((bitField & 33554432) !== 0)) {\n promise._fulfill(value);\n } else {\n promise._reject(value);\n }\n }\n};\n\nPromise.prototype._settlePromiseLateCancellationObserver = function(ctx) {\n var handler = ctx.handler;\n var promise = ctx.promise;\n var receiver = ctx.receiver;\n var value = ctx.value;\n if (typeof handler === \"function\") {\n if (!(promise instanceof Promise)) {\n handler.call(receiver, value, promise);\n } else {\n this._settlePromiseFromHandler(handler, receiver, value, promise);\n }\n } else if (promise instanceof Promise) {\n promise._reject(value);\n }\n};\n\nPromise.prototype._settlePromiseCtx = function(ctx) {\n this._settlePromise(ctx.promise, ctx.handler, ctx.receiver, ctx.value);\n};\n\nPromise.prototype._settlePromise0 = function(handler, value, bitField) {\n var promise = this._promise0;\n var receiver = this._receiverAt(0);\n this._promise0 = undefined;\n this._receiver0 = undefined;\n this._settlePromise(promise, handler, receiver, value);\n};\n\nPromise.prototype._clearCallbackDataAtIndex = function(index) {\n var base = index * 4 - 4;\n this[base + 2] =\n this[base + 3] =\n this[base + 0] =\n this[base + 1] = undefined;\n};\n\nPromise.prototype._fulfill = function (value) {\n var bitField = this._bitField;\n if (((bitField & 117506048) >>> 16)) return;\n if (value === this) {\n var err = makeSelfResolutionError();\n this._attachExtraTrace(err);\n return this._reject(err);\n }\n this._setFulfilled();\n this._rejectionHandler0 = value;\n\n if ((bitField & 65535) > 0) {\n if (((bitField & 134217728) !== 0)) {\n this._settlePromises();\n } else {\n async.settlePromises(this);\n }\n }\n};\n\nPromise.prototype._reject = function (reason) {\n var bitField = this._bitField;\n if (((bitField & 117506048) >>> 16)) return;\n this._setRejected();\n this._fulfillmentHandler0 = reason;\n\n if (this._isFinal()) {\n return async.fatalError(reason, util.isNode);\n }\n\n if ((bitField & 65535) > 0) {\n async.settlePromises(this);\n } else {\n this._ensurePossibleRejectionHandled();\n }\n};\n\nPromise.prototype._fulfillPromises = function (len, value) {\n for (var i = 1; i < len; i++) {\n var handler = this._fulfillmentHandlerAt(i);\n var promise = this._promiseAt(i);\n var receiver = this._receiverAt(i);\n this._clearCallbackDataAtIndex(i);\n this._settlePromise(promise, handler, receiver, value);\n }\n};\n\nPromise.prototype._rejectPromises = function (len, reason) {\n for (var i = 1; i < len; i++) {\n var handler = this._rejectionHandlerAt(i);\n var promise = this._promiseAt(i);\n var receiver = this._receiverAt(i);\n this._clearCallbackDataAtIndex(i);\n this._settlePromise(promise, handler, receiver, reason);\n }\n};\n\nPromise.prototype._settlePromises = function () {\n var bitField = this._bitField;\n var len = (bitField & 65535);\n\n if (len > 0) {\n if (((bitField & 16842752) !== 0)) {\n var reason = this._fulfillmentHandler0;\n this._settlePromise0(this._rejectionHandler0, reason, bitField);\n this._rejectPromises(len, reason);\n } else {\n var value = this._rejectionHandler0;\n this._settlePromise0(this._fulfillmentHandler0, value, bitField);\n this._fulfillPromises(len, value);\n }\n this._setLength(0);\n }\n this._clearCancellationData();\n};\n\nPromise.prototype._settledValue = function() {\n var bitField = this._bitField;\n if (((bitField & 33554432) !== 0)) {\n return this._rejectionHandler0;\n } else if (((bitField & 16777216) !== 0)) {\n return this._fulfillmentHandler0;\n }\n};\n\nfunction deferResolve(v) {this.promise._resolveCallback(v);}\nfunction deferReject(v) {this.promise._rejectCallback(v, false);}\n\nPromise.defer = Promise.pending = function() {\n debug.deprecated(\"Promise.defer\", \"new Promise\");\n var promise = new Promise(INTERNAL);\n return {\n promise: promise,\n resolve: deferResolve,\n reject: deferReject\n };\n};\n\nutil.notEnumerableProp(Promise,\n \"_makeSelfResolutionError\",\n makeSelfResolutionError);\n\n_dereq_(\"./method\")(Promise, INTERNAL, tryConvertToPromise, apiRejection,\n debug);\n_dereq_(\"./bind\")(Promise, INTERNAL, tryConvertToPromise, debug);\n_dereq_(\"./cancel\")(Promise, PromiseArray, apiRejection, debug);\n_dereq_(\"./direct_resolve\")(Promise);\n_dereq_(\"./synchronous_inspection\")(Promise);\n_dereq_(\"./join\")(\n Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain);\nPromise.Promise = Promise;\nPromise.version = \"3.5.1\";\n_dereq_('./map.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug);\n_dereq_('./call_get.js')(Promise);\n_dereq_('./using.js')(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug);\n_dereq_('./timers.js')(Promise, INTERNAL, debug);\n_dereq_('./generators.js')(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug);\n_dereq_('./nodeify.js')(Promise);\n_dereq_('./promisify.js')(Promise, INTERNAL);\n_dereq_('./props.js')(Promise, PromiseArray, tryConvertToPromise, apiRejection);\n_dereq_('./race.js')(Promise, INTERNAL, tryConvertToPromise, apiRejection);\n_dereq_('./reduce.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug);\n_dereq_('./settle.js')(Promise, PromiseArray, debug);\n_dereq_('./some.js')(Promise, PromiseArray, apiRejection);\n_dereq_('./filter.js')(Promise, INTERNAL);\n_dereq_('./each.js')(Promise, INTERNAL);\n_dereq_('./any.js')(Promise);\n \n util.toFastProperties(Promise); \n util.toFastProperties(Promise.prototype); \n function fillTypes(value) { \n var p = new Promise(INTERNAL); \n p._fulfillmentHandler0 = value; \n p._rejectionHandler0 = value; \n p._promise0 = value; \n p._receiver0 = value; \n } \n // Complete slack tracking, opt out of field-type tracking and \n // stabilize map \n fillTypes({a: 1}); \n fillTypes({b: 2}); \n fillTypes({c: 3}); \n fillTypes(1); \n fillTypes(function(){}); \n fillTypes(undefined); \n fillTypes(false); \n fillTypes(new Promise(INTERNAL)); \n debug.setBounds(Async.firstLineError, util.lastLineError); \n return Promise; \n\n};\n\n},{\"./any.js\":1,\"./async\":2,\"./bind\":3,\"./call_get.js\":5,\"./cancel\":6,\"./catch_filter\":7,\"./context\":8,\"./debuggability\":9,\"./direct_resolve\":10,\"./each.js\":11,\"./errors\":12,\"./es5\":13,\"./filter.js\":14,\"./finally\":15,\"./generators.js\":16,\"./join\":17,\"./map.js\":18,\"./method\":19,\"./nodeback\":20,\"./nodeify.js\":21,\"./promise_array\":23,\"./promisify.js\":24,\"./props.js\":25,\"./race.js\":27,\"./reduce.js\":28,\"./settle.js\":30,\"./some.js\":31,\"./synchronous_inspection\":32,\"./thenables\":33,\"./timers.js\":34,\"./using.js\":35,\"./util\":36}],23:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, INTERNAL, tryConvertToPromise,\n apiRejection, Proxyable) {\nvar util = _dereq_(\"./util\");\nvar isArray = util.isArray;\n\nfunction toResolutionValue(val) {\n switch(val) {\n case -2: return [];\n case -3: return {};\n case -6: return new Map();\n }\n}\n\nfunction PromiseArray(values) {\n var promise = this._promise = new Promise(INTERNAL);\n if (values instanceof Promise) {\n promise._propagateFrom(values, 3);\n }\n promise._setOnCancel(this);\n this._values = values;\n this._length = 0;\n this._totalResolved = 0;\n this._init(undefined, -2);\n}\nutil.inherits(PromiseArray, Proxyable);\n\nPromiseArray.prototype.length = function () {\n return this._length;\n};\n\nPromiseArray.prototype.promise = function () {\n return this._promise;\n};\n\nPromiseArray.prototype._init = function init(_, resolveValueIfEmpty) {\n var values = tryConvertToPromise(this._values, this._promise);\n if (values instanceof Promise) {\n values = values._target();\n var bitField = values._bitField;\n ;\n this._values = values;\n\n if (((bitField & 50397184) === 0)) {\n this._promise._setAsyncGuaranteed();\n return values._then(\n init,\n this._reject,\n undefined,\n this,\n resolveValueIfEmpty\n );\n } else if (((bitField & 33554432) !== 0)) {\n values = values._value();\n } else if (((bitField & 16777216) !== 0)) {\n return this._reject(values._reason());\n } else {\n return this._cancel();\n }\n }\n values = util.asArray(values);\n if (values === null) {\n var err = apiRejection(\n \"expecting an array or an iterable object but got \" + util.classString(values)).reason();\n this._promise._rejectCallback(err, false);\n return;\n }\n\n if (values.length === 0) {\n if (resolveValueIfEmpty === -5) {\n this._resolveEmptyArray();\n }\n else {\n this._resolve(toResolutionValue(resolveValueIfEmpty));\n }\n return;\n }\n this._iterate(values);\n};\n\nPromiseArray.prototype._iterate = function(values) {\n var len = this.getActualLength(values.length);\n this._length = len;\n this._values = this.shouldCopyValues() ? new Array(len) : this._values;\n var result = this._promise;\n var isResolved = false;\n var bitField = null;\n for (var i = 0; i < len; ++i) {\n var maybePromise = tryConvertToPromise(values[i], result);\n\n if (maybePromise instanceof Promise) {\n maybePromise = maybePromise._target();\n bitField = maybePromise._bitField;\n } else {\n bitField = null;\n }\n\n if (isResolved) {\n if (bitField !== null) {\n maybePromise.suppressUnhandledRejections();\n }\n } else if (bitField !== null) {\n if (((bitField & 50397184) === 0)) {\n maybePromise._proxy(this, i);\n this._values[i] = maybePromise;\n } else if (((bitField & 33554432) !== 0)) {\n isResolved = this._promiseFulfilled(maybePromise._value(), i);\n } else if (((bitField & 16777216) !== 0)) {\n isResolved = this._promiseRejected(maybePromise._reason(), i);\n } else {\n isResolved = this._promiseCancelled(i);\n }\n } else {\n isResolved = this._promiseFulfilled(maybePromise, i);\n }\n }\n if (!isResolved) result._setAsyncGuaranteed();\n};\n\nPromiseArray.prototype._isResolved = function () {\n return this._values === null;\n};\n\nPromiseArray.prototype._resolve = function (value) {\n this._values = null;\n this._promise._fulfill(value);\n};\n\nPromiseArray.prototype._cancel = function() {\n if (this._isResolved() || !this._promise._isCancellable()) return;\n this._values = null;\n this._promise._cancel();\n};\n\nPromiseArray.prototype._reject = function (reason) {\n this._values = null;\n this._promise._rejectCallback(reason, false);\n};\n\nPromiseArray.prototype._promiseFulfilled = function (value, index) {\n this._values[index] = value;\n var totalResolved = ++this._totalResolved;\n if (totalResolved >= this._length) {\n this._resolve(this._values);\n return true;\n }\n return false;\n};\n\nPromiseArray.prototype._promiseCancelled = function() {\n this._cancel();\n return true;\n};\n\nPromiseArray.prototype._promiseRejected = function (reason) {\n this._totalResolved++;\n this._reject(reason);\n return true;\n};\n\nPromiseArray.prototype._resultCancelled = function() {\n if (this._isResolved()) return;\n var values = this._values;\n this._cancel();\n if (values instanceof Promise) {\n values.cancel();\n } else {\n for (var i = 0; i < values.length; ++i) {\n if (values[i] instanceof Promise) {\n values[i].cancel();\n }\n }\n }\n};\n\nPromiseArray.prototype.shouldCopyValues = function () {\n return true;\n};\n\nPromiseArray.prototype.getActualLength = function (len) {\n return len;\n};\n\nreturn PromiseArray;\n};\n\n},{\"./util\":36}],24:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, INTERNAL) {\nvar THIS = {};\nvar util = _dereq_(\"./util\");\nvar nodebackForPromise = _dereq_(\"./nodeback\");\nvar withAppended = util.withAppended;\nvar maybeWrapAsError = util.maybeWrapAsError;\nvar canEvaluate = util.canEvaluate;\nvar TypeError = _dereq_(\"./errors\").TypeError;\nvar defaultSuffix = \"Async\";\nvar defaultPromisified = {__isPromisified__: true};\nvar noCopyProps = [\n \"arity\", \"length\",\n \"name\",\n \"arguments\",\n \"caller\",\n \"callee\",\n \"prototype\",\n \"__isPromisified__\"\n];\nvar noCopyPropsPattern = new RegExp(\"^(?:\" + noCopyProps.join(\"|\") + \")$\");\n\nvar defaultFilter = function(name) {\n return util.isIdentifier(name) &&\n name.charAt(0) !== \"_\" &&\n name !== \"constructor\";\n};\n\nfunction propsFilter(key) {\n return !noCopyPropsPattern.test(key);\n}\n\nfunction isPromisified(fn) {\n try {\n return fn.__isPromisified__ === true;\n }\n catch (e) {\n return false;\n }\n}\n\nfunction hasPromisified(obj, key, suffix) {\n var val = util.getDataPropertyOrDefault(obj, key + suffix,\n defaultPromisified);\n return val ? isPromisified(val) : false;\n}\nfunction checkValid(ret, suffix, suffixRegexp) {\n for (var i = 0; i < ret.length; i += 2) {\n var key = ret[i];\n if (suffixRegexp.test(key)) {\n var keyWithoutAsyncSuffix = key.replace(suffixRegexp, \"\");\n for (var j = 0; j < ret.length; j += 2) {\n if (ret[j] === keyWithoutAsyncSuffix) {\n throw new TypeError(\"Cannot promisify an API that has normal methods with '%s'-suffix\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\"\n .replace(\"%s\", suffix));\n }\n }\n }\n }\n}\n\nfunction promisifiableMethods(obj, suffix, suffixRegexp, filter) {\n var keys = util.inheritedDataKeys(obj);\n var ret = [];\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var value = obj[key];\n var passesDefaultFilter = filter === defaultFilter\n ? true : defaultFilter(key, value, obj);\n if (typeof value === \"function\" &&\n !isPromisified(value) &&\n !hasPromisified(obj, key, suffix) &&\n filter(key, value, obj, passesDefaultFilter)) {\n ret.push(key, value);\n }\n }\n checkValid(ret, suffix, suffixRegexp);\n return ret;\n}\n\nvar escapeIdentRegex = function(str) {\n return str.replace(/([$])/, \"\\\\$\");\n};\n\nvar makeNodePromisifiedEval;\nif (!true) {\nvar switchCaseArgumentOrder = function(likelyArgumentCount) {\n var ret = [likelyArgumentCount];\n var min = Math.max(0, likelyArgumentCount - 1 - 3);\n for(var i = likelyArgumentCount - 1; i >= min; --i) {\n ret.push(i);\n }\n for(var i = likelyArgumentCount + 1; i <= 3; ++i) {\n ret.push(i);\n }\n return ret;\n};\n\nvar argumentSequence = function(argumentCount) {\n return util.filledRange(argumentCount, \"_arg\", \"\");\n};\n\nvar parameterDeclaration = function(parameterCount) {\n return util.filledRange(\n Math.max(parameterCount, 3), \"_arg\", \"\");\n};\n\nvar parameterCount = function(fn) {\n if (typeof fn.length === \"number\") {\n return Math.max(Math.min(fn.length, 1023 + 1), 0);\n }\n return 0;\n};\n\nmakeNodePromisifiedEval =\nfunction(callback, receiver, originalName, fn, _, multiArgs) {\n var newParameterCount = Math.max(0, parameterCount(fn) - 1);\n var argumentOrder = switchCaseArgumentOrder(newParameterCount);\n var shouldProxyThis = typeof callback === \"string\" || receiver === THIS;\n\n function generateCallForArgumentCount(count) {\n var args = argumentSequence(count).join(\", \");\n var comma = count > 0 ? \", \" : \"\";\n var ret;\n if (shouldProxyThis) {\n ret = \"ret = callback.call(this, {{args}}, nodeback); break;\\n\";\n } else {\n ret = receiver === undefined\n ? \"ret = callback({{args}}, nodeback); break;\\n\"\n : \"ret = callback.call(receiver, {{args}}, nodeback); break;\\n\";\n }\n return ret.replace(\"{{args}}\", args).replace(\", \", comma);\n }\n\n function generateArgumentSwitchCase() {\n var ret = \"\";\n for (var i = 0; i < argumentOrder.length; ++i) {\n ret += \"case \" + argumentOrder[i] +\":\" +\n generateCallForArgumentCount(argumentOrder[i]);\n }\n\n ret += \" \\n\\\n default: \\n\\\n var args = new Array(len + 1); \\n\\\n var i = 0; \\n\\\n for (var i = 0; i < len; ++i) { \\n\\\n args[i] = arguments[i]; \\n\\\n } \\n\\\n args[i] = nodeback; \\n\\\n [CodeForCall] \\n\\\n break; \\n\\\n \".replace(\"[CodeForCall]\", (shouldProxyThis\n ? \"ret = callback.apply(this, args);\\n\"\n : \"ret = callback.apply(receiver, args);\\n\"));\n return ret;\n }\n\n var getFunctionCode = typeof callback === \"string\"\n ? (\"this != null ? this['\"+callback+\"'] : fn\")\n : \"fn\";\n var body = \"'use strict'; \\n\\\n var ret = function (Parameters) { \\n\\\n 'use strict'; \\n\\\n var len = arguments.length; \\n\\\n var promise = new Promise(INTERNAL); \\n\\\n promise._captureStackTrace(); \\n\\\n var nodeback = nodebackForPromise(promise, \" + multiArgs + \"); \\n\\\n var ret; \\n\\\n var callback = tryCatch([GetFunctionCode]); \\n\\\n switch(len) { \\n\\\n [CodeForSwitchCase] \\n\\\n } \\n\\\n if (ret === errorObj) { \\n\\\n promise._rejectCallback(maybeWrapAsError(ret.e), true, true);\\n\\\n } \\n\\\n if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); \\n\\\n return promise; \\n\\\n }; \\n\\\n notEnumerableProp(ret, '__isPromisified__', true); \\n\\\n return ret; \\n\\\n \".replace(\"[CodeForSwitchCase]\", generateArgumentSwitchCase())\n .replace(\"[GetFunctionCode]\", getFunctionCode);\n body = body.replace(\"Parameters\", parameterDeclaration(newParameterCount));\n return new Function(\"Promise\",\n \"fn\",\n \"receiver\",\n \"withAppended\",\n \"maybeWrapAsError\",\n \"nodebackForPromise\",\n \"tryCatch\",\n \"errorObj\",\n \"notEnumerableProp\",\n \"INTERNAL\",\n body)(\n Promise,\n fn,\n receiver,\n withAppended,\n maybeWrapAsError,\n nodebackForPromise,\n util.tryCatch,\n util.errorObj,\n util.notEnumerableProp,\n INTERNAL);\n};\n}\n\nfunction makeNodePromisifiedClosure(callback, receiver, _, fn, __, multiArgs) {\n var defaultThis = (function() {return this;})();\n var method = callback;\n if (typeof method === \"string\") {\n callback = fn;\n }\n function promisified() {\n var _receiver = receiver;\n if (receiver === THIS) _receiver = this;\n var promise = new Promise(INTERNAL);\n promise._captureStackTrace();\n var cb = typeof method === \"string\" && this !== defaultThis\n ? this[method] : callback;\n var fn = nodebackForPromise(promise, multiArgs);\n try {\n cb.apply(_receiver, withAppended(arguments, fn));\n } catch(e) {\n promise._rejectCallback(maybeWrapAsError(e), true, true);\n }\n if (!promise._isFateSealed()) promise._setAsyncGuaranteed();\n return promise;\n }\n util.notEnumerableProp(promisified, \"__isPromisified__\", true);\n return promisified;\n}\n\nvar makeNodePromisified = canEvaluate\n ? makeNodePromisifiedEval\n : makeNodePromisifiedClosure;\n\nfunction promisifyAll(obj, suffix, filter, promisifier, multiArgs) {\n var suffixRegexp = new RegExp(escapeIdentRegex(suffix) + \"$\");\n var methods =\n promisifiableMethods(obj, suffix, suffixRegexp, filter);\n\n for (var i = 0, len = methods.length; i < len; i+= 2) {\n var key = methods[i];\n var fn = methods[i+1];\n var promisifiedKey = key + suffix;\n if (promisifier === makeNodePromisified) {\n obj[promisifiedKey] =\n makeNodePromisified(key, THIS, key, fn, suffix, multiArgs);\n } else {\n var promisified = promisifier(fn, function() {\n return makeNodePromisified(key, THIS, key,\n fn, suffix, multiArgs);\n });\n util.notEnumerableProp(promisified, \"__isPromisified__\", true);\n obj[promisifiedKey] = promisified;\n }\n }\n util.toFastProperties(obj);\n return obj;\n}\n\nfunction promisify(callback, receiver, multiArgs) {\n return makeNodePromisified(callback, receiver, undefined,\n callback, null, multiArgs);\n}\n\nPromise.promisify = function (fn, options) {\n if (typeof fn !== \"function\") {\n throw new TypeError(\"expecting a function but got \" + util.classString(fn));\n }\n if (isPromisified(fn)) {\n return fn;\n }\n options = Object(options);\n var receiver = options.context === undefined ? THIS : options.context;\n var multiArgs = !!options.multiArgs;\n var ret = promisify(fn, receiver, multiArgs);\n util.copyDescriptors(fn, ret, propsFilter);\n return ret;\n};\n\nPromise.promisifyAll = function (target, options) {\n if (typeof target !== \"function\" && typeof target !== \"object\") {\n throw new TypeError(\"the target of promisifyAll must be an object or a function\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n options = Object(options);\n var multiArgs = !!options.multiArgs;\n var suffix = options.suffix;\n if (typeof suffix !== \"string\") suffix = defaultSuffix;\n var filter = options.filter;\n if (typeof filter !== \"function\") filter = defaultFilter;\n var promisifier = options.promisifier;\n if (typeof promisifier !== \"function\") promisifier = makeNodePromisified;\n\n if (!util.isIdentifier(suffix)) {\n throw new RangeError(\"suffix must be a valid identifier\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n\n var keys = util.inheritedDataKeys(target);\n for (var i = 0; i < keys.length; ++i) {\n var value = target[keys[i]];\n if (keys[i] !== \"constructor\" &&\n util.isClass(value)) {\n promisifyAll(value.prototype, suffix, filter, promisifier,\n multiArgs);\n promisifyAll(value, suffix, filter, promisifier, multiArgs);\n }\n }\n\n return promisifyAll(target, suffix, filter, promisifier, multiArgs);\n};\n};\n\n\n},{\"./errors\":12,\"./nodeback\":20,\"./util\":36}],25:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(\n Promise, PromiseArray, tryConvertToPromise, apiRejection) {\nvar util = _dereq_(\"./util\");\nvar isObject = util.isObject;\nvar es5 = _dereq_(\"./es5\");\nvar Es6Map;\nif (typeof Map === \"function\") Es6Map = Map;\n\nvar mapToEntries = (function() {\n var index = 0;\n var size = 0;\n\n function extractEntry(value, key) {\n this[index] = value;\n this[index + size] = key;\n index++;\n }\n\n return function mapToEntries(map) {\n size = map.size;\n index = 0;\n var ret = new Array(map.size * 2);\n map.forEach(extractEntry, ret);\n return ret;\n };\n})();\n\nvar entriesToMap = function(entries) {\n var ret = new Es6Map();\n var length = entries.length / 2 | 0;\n for (var i = 0; i < length; ++i) {\n var key = entries[length + i];\n var value = entries[i];\n ret.set(key, value);\n }\n return ret;\n};\n\nfunction PropertiesPromiseArray(obj) {\n var isMap = false;\n var entries;\n if (Es6Map !== undefined && obj instanceof Es6Map) {\n entries = mapToEntries(obj);\n isMap = true;\n } else {\n var keys = es5.keys(obj);\n var len = keys.length;\n entries = new Array(len * 2);\n for (var i = 0; i < len; ++i) {\n var key = keys[i];\n entries[i] = obj[key];\n entries[i + len] = key;\n }\n }\n this.constructor$(entries);\n this._isMap = isMap;\n this._init$(undefined, isMap ? -6 : -3);\n}\nutil.inherits(PropertiesPromiseArray, PromiseArray);\n\nPropertiesPromiseArray.prototype._init = function () {};\n\nPropertiesPromiseArray.prototype._promiseFulfilled = function (value, index) {\n this._values[index] = value;\n var totalResolved = ++this._totalResolved;\n if (totalResolved >= this._length) {\n var val;\n if (this._isMap) {\n val = entriesToMap(this._values);\n } else {\n val = {};\n var keyOffset = this.length();\n for (var i = 0, len = this.length(); i < len; ++i) {\n val[this._values[i + keyOffset]] = this._values[i];\n }\n }\n this._resolve(val);\n return true;\n }\n return false;\n};\n\nPropertiesPromiseArray.prototype.shouldCopyValues = function () {\n return false;\n};\n\nPropertiesPromiseArray.prototype.getActualLength = function (len) {\n return len >> 1;\n};\n\nfunction props(promises) {\n var ret;\n var castValue = tryConvertToPromise(promises);\n\n if (!isObject(castValue)) {\n return apiRejection(\"cannot await properties of a non-object\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n } else if (castValue instanceof Promise) {\n ret = castValue._then(\n Promise.props, undefined, undefined, undefined, undefined);\n } else {\n ret = new PropertiesPromiseArray(castValue).promise();\n }\n\n if (castValue instanceof Promise) {\n ret._propagateFrom(castValue, 2);\n }\n return ret;\n}\n\nPromise.prototype.props = function () {\n return props(this);\n};\n\nPromise.props = function (promises) {\n return props(promises);\n};\n};\n\n},{\"./es5\":13,\"./util\":36}],26:[function(_dereq_,module,exports){\n\"use strict\";\nfunction arrayMove(src, srcIndex, dst, dstIndex, len) {\n for (var j = 0; j < len; ++j) {\n dst[j + dstIndex] = src[j + srcIndex];\n src[j + srcIndex] = void 0;\n }\n}\n\nfunction Queue(capacity) {\n this._capacity = capacity;\n this._length = 0;\n this._front = 0;\n}\n\nQueue.prototype._willBeOverCapacity = function (size) {\n return this._capacity < size;\n};\n\nQueue.prototype._pushOne = function (arg) {\n var length = this.length();\n this._checkCapacity(length + 1);\n var i = (this._front + length) & (this._capacity - 1);\n this[i] = arg;\n this._length = length + 1;\n};\n\nQueue.prototype.push = function (fn, receiver, arg) {\n var length = this.length() + 3;\n if (this._willBeOverCapacity(length)) {\n this._pushOne(fn);\n this._pushOne(receiver);\n this._pushOne(arg);\n return;\n }\n var j = this._front + length - 3;\n this._checkCapacity(length);\n var wrapMask = this._capacity - 1;\n this[(j + 0) & wrapMask] = fn;\n this[(j + 1) & wrapMask] = receiver;\n this[(j + 2) & wrapMask] = arg;\n this._length = length;\n};\n\nQueue.prototype.shift = function () {\n var front = this._front,\n ret = this[front];\n\n this[front] = undefined;\n this._front = (front + 1) & (this._capacity - 1);\n this._length--;\n return ret;\n};\n\nQueue.prototype.length = function () {\n return this._length;\n};\n\nQueue.prototype._checkCapacity = function (size) {\n if (this._capacity < size) {\n this._resizeTo(this._capacity << 1);\n }\n};\n\nQueue.prototype._resizeTo = function (capacity) {\n var oldCapacity = this._capacity;\n this._capacity = capacity;\n var front = this._front;\n var length = this._length;\n var moveItemsCount = (front + length) & (oldCapacity - 1);\n arrayMove(this, 0, this, oldCapacity, moveItemsCount);\n};\n\nmodule.exports = Queue;\n\n},{}],27:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(\n Promise, INTERNAL, tryConvertToPromise, apiRejection) {\nvar util = _dereq_(\"./util\");\n\nvar raceLater = function (promise) {\n return promise.then(function(array) {\n return race(array, promise);\n });\n};\n\nfunction race(promises, parent) {\n var maybePromise = tryConvertToPromise(promises);\n\n if (maybePromise instanceof Promise) {\n return raceLater(maybePromise);\n } else {\n promises = util.asArray(promises);\n if (promises === null)\n return apiRejection(\"expecting an array or an iterable object but got \" + util.classString(promises));\n }\n\n var ret = new Promise(INTERNAL);\n if (parent !== undefined) {\n ret._propagateFrom(parent, 3);\n }\n var fulfill = ret._fulfill;\n var reject = ret._reject;\n for (var i = 0, len = promises.length; i < len; ++i) {\n var val = promises[i];\n\n if (val === undefined && !(i in promises)) {\n continue;\n }\n\n Promise.cast(val)._then(fulfill, reject, undefined, ret, null);\n }\n return ret;\n}\n\nPromise.race = function (promises) {\n return race(promises, undefined);\n};\n\nPromise.prototype.race = function () {\n return race(this, undefined);\n};\n\n};\n\n},{\"./util\":36}],28:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise,\n PromiseArray,\n apiRejection,\n tryConvertToPromise,\n INTERNAL,\n debug) {\nvar getDomain = Promise._getDomain;\nvar util = _dereq_(\"./util\");\nvar tryCatch = util.tryCatch;\n\nfunction ReductionPromiseArray(promises, fn, initialValue, _each) {\n this.constructor$(promises);\n var domain = getDomain();\n this._fn = domain === null ? fn : util.domainBind(domain, fn);\n if (initialValue !== undefined) {\n initialValue = Promise.resolve(initialValue);\n initialValue._attachCancellationCallback(this);\n }\n this._initialValue = initialValue;\n this._currentCancellable = null;\n if(_each === INTERNAL) {\n this._eachValues = Array(this._length);\n } else if (_each === 0) {\n this._eachValues = null;\n } else {\n this._eachValues = undefined;\n }\n this._promise._captureStackTrace();\n this._init$(undefined, -5);\n}\nutil.inherits(ReductionPromiseArray, PromiseArray);\n\nReductionPromiseArray.prototype._gotAccum = function(accum) {\n if (this._eachValues !== undefined && \n this._eachValues !== null && \n accum !== INTERNAL) {\n this._eachValues.push(accum);\n }\n};\n\nReductionPromiseArray.prototype._eachComplete = function(value) {\n if (this._eachValues !== null) {\n this._eachValues.push(value);\n }\n return this._eachValues;\n};\n\nReductionPromiseArray.prototype._init = function() {};\n\nReductionPromiseArray.prototype._resolveEmptyArray = function() {\n this._resolve(this._eachValues !== undefined ? this._eachValues\n : this._initialValue);\n};\n\nReductionPromiseArray.prototype.shouldCopyValues = function () {\n return false;\n};\n\nReductionPromiseArray.prototype._resolve = function(value) {\n this._promise._resolveCallback(value);\n this._values = null;\n};\n\nReductionPromiseArray.prototype._resultCancelled = function(sender) {\n if (sender === this._initialValue) return this._cancel();\n if (this._isResolved()) return;\n this._resultCancelled$();\n if (this._currentCancellable instanceof Promise) {\n this._currentCancellable.cancel();\n }\n if (this._initialValue instanceof Promise) {\n this._initialValue.cancel();\n }\n};\n\nReductionPromiseArray.prototype._iterate = function (values) {\n this._values = values;\n var value;\n var i;\n var length = values.length;\n if (this._initialValue !== undefined) {\n value = this._initialValue;\n i = 0;\n } else {\n value = Promise.resolve(values[0]);\n i = 1;\n }\n\n this._currentCancellable = value;\n\n if (!value.isRejected()) {\n for (; i < length; ++i) {\n var ctx = {\n accum: null,\n value: values[i],\n index: i,\n length: length,\n array: this\n };\n value = value._then(gotAccum, undefined, undefined, ctx, undefined);\n }\n }\n\n if (this._eachValues !== undefined) {\n value = value\n ._then(this._eachComplete, undefined, undefined, this, undefined);\n }\n value._then(completed, completed, undefined, value, this);\n};\n\nPromise.prototype.reduce = function (fn, initialValue) {\n return reduce(this, fn, initialValue, null);\n};\n\nPromise.reduce = function (promises, fn, initialValue, _each) {\n return reduce(promises, fn, initialValue, _each);\n};\n\nfunction completed(valueOrReason, array) {\n if (this.isFulfilled()) {\n array._resolve(valueOrReason);\n } else {\n array._reject(valueOrReason);\n }\n}\n\nfunction reduce(promises, fn, initialValue, _each) {\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n var array = new ReductionPromiseArray(promises, fn, initialValue, _each);\n return array.promise();\n}\n\nfunction gotAccum(accum) {\n this.accum = accum;\n this.array._gotAccum(accum);\n var value = tryConvertToPromise(this.value, this.array._promise);\n if (value instanceof Promise) {\n this.array._currentCancellable = value;\n return value._then(gotValue, undefined, undefined, this, undefined);\n } else {\n return gotValue.call(this, value);\n }\n}\n\nfunction gotValue(value) {\n var array = this.array;\n var promise = array._promise;\n var fn = tryCatch(array._fn);\n promise._pushContext();\n var ret;\n if (array._eachValues !== undefined) {\n ret = fn.call(promise._boundValue(), value, this.index, this.length);\n } else {\n ret = fn.call(promise._boundValue(),\n this.accum, value, this.index, this.length);\n }\n if (ret instanceof Promise) {\n array._currentCancellable = ret;\n }\n var promiseCreated = promise._popContext();\n debug.checkForgottenReturns(\n ret,\n promiseCreated,\n array._eachValues !== undefined ? \"Promise.each\" : \"Promise.reduce\",\n promise\n );\n return ret;\n}\n};\n\n},{\"./util\":36}],29:[function(_dereq_,module,exports){\n\"use strict\";\nvar util = _dereq_(\"./util\");\nvar schedule;\nvar noAsyncScheduler = function() {\n throw new Error(\"No async scheduler available\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n};\nvar NativePromise = util.getNativePromise();\nif (util.isNode && typeof MutationObserver === \"undefined\") {\n var GlobalSetImmediate = global.setImmediate;\n var ProcessNextTick = process.nextTick;\n schedule = util.isRecentNode\n ? function(fn) { GlobalSetImmediate.call(global, fn); }\n : function(fn) { ProcessNextTick.call(process, fn); };\n} else if (typeof NativePromise === \"function\" &&\n typeof NativePromise.resolve === \"function\") {\n var nativePromise = NativePromise.resolve();\n schedule = function(fn) {\n nativePromise.then(fn);\n };\n} else if ((typeof MutationObserver !== \"undefined\") &&\n !(typeof window !== \"undefined\" &&\n window.navigator &&\n (window.navigator.standalone || window.cordova))) {\n schedule = (function() {\n var div = document.createElement(\"div\");\n var opts = {attributes: true};\n var toggleScheduled = false;\n var div2 = document.createElement(\"div\");\n var o2 = new MutationObserver(function() {\n div.classList.toggle(\"foo\");\n toggleScheduled = false;\n });\n o2.observe(div2, opts);\n\n var scheduleToggle = function() {\n if (toggleScheduled) return;\n toggleScheduled = true;\n div2.classList.toggle(\"foo\");\n };\n\n return function schedule(fn) {\n var o = new MutationObserver(function() {\n o.disconnect();\n fn();\n });\n o.observe(div, opts);\n scheduleToggle();\n };\n })();\n} else if (typeof setImmediate !== \"undefined\") {\n schedule = function (fn) {\n setImmediate(fn);\n };\n} else if (typeof setTimeout !== \"undefined\") {\n schedule = function (fn) {\n setTimeout(fn, 0);\n };\n} else {\n schedule = noAsyncScheduler;\n}\nmodule.exports = schedule;\n\n},{\"./util\":36}],30:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports =\n function(Promise, PromiseArray, debug) {\nvar PromiseInspection = Promise.PromiseInspection;\nvar util = _dereq_(\"./util\");\n\nfunction SettledPromiseArray(values) {\n this.constructor$(values);\n}\nutil.inherits(SettledPromiseArray, PromiseArray);\n\nSettledPromiseArray.prototype._promiseResolved = function (index, inspection) {\n this._values[index] = inspection;\n var totalResolved = ++this._totalResolved;\n if (totalResolved >= this._length) {\n this._resolve(this._values);\n return true;\n }\n return false;\n};\n\nSettledPromiseArray.prototype._promiseFulfilled = function (value, index) {\n var ret = new PromiseInspection();\n ret._bitField = 33554432;\n ret._settledValueField = value;\n return this._promiseResolved(index, ret);\n};\nSettledPromiseArray.prototype._promiseRejected = function (reason, index) {\n var ret = new PromiseInspection();\n ret._bitField = 16777216;\n ret._settledValueField = reason;\n return this._promiseResolved(index, ret);\n};\n\nPromise.settle = function (promises) {\n debug.deprecated(\".settle()\", \".reflect()\");\n return new SettledPromiseArray(promises).promise();\n};\n\nPromise.prototype.settle = function () {\n return Promise.settle(this);\n};\n};\n\n},{\"./util\":36}],31:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports =\nfunction(Promise, PromiseArray, apiRejection) {\nvar util = _dereq_(\"./util\");\nvar RangeError = _dereq_(\"./errors\").RangeError;\nvar AggregateError = _dereq_(\"./errors\").AggregateError;\nvar isArray = util.isArray;\nvar CANCELLATION = {};\n\n\nfunction SomePromiseArray(values) {\n this.constructor$(values);\n this._howMany = 0;\n this._unwrap = false;\n this._initialized = false;\n}\nutil.inherits(SomePromiseArray, PromiseArray);\n\nSomePromiseArray.prototype._init = function () {\n if (!this._initialized) {\n return;\n }\n if (this._howMany === 0) {\n this._resolve([]);\n return;\n }\n this._init$(undefined, -5);\n var isArrayResolved = isArray(this._values);\n if (!this._isResolved() &&\n isArrayResolved &&\n this._howMany > this._canPossiblyFulfill()) {\n this._reject(this._getRangeError(this.length()));\n }\n};\n\nSomePromiseArray.prototype.init = function () {\n this._initialized = true;\n this._init();\n};\n\nSomePromiseArray.prototype.setUnwrap = function () {\n this._unwrap = true;\n};\n\nSomePromiseArray.prototype.howMany = function () {\n return this._howMany;\n};\n\nSomePromiseArray.prototype.setHowMany = function (count) {\n this._howMany = count;\n};\n\nSomePromiseArray.prototype._promiseFulfilled = function (value) {\n this._addFulfilled(value);\n if (this._fulfilled() === this.howMany()) {\n this._values.length = this.howMany();\n if (this.howMany() === 1 && this._unwrap) {\n this._resolve(this._values[0]);\n } else {\n this._resolve(this._values);\n }\n return true;\n }\n return false;\n\n};\nSomePromiseArray.prototype._promiseRejected = function (reason) {\n this._addRejected(reason);\n return this._checkOutcome();\n};\n\nSomePromiseArray.prototype._promiseCancelled = function () {\n if (this._values instanceof Promise || this._values == null) {\n return this._cancel();\n }\n this._addRejected(CANCELLATION);\n return this._checkOutcome();\n};\n\nSomePromiseArray.prototype._checkOutcome = function() {\n if (this.howMany() > this._canPossiblyFulfill()) {\n var e = new AggregateError();\n for (var i = this.length(); i < this._values.length; ++i) {\n if (this._values[i] !== CANCELLATION) {\n e.push(this._values[i]);\n }\n }\n if (e.length > 0) {\n this._reject(e);\n } else {\n this._cancel();\n }\n return true;\n }\n return false;\n};\n\nSomePromiseArray.prototype._fulfilled = function () {\n return this._totalResolved;\n};\n\nSomePromiseArray.prototype._rejected = function () {\n return this._values.length - this.length();\n};\n\nSomePromiseArray.prototype._addRejected = function (reason) {\n this._values.push(reason);\n};\n\nSomePromiseArray.prototype._addFulfilled = function (value) {\n this._values[this._totalResolved++] = value;\n};\n\nSomePromiseArray.prototype._canPossiblyFulfill = function () {\n return this.length() - this._rejected();\n};\n\nSomePromiseArray.prototype._getRangeError = function (count) {\n var message = \"Input array must contain at least \" +\n this._howMany + \" items but contains only \" + count + \" items\";\n return new RangeError(message);\n};\n\nSomePromiseArray.prototype._resolveEmptyArray = function () {\n this._reject(this._getRangeError(0));\n};\n\nfunction some(promises, howMany) {\n if ((howMany | 0) !== howMany || howMany < 0) {\n return apiRejection(\"expecting a positive integer\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n var ret = new SomePromiseArray(promises);\n var promise = ret.promise();\n ret.setHowMany(howMany);\n ret.init();\n return promise;\n}\n\nPromise.some = function (promises, howMany) {\n return some(promises, howMany);\n};\n\nPromise.prototype.some = function (howMany) {\n return some(this, howMany);\n};\n\nPromise._SomePromiseArray = SomePromiseArray;\n};\n\n},{\"./errors\":12,\"./util\":36}],32:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise) {\nfunction PromiseInspection(promise) {\n if (promise !== undefined) {\n promise = promise._target();\n this._bitField = promise._bitField;\n this._settledValueField = promise._isFateSealed()\n ? promise._settledValue() : undefined;\n }\n else {\n this._bitField = 0;\n this._settledValueField = undefined;\n }\n}\n\nPromiseInspection.prototype._settledValue = function() {\n return this._settledValueField;\n};\n\nvar value = PromiseInspection.prototype.value = function () {\n if (!this.isFulfilled()) {\n throw new TypeError(\"cannot get fulfillment value of a non-fulfilled promise\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n return this._settledValue();\n};\n\nvar reason = PromiseInspection.prototype.error =\nPromiseInspection.prototype.reason = function () {\n if (!this.isRejected()) {\n throw new TypeError(\"cannot get rejection reason of a non-rejected promise\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n return this._settledValue();\n};\n\nvar isFulfilled = PromiseInspection.prototype.isFulfilled = function() {\n return (this._bitField & 33554432) !== 0;\n};\n\nvar isRejected = PromiseInspection.prototype.isRejected = function () {\n return (this._bitField & 16777216) !== 0;\n};\n\nvar isPending = PromiseInspection.prototype.isPending = function () {\n return (this._bitField & 50397184) === 0;\n};\n\nvar isResolved = PromiseInspection.prototype.isResolved = function () {\n return (this._bitField & 50331648) !== 0;\n};\n\nPromiseInspection.prototype.isCancelled = function() {\n return (this._bitField & 8454144) !== 0;\n};\n\nPromise.prototype.__isCancelled = function() {\n return (this._bitField & 65536) === 65536;\n};\n\nPromise.prototype._isCancelled = function() {\n return this._target().__isCancelled();\n};\n\nPromise.prototype.isCancelled = function() {\n return (this._target()._bitField & 8454144) !== 0;\n};\n\nPromise.prototype.isPending = function() {\n return isPending.call(this._target());\n};\n\nPromise.prototype.isRejected = function() {\n return isRejected.call(this._target());\n};\n\nPromise.prototype.isFulfilled = function() {\n return isFulfilled.call(this._target());\n};\n\nPromise.prototype.isResolved = function() {\n return isResolved.call(this._target());\n};\n\nPromise.prototype.value = function() {\n return value.call(this._target());\n};\n\nPromise.prototype.reason = function() {\n var target = this._target();\n target._unsetRejectionIsUnhandled();\n return reason.call(target);\n};\n\nPromise.prototype._value = function() {\n return this._settledValue();\n};\n\nPromise.prototype._reason = function() {\n this._unsetRejectionIsUnhandled();\n return this._settledValue();\n};\n\nPromise.PromiseInspection = PromiseInspection;\n};\n\n},{}],33:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, INTERNAL) {\nvar util = _dereq_(\"./util\");\nvar errorObj = util.errorObj;\nvar isObject = util.isObject;\n\nfunction tryConvertToPromise(obj, context) {\n if (isObject(obj)) {\n if (obj instanceof Promise) return obj;\n var then = getThen(obj);\n if (then === errorObj) {\n if (context) context._pushContext();\n var ret = Promise.reject(then.e);\n if (context) context._popContext();\n return ret;\n } else if (typeof then === \"function\") {\n if (isAnyBluebirdPromise(obj)) {\n var ret = new Promise(INTERNAL);\n obj._then(\n ret._fulfill,\n ret._reject,\n undefined,\n ret,\n null\n );\n return ret;\n }\n return doThenable(obj, then, context);\n }\n }\n return obj;\n}\n\nfunction doGetThen(obj) {\n return obj.then;\n}\n\nfunction getThen(obj) {\n try {\n return doGetThen(obj);\n } catch (e) {\n errorObj.e = e;\n return errorObj;\n }\n}\n\nvar hasProp = {}.hasOwnProperty;\nfunction isAnyBluebirdPromise(obj) {\n try {\n return hasProp.call(obj, \"_promise0\");\n } catch (e) {\n return false;\n }\n}\n\nfunction doThenable(x, then, context) {\n var promise = new Promise(INTERNAL);\n var ret = promise;\n if (context) context._pushContext();\n promise._captureStackTrace();\n if (context) context._popContext();\n var synchronous = true;\n var result = util.tryCatch(then).call(x, resolve, reject);\n synchronous = false;\n\n if (promise && result === errorObj) {\n promise._rejectCallback(result.e, true, true);\n promise = null;\n }\n\n function resolve(value) {\n if (!promise) return;\n promise._resolveCallback(value);\n promise = null;\n }\n\n function reject(reason) {\n if (!promise) return;\n promise._rejectCallback(reason, synchronous, true);\n promise = null;\n }\n return ret;\n}\n\nreturn tryConvertToPromise;\n};\n\n},{\"./util\":36}],34:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, INTERNAL, debug) {\nvar util = _dereq_(\"./util\");\nvar TimeoutError = Promise.TimeoutError;\n\nfunction HandleWrapper(handle) {\n this.handle = handle;\n}\n\nHandleWrapper.prototype._resultCancelled = function() {\n clearTimeout(this.handle);\n};\n\nvar afterValue = function(value) { return delay(+this).thenReturn(value); };\nvar delay = Promise.delay = function (ms, value) {\n var ret;\n var handle;\n if (value !== undefined) {\n ret = Promise.resolve(value)\n ._then(afterValue, null, null, ms, undefined);\n if (debug.cancellation() && value instanceof Promise) {\n ret._setOnCancel(value);\n }\n } else {\n ret = new Promise(INTERNAL);\n handle = setTimeout(function() { ret._fulfill(); }, +ms);\n if (debug.cancellation()) {\n ret._setOnCancel(new HandleWrapper(handle));\n }\n ret._captureStackTrace();\n }\n ret._setAsyncGuaranteed();\n return ret;\n};\n\nPromise.prototype.delay = function (ms) {\n return delay(ms, this);\n};\n\nvar afterTimeout = function (promise, message, parent) {\n var err;\n if (typeof message !== \"string\") {\n if (message instanceof Error) {\n err = message;\n } else {\n err = new TimeoutError(\"operation timed out\");\n }\n } else {\n err = new TimeoutError(message);\n }\n util.markAsOriginatingFromRejection(err);\n promise._attachExtraTrace(err);\n promise._reject(err);\n\n if (parent != null) {\n parent.cancel();\n }\n};\n\nfunction successClear(value) {\n clearTimeout(this.handle);\n return value;\n}\n\nfunction failureClear(reason) {\n clearTimeout(this.handle);\n throw reason;\n}\n\nPromise.prototype.timeout = function (ms, message) {\n ms = +ms;\n var ret, parent;\n\n var handleWrapper = new HandleWrapper(setTimeout(function timeoutTimeout() {\n if (ret.isPending()) {\n afterTimeout(ret, message, parent);\n }\n }, ms));\n\n if (debug.cancellation()) {\n parent = this.then();\n ret = parent._then(successClear, failureClear,\n undefined, handleWrapper, undefined);\n ret._setOnCancel(handleWrapper);\n } else {\n ret = this._then(successClear, failureClear,\n undefined, handleWrapper, undefined);\n }\n\n return ret;\n};\n\n};\n\n},{\"./util\":36}],35:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function (Promise, apiRejection, tryConvertToPromise,\n createContext, INTERNAL, debug) {\n var util = _dereq_(\"./util\");\n var TypeError = _dereq_(\"./errors\").TypeError;\n var inherits = _dereq_(\"./util\").inherits;\n var errorObj = util.errorObj;\n var tryCatch = util.tryCatch;\n var NULL = {};\n\n function thrower(e) {\n setTimeout(function(){throw e;}, 0);\n }\n\n function castPreservingDisposable(thenable) {\n var maybePromise = tryConvertToPromise(thenable);\n if (maybePromise !== thenable &&\n typeof thenable._isDisposable === \"function\" &&\n typeof thenable._getDisposer === \"function\" &&\n thenable._isDisposable()) {\n maybePromise._setDisposable(thenable._getDisposer());\n }\n return maybePromise;\n }\n function dispose(resources, inspection) {\n var i = 0;\n var len = resources.length;\n var ret = new Promise(INTERNAL);\n function iterator() {\n if (i >= len) return ret._fulfill();\n var maybePromise = castPreservingDisposable(resources[i++]);\n if (maybePromise instanceof Promise &&\n maybePromise._isDisposable()) {\n try {\n maybePromise = tryConvertToPromise(\n maybePromise._getDisposer().tryDispose(inspection),\n resources.promise);\n } catch (e) {\n return thrower(e);\n }\n if (maybePromise instanceof Promise) {\n return maybePromise._then(iterator, thrower,\n null, null, null);\n }\n }\n iterator();\n }\n iterator();\n return ret;\n }\n\n function Disposer(data, promise, context) {\n this._data = data;\n this._promise = promise;\n this._context = context;\n }\n\n Disposer.prototype.data = function () {\n return this._data;\n };\n\n Disposer.prototype.promise = function () {\n return this._promise;\n };\n\n Disposer.prototype.resource = function () {\n if (this.promise().isFulfilled()) {\n return this.promise().value();\n }\n return NULL;\n };\n\n Disposer.prototype.tryDispose = function(inspection) {\n var resource = this.resource();\n var context = this._context;\n if (context !== undefined) context._pushContext();\n var ret = resource !== NULL\n ? this.doDispose(resource, inspection) : null;\n if (context !== undefined) context._popContext();\n this._promise._unsetDisposable();\n this._data = null;\n return ret;\n };\n\n Disposer.isDisposer = function (d) {\n return (d != null &&\n typeof d.resource === \"function\" &&\n typeof d.tryDispose === \"function\");\n };\n\n function FunctionDisposer(fn, promise, context) {\n this.constructor$(fn, promise, context);\n }\n inherits(FunctionDisposer, Disposer);\n\n FunctionDisposer.prototype.doDispose = function (resource, inspection) {\n var fn = this.data();\n return fn.call(resource, resource, inspection);\n };\n\n function maybeUnwrapDisposer(value) {\n if (Disposer.isDisposer(value)) {\n this.resources[this.index]._setDisposable(value);\n return value.promise();\n }\n return value;\n }\n\n function ResourceList(length) {\n this.length = length;\n this.promise = null;\n this[length-1] = null;\n }\n\n ResourceList.prototype._resultCancelled = function() {\n var len = this.length;\n for (var i = 0; i < len; ++i) {\n var item = this[i];\n if (item instanceof Promise) {\n item.cancel();\n }\n }\n };\n\n Promise.using = function () {\n var len = arguments.length;\n if (len < 2) return apiRejection(\n \"you must pass at least 2 arguments to Promise.using\");\n var fn = arguments[len - 1];\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n var input;\n var spreadArgs = true;\n if (len === 2 && Array.isArray(arguments[0])) {\n input = arguments[0];\n len = input.length;\n spreadArgs = false;\n } else {\n input = arguments;\n len--;\n }\n var resources = new ResourceList(len);\n for (var i = 0; i < len; ++i) {\n var resource = input[i];\n if (Disposer.isDisposer(resource)) {\n var disposer = resource;\n resource = resource.promise();\n resource._setDisposable(disposer);\n } else {\n var maybePromise = tryConvertToPromise(resource);\n if (maybePromise instanceof Promise) {\n resource =\n maybePromise._then(maybeUnwrapDisposer, null, null, {\n resources: resources,\n index: i\n }, undefined);\n }\n }\n resources[i] = resource;\n }\n\n var reflectedResources = new Array(resources.length);\n for (var i = 0; i < reflectedResources.length; ++i) {\n reflectedResources[i] = Promise.resolve(resources[i]).reflect();\n }\n\n var resultPromise = Promise.all(reflectedResources)\n .then(function(inspections) {\n for (var i = 0; i < inspections.length; ++i) {\n var inspection = inspections[i];\n if (inspection.isRejected()) {\n errorObj.e = inspection.error();\n return errorObj;\n } else if (!inspection.isFulfilled()) {\n resultPromise.cancel();\n return;\n }\n inspections[i] = inspection.value();\n }\n promise._pushContext();\n\n fn = tryCatch(fn);\n var ret = spreadArgs\n ? fn.apply(undefined, inspections) : fn(inspections);\n var promiseCreated = promise._popContext();\n debug.checkForgottenReturns(\n ret, promiseCreated, \"Promise.using\", promise);\n return ret;\n });\n\n var promise = resultPromise.lastly(function() {\n var inspection = new Promise.PromiseInspection(resultPromise);\n return dispose(resources, inspection);\n });\n resources.promise = promise;\n promise._setOnCancel(resources);\n return promise;\n };\n\n Promise.prototype._setDisposable = function (disposer) {\n this._bitField = this._bitField | 131072;\n this._disposer = disposer;\n };\n\n Promise.prototype._isDisposable = function () {\n return (this._bitField & 131072) > 0;\n };\n\n Promise.prototype._getDisposer = function () {\n return this._disposer;\n };\n\n Promise.prototype._unsetDisposable = function () {\n this._bitField = this._bitField & (~131072);\n this._disposer = undefined;\n };\n\n Promise.prototype.disposer = function (fn) {\n if (typeof fn === \"function\") {\n return new FunctionDisposer(fn, this, createContext());\n }\n throw new TypeError();\n };\n\n};\n\n},{\"./errors\":12,\"./util\":36}],36:[function(_dereq_,module,exports){\n\"use strict\";\nvar es5 = _dereq_(\"./es5\");\nvar canEvaluate = typeof navigator == \"undefined\";\n\nvar errorObj = {e: {}};\nvar tryCatchTarget;\nvar globalObject = typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window :\n typeof global !== \"undefined\" ? global :\n this !== undefined ? this : null;\n\nfunction tryCatcher() {\n try {\n var target = tryCatchTarget;\n tryCatchTarget = null;\n return target.apply(this, arguments);\n } catch (e) {\n errorObj.e = e;\n return errorObj;\n }\n}\nfunction tryCatch(fn) {\n tryCatchTarget = fn;\n return tryCatcher;\n}\n\nvar inherits = function(Child, Parent) {\n var hasProp = {}.hasOwnProperty;\n\n function T() {\n this.constructor = Child;\n this.constructor$ = Parent;\n for (var propertyName in Parent.prototype) {\n if (hasProp.call(Parent.prototype, propertyName) &&\n propertyName.charAt(propertyName.length-1) !== \"$\"\n ) {\n this[propertyName + \"$\"] = Parent.prototype[propertyName];\n }\n }\n }\n T.prototype = Parent.prototype;\n Child.prototype = new T();\n return Child.prototype;\n};\n\n\nfunction isPrimitive(val) {\n return val == null || val === true || val === false ||\n typeof val === \"string\" || typeof val === \"number\";\n\n}\n\nfunction isObject(value) {\n return typeof value === \"function\" ||\n typeof value === \"object\" && value !== null;\n}\n\nfunction maybeWrapAsError(maybeError) {\n if (!isPrimitive(maybeError)) return maybeError;\n\n return new Error(safeToString(maybeError));\n}\n\nfunction withAppended(target, appendee) {\n var len = target.length;\n var ret = new Array(len + 1);\n var i;\n for (i = 0; i < len; ++i) {\n ret[i] = target[i];\n }\n ret[i] = appendee;\n return ret;\n}\n\nfunction getDataPropertyOrDefault(obj, key, defaultValue) {\n if (es5.isES5) {\n var desc = Object.getOwnPropertyDescriptor(obj, key);\n\n if (desc != null) {\n return desc.get == null && desc.set == null\n ? desc.value\n : defaultValue;\n }\n } else {\n return {}.hasOwnProperty.call(obj, key) ? obj[key] : undefined;\n }\n}\n\nfunction notEnumerableProp(obj, name, value) {\n if (isPrimitive(obj)) return obj;\n var descriptor = {\n value: value,\n configurable: true,\n enumerable: false,\n writable: true\n };\n es5.defineProperty(obj, name, descriptor);\n return obj;\n}\n\nfunction thrower(r) {\n throw r;\n}\n\nvar inheritedDataKeys = (function() {\n var excludedPrototypes = [\n Array.prototype,\n Object.prototype,\n Function.prototype\n ];\n\n var isExcludedProto = function(val) {\n for (var i = 0; i < excludedPrototypes.length; ++i) {\n if (excludedPrototypes[i] === val) {\n return true;\n }\n }\n return false;\n };\n\n if (es5.isES5) {\n var getKeys = Object.getOwnPropertyNames;\n return function(obj) {\n var ret = [];\n var visitedKeys = Object.create(null);\n while (obj != null && !isExcludedProto(obj)) {\n var keys;\n try {\n keys = getKeys(obj);\n } catch (e) {\n return ret;\n }\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (visitedKeys[key]) continue;\n visitedKeys[key] = true;\n var desc = Object.getOwnPropertyDescriptor(obj, key);\n if (desc != null && desc.get == null && desc.set == null) {\n ret.push(key);\n }\n }\n obj = es5.getPrototypeOf(obj);\n }\n return ret;\n };\n } else {\n var hasProp = {}.hasOwnProperty;\n return function(obj) {\n if (isExcludedProto(obj)) return [];\n var ret = [];\n\n /*jshint forin:false */\n enumeration: for (var key in obj) {\n if (hasProp.call(obj, key)) {\n ret.push(key);\n } else {\n for (var i = 0; i < excludedPrototypes.length; ++i) {\n if (hasProp.call(excludedPrototypes[i], key)) {\n continue enumeration;\n }\n }\n ret.push(key);\n }\n }\n return ret;\n };\n }\n\n})();\n\nvar thisAssignmentPattern = /this\\s*\\.\\s*\\S+\\s*=/;\nfunction isClass(fn) {\n try {\n if (typeof fn === \"function\") {\n var keys = es5.names(fn.prototype);\n\n var hasMethods = es5.isES5 && keys.length > 1;\n var hasMethodsOtherThanConstructor = keys.length > 0 &&\n !(keys.length === 1 && keys[0] === \"constructor\");\n var hasThisAssignmentAndStaticMethods =\n thisAssignmentPattern.test(fn + \"\") && es5.names(fn).length > 0;\n\n if (hasMethods || hasMethodsOtherThanConstructor ||\n hasThisAssignmentAndStaticMethods) {\n return true;\n }\n }\n return false;\n } catch (e) {\n return false;\n }\n}\n\nfunction toFastProperties(obj) {\n /*jshint -W027,-W055,-W031*/\n function FakeConstructor() {}\n FakeConstructor.prototype = obj;\n var l = 8;\n while (l--) new FakeConstructor();\n return obj;\n eval(obj);\n}\n\nvar rident = /^[a-z$_][a-z$_0-9]*$/i;\nfunction isIdentifier(str) {\n return rident.test(str);\n}\n\nfunction filledRange(count, prefix, suffix) {\n var ret = new Array(count);\n for(var i = 0; i < count; ++i) {\n ret[i] = prefix + i + suffix;\n }\n return ret;\n}\n\nfunction safeToString(obj) {\n try {\n return obj + \"\";\n } catch (e) {\n return \"[no string representation]\";\n }\n}\n\nfunction isError(obj) {\n return obj instanceof Error ||\n (obj !== null &&\n typeof obj === \"object\" &&\n typeof obj.message === \"string\" &&\n typeof obj.name === \"string\");\n}\n\nfunction markAsOriginatingFromRejection(e) {\n try {\n notEnumerableProp(e, \"isOperational\", true);\n }\n catch(ignore) {}\n}\n\nfunction originatesFromRejection(e) {\n if (e == null) return false;\n return ((e instanceof Error[\"__BluebirdErrorTypes__\"].OperationalError) ||\n e[\"isOperational\"] === true);\n}\n\nfunction canAttachTrace(obj) {\n return isError(obj) && es5.propertyIsWritable(obj, \"stack\");\n}\n\nvar ensureErrorObject = (function() {\n if (!(\"stack\" in new Error())) {\n return function(value) {\n if (canAttachTrace(value)) return value;\n try {throw new Error(safeToString(value));}\n catch(err) {return err;}\n };\n } else {\n return function(value) {\n if (canAttachTrace(value)) return value;\n return new Error(safeToString(value));\n };\n }\n})();\n\nfunction classString(obj) {\n return {}.toString.call(obj);\n}\n\nfunction copyDescriptors(from, to, filter) {\n var keys = es5.names(from);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (filter(key)) {\n try {\n es5.defineProperty(to, key, es5.getDescriptor(from, key));\n } catch (ignore) {}\n }\n }\n}\n\nvar asArray = function(v) {\n if (es5.isArray(v)) {\n return v;\n }\n return null;\n};\n\nif (typeof Symbol !== \"undefined\" && Symbol.iterator) {\n var ArrayFrom = typeof Array.from === \"function\" ? function(v) {\n return Array.from(v);\n } : function(v) {\n var ret = [];\n var it = v[Symbol.iterator]();\n var itResult;\n while (!((itResult = it.next()).done)) {\n ret.push(itResult.value);\n }\n return ret;\n };\n\n asArray = function(v) {\n if (es5.isArray(v)) {\n return v;\n } else if (v != null && typeof v[Symbol.iterator] === \"function\") {\n return ArrayFrom(v);\n }\n return null;\n };\n}\n\nvar isNode = typeof process !== \"undefined\" &&\n classString(process).toLowerCase() === \"[object process]\";\n\nvar hasEnvVariables = typeof process !== \"undefined\" &&\n typeof process.env !== \"undefined\";\n\nfunction env(key) {\n return hasEnvVariables ? process.env[key] : undefined;\n}\n\nfunction getNativePromise() {\n if (typeof Promise === \"function\") {\n try {\n var promise = new Promise(function(){});\n if ({}.toString.call(promise) === \"[object Promise]\") {\n return Promise;\n }\n } catch (e) {}\n }\n}\n\nfunction domainBind(self, cb) {\n return self.bind(cb);\n}\n\nvar ret = {\n isClass: isClass,\n isIdentifier: isIdentifier,\n inheritedDataKeys: inheritedDataKeys,\n getDataPropertyOrDefault: getDataPropertyOrDefault,\n thrower: thrower,\n isArray: es5.isArray,\n asArray: asArray,\n notEnumerableProp: notEnumerableProp,\n isPrimitive: isPrimitive,\n isObject: isObject,\n isError: isError,\n canEvaluate: canEvaluate,\n errorObj: errorObj,\n tryCatch: tryCatch,\n inherits: inherits,\n withAppended: withAppended,\n maybeWrapAsError: maybeWrapAsError,\n toFastProperties: toFastProperties,\n filledRange: filledRange,\n toString: safeToString,\n canAttachTrace: canAttachTrace,\n ensureErrorObject: ensureErrorObject,\n originatesFromRejection: originatesFromRejection,\n markAsOriginatingFromRejection: markAsOriginatingFromRejection,\n classString: classString,\n copyDescriptors: copyDescriptors,\n hasDevTools: typeof chrome !== \"undefined\" && chrome &&\n typeof chrome.loadTimes === \"function\",\n isNode: isNode,\n hasEnvVariables: hasEnvVariables,\n env: env,\n global: globalObject,\n getNativePromise: getNativePromise,\n domainBind: domainBind\n};\nret.isRecentNode = ret.isNode && (function() {\n var version = process.versions.node.split(\".\").map(Number);\n return (version[0] === 0 && version[1] > 10) || (version[0] > 0);\n})();\n\nif (ret.isNode) ret.toFastProperties(process);\n\ntry {throw new Error(); } catch (e) {ret.lastLineError = e;}\nmodule.exports = ret;\n\n},{\"./es5\":13}]},{},[4])(4)\n}); ;if (typeof window !== 'undefined' && window !== null) { window.P = window.Promise; } else if (typeof self !== 'undefined' && self !== null) { self.P = self.Promise; }","/*\n* SystemJS v0.21.5 Production\n*/\n(function () {\n 'use strict';\n\n /*\r\n * Environment\r\n */\r\n var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\r\n var isNode = typeof process !== 'undefined' && process.versions && process.versions.node;\r\n var isWindows = typeof process !== 'undefined' && typeof process.platform === 'string' && process.platform.match(/^win/);\r\n\r\n var envGlobal = typeof self !== 'undefined' ? self : global;\r\n\r\n /*\r\n * Simple Symbol() shim\r\n */\r\n var hasSymbol = typeof Symbol !== 'undefined';\r\n function createSymbol (name) {\r\n return hasSymbol ? Symbol() : '@@' + name;\r\n }\r\n\r\n var toStringTag = hasSymbol && Symbol.toStringTag;\r\n\r\n /*\r\n * Environment baseURI\r\n */\r\n var baseURI;\r\n\r\n // environent baseURI detection\r\n if (typeof document != 'undefined' && document.getElementsByTagName) {\r\n baseURI = document.baseURI;\r\n\r\n if (!baseURI) {\r\n var bases = document.getElementsByTagName('base');\r\n baseURI = bases[0] && bases[0].href || window.location.href;\r\n }\r\n }\r\n else if (typeof location != 'undefined') {\r\n baseURI = location.href;\r\n }\r\n\r\n // sanitize out the hash and querystring\r\n if (baseURI) {\r\n baseURI = baseURI.split('#')[0].split('?')[0];\r\n var slashIndex = baseURI.lastIndexOf('/');\r\n if (slashIndex !== -1)\r\n baseURI = baseURI.substr(0, slashIndex + 1);\r\n }\r\n else if (typeof process !== 'undefined' && process.cwd) {\r\n baseURI = 'file://' + (isWindows ? '/' : '') + process.cwd();\r\n if (isWindows)\r\n baseURI = baseURI.replace(/\\\\/g, '/');\r\n }\r\n else {\r\n throw new TypeError('No environment baseURI');\r\n }\r\n\r\n // ensure baseURI has trailing \"/\"\r\n if (baseURI[baseURI.length - 1] !== '/')\r\n baseURI += '/';\r\n\r\n /*\r\n * LoaderError with chaining for loader stacks\r\n */\r\n var errArgs = new Error(0, '_').fileName == '_';\r\n function LoaderError__Check_error_message_for_loader_stack (childErr, newMessage) {\r\n // Convert file:/// URLs to paths in Node\r\n if (!isBrowser)\r\n newMessage = newMessage.replace(isWindows ? /file:\\/\\/\\//g : /file:\\/\\//g, '');\r\n\r\n var message = (childErr.message || childErr) + '\\n ' + newMessage;\r\n\r\n var err;\r\n if (errArgs && childErr.fileName)\r\n err = new Error(message, childErr.fileName, childErr.lineNumber);\r\n else\r\n err = new Error(message);\r\n\r\n\r\n var stack = childErr.originalErr ? childErr.originalErr.stack : childErr.stack;\r\n\r\n if (isNode)\r\n // node doesn't show the message otherwise\r\n err.stack = message + '\\n ' + stack;\r\n else\r\n err.stack = stack;\r\n\r\n err.originalErr = childErr.originalErr || childErr;\r\n\r\n return err;\r\n }\n\n /*\r\n * Optimized URL normalization assuming a syntax-valid URL parent\r\n */\r\n function throwResolveError (relUrl, parentUrl) {\r\n throw new RangeError('Unable to resolve \"' + relUrl + '\" to ' + parentUrl);\r\n }\r\n var backslashRegEx = /\\\\/g;\r\n function resolveIfNotPlain (relUrl, parentUrl) {\r\n if (relUrl[0] === ' ' || relUrl[relUrl.length - 1] === ' ')\r\n relUrl = relUrl.trim();\r\n var parentProtocol = parentUrl && parentUrl.substr(0, parentUrl.indexOf(':') + 1);\r\n\r\n var firstChar = relUrl[0];\r\n var secondChar = relUrl[1];\r\n\r\n // protocol-relative\r\n if (firstChar === '/' && secondChar === '/') {\r\n if (!parentProtocol)\r\n throwResolveError(relUrl, parentUrl);\r\n if (relUrl.indexOf('\\\\') !== -1)\r\n relUrl = relUrl.replace(backslashRegEx, '/');\r\n return parentProtocol + relUrl;\r\n }\r\n // relative-url\r\n else if (firstChar === '.' && (secondChar === '/' || secondChar === '.' && (relUrl[2] === '/' || relUrl.length === 2 && (relUrl += '/')) ||\r\n relUrl.length === 1 && (relUrl += '/')) ||\r\n firstChar === '/') {\r\n if (relUrl.indexOf('\\\\') !== -1)\r\n relUrl = relUrl.replace(backslashRegEx, '/');\r\n var parentIsPlain = !parentProtocol || parentUrl[parentProtocol.length] !== '/';\r\n\r\n // read pathname from parent if a URL\r\n // pathname taken to be part after leading \"/\"\r\n var pathname;\r\n if (parentIsPlain) {\r\n // resolving to a plain parent -> skip standard URL prefix, and treat entire parent as pathname\r\n if (parentUrl === undefined)\r\n throwResolveError(relUrl, parentUrl);\r\n pathname = parentUrl;\r\n }\r\n else if (parentUrl[parentProtocol.length + 1] === '/') {\r\n // resolving to a :// so we need to read out the auth and host\r\n if (parentProtocol !== 'file:') {\r\n pathname = parentUrl.substr(parentProtocol.length + 2);\r\n pathname = pathname.substr(pathname.indexOf('/') + 1);\r\n }\r\n else {\r\n pathname = parentUrl.substr(8);\r\n }\r\n }\r\n else {\r\n // resolving to :/ so pathname is the /... part\r\n pathname = parentUrl.substr(parentProtocol.length + 1);\r\n }\r\n\r\n if (firstChar === '/') {\r\n if (parentIsPlain)\r\n throwResolveError(relUrl, parentUrl);\r\n else\r\n return parentUrl.substr(0, parentUrl.length - pathname.length - 1) + relUrl;\r\n }\r\n\r\n // join together and split for removal of .. and . segments\r\n // looping the string instead of anything fancy for perf reasons\r\n // '../../../../../z' resolved to 'x/y' is just 'z' regardless of parentIsPlain\r\n var segmented = pathname.substr(0, pathname.lastIndexOf('/') + 1) + relUrl;\r\n\r\n var output = [];\r\n var segmentIndex = -1;\r\n\r\n for (var i = 0; i < segmented.length; i++) {\r\n // busy reading a segment - only terminate on '/'\r\n if (segmentIndex !== -1) {\r\n if (segmented[i] === '/') {\r\n output.push(segmented.substring(segmentIndex, i + 1));\r\n segmentIndex = -1;\r\n }\r\n continue;\r\n }\r\n\r\n // new segment - check if it is relative\r\n if (segmented[i] === '.') {\r\n // ../ segment\r\n if (segmented[i + 1] === '.' && (segmented[i + 2] === '/' || i + 2 === segmented.length)) {\r\n output.pop();\r\n i += 2;\r\n }\r\n // ./ segment\r\n else if (segmented[i + 1] === '/' || i + 1 === segmented.length) {\r\n i += 1;\r\n }\r\n else {\r\n // the start of a new segment as below\r\n segmentIndex = i;\r\n continue;\r\n }\r\n\r\n // this is the plain URI backtracking error (../, package:x -> error)\r\n if (parentIsPlain && output.length === 0)\r\n throwResolveError(relUrl, parentUrl);\r\n\r\n continue;\r\n }\r\n\r\n // it is the start of a new segment\r\n segmentIndex = i;\r\n }\r\n // finish reading out the last segment\r\n if (segmentIndex !== -1)\r\n output.push(segmented.substr(segmentIndex));\r\n\r\n return parentUrl.substr(0, parentUrl.length - pathname.length) + output.join('');\r\n }\r\n\r\n // sanitizes and verifies (by returning undefined if not a valid URL-like form)\r\n // Windows filepath compatibility is an added convenience here\r\n var protocolIndex = relUrl.indexOf(':');\r\n if (protocolIndex !== -1) {\r\n if (isNode) {\r\n // C:\\x becomes file:///c:/x (we don't support C|\\x)\r\n if (relUrl[1] === ':' && relUrl[2] === '\\\\' && relUrl[0].match(/[a-z]/i))\r\n return 'file:///' + relUrl.replace(backslashRegEx, '/');\r\n }\r\n return relUrl;\r\n }\r\n }\n\n var resolvedPromise = Promise.resolve();\r\n\r\n /*\r\n * Simple Array values shim\r\n */\r\n function arrayValues (arr) {\r\n if (arr.values)\r\n return arr.values();\r\n\r\n if (typeof Symbol === 'undefined' || !Symbol.iterator)\r\n throw new Error('Symbol.iterator not supported in this browser');\r\n\r\n var iterable = {};\r\n iterable[Symbol.iterator] = function () {\r\n var keys = Object.keys(arr);\r\n var keyIndex = 0;\r\n return {\r\n next: function () {\r\n if (keyIndex < keys.length)\r\n return {\r\n value: arr[keys[keyIndex++]],\r\n done: false\r\n };\r\n else\r\n return {\r\n value: undefined,\r\n done: true\r\n };\r\n }\r\n };\r\n };\r\n return iterable;\r\n }\r\n\r\n /*\r\n * 3. Reflect.Loader\r\n *\r\n * We skip the entire native internal pipeline, just providing the bare API\r\n */\r\n // 3.1.1\r\n function Loader () {\r\n this.registry = new Registry();\r\n }\r\n // 3.3.1\r\n Loader.prototype.constructor = Loader;\r\n\r\n function ensureInstantiated (module) {\r\n if (module === undefined)\r\n return;\r\n if (module instanceof ModuleNamespace === false && module[toStringTag] !== 'module')\r\n throw new TypeError('Module instantiation did not return a valid namespace object.');\r\n return module;\r\n }\r\n\r\n // 3.3.2\r\n Loader.prototype.import = function (key, parent) {\r\n if (typeof key !== 'string')\r\n throw new TypeError('Loader import method must be passed a module key string');\r\n // custom resolveInstantiate combined hook for better perf\r\n var loader = this;\r\n return resolvedPromise\r\n .then(function () {\r\n return loader[RESOLVE_INSTANTIATE](key, parent);\r\n })\r\n .then(ensureInstantiated)\r\n //.then(Module.evaluate)\r\n .catch(function (err) {\r\n throw LoaderError__Check_error_message_for_loader_stack(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));\r\n });\r\n };\r\n // 3.3.3\r\n var RESOLVE = Loader.resolve = createSymbol('resolve');\r\n\r\n /*\r\n * Combined resolve / instantiate hook\r\n *\r\n * Not in current reduced spec, but necessary to separate RESOLVE from RESOLVE + INSTANTIATE as described\r\n * in the spec notes of this repo to ensure that loader.resolve doesn't instantiate when not wanted.\r\n *\r\n * We implement RESOLVE_INSTANTIATE as a single hook instead of a separate INSTANTIATE in order to avoid\r\n * the need for double registry lookups as a performance optimization.\r\n */\r\n var RESOLVE_INSTANTIATE = Loader.resolveInstantiate = createSymbol('resolveInstantiate');\r\n\r\n // default resolveInstantiate is just to call resolve and then get from the registry\r\n // this provides compatibility for the resolveInstantiate optimization\r\n Loader.prototype[RESOLVE_INSTANTIATE] = function (key, parent) {\r\n var loader = this;\r\n return loader.resolve(key, parent)\r\n .then(function (resolved) {\r\n return loader.registry.get(resolved);\r\n });\r\n };\r\n\r\n function ensureResolution (resolvedKey) {\r\n if (resolvedKey === undefined)\r\n throw new RangeError('No resolution found.');\r\n return resolvedKey;\r\n }\r\n\r\n Loader.prototype.resolve = function (key, parent) {\r\n var loader = this;\r\n return resolvedPromise\r\n .then(function() {\r\n return loader[RESOLVE](key, parent);\r\n })\r\n .then(ensureResolution)\r\n .catch(function (err) {\r\n throw LoaderError__Check_error_message_for_loader_stack(err, 'Resolving ' + key + (parent ? ' to ' + parent : ''));\r\n });\r\n };\r\n\r\n // 3.3.4 (import without evaluate)\r\n // this is not documented because the use of deferred evaluation as in Module.evaluate is not\r\n // documented, as it is not considered a stable feature to be encouraged\r\n // Loader.prototype.load may well be deprecated if this stays disabled\r\n /* Loader.prototype.load = function (key, parent) {\r\n return Promise.resolve(this[RESOLVE_INSTANTIATE](key, parent || this.key))\r\n .catch(function (err) {\r\n throw addToError(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));\r\n });\r\n }; */\r\n\r\n /*\r\n * 4. Registry\r\n *\r\n * Instead of structuring through a Map, just use a dictionary object\r\n * We throw for construction attempts so this doesn't affect the public API\r\n *\r\n * Registry has been adjusted to use Namespace objects over ModuleStatus objects\r\n * as part of simplifying loader API implementation\r\n */\r\n var iteratorSupport = typeof Symbol !== 'undefined' && Symbol.iterator;\r\n var REGISTRY = createSymbol('registry');\r\n function Registry() {\r\n this[REGISTRY] = {};\r\n }\r\n // 4.4.1\r\n if (iteratorSupport) {\r\n // 4.4.2\r\n Registry.prototype[Symbol.iterator] = function () {\r\n return this.entries()[Symbol.iterator]();\r\n };\r\n\r\n // 4.4.3\r\n Registry.prototype.entries = function () {\r\n var registry = this[REGISTRY];\r\n return arrayValues(Object.keys(registry).map(function (key) {\r\n return [key, registry[key]];\r\n }));\r\n };\r\n }\r\n\r\n // 4.4.4\r\n Registry.prototype.keys = function () {\r\n return arrayValues(Object.keys(this[REGISTRY]));\r\n };\r\n // 4.4.5\r\n Registry.prototype.values = function () {\r\n var registry = this[REGISTRY];\r\n return arrayValues(Object.keys(registry).map(function (key) {\r\n return registry[key];\r\n }));\r\n };\r\n // 4.4.6\r\n Registry.prototype.get = function (key) {\r\n return this[REGISTRY][key];\r\n };\r\n // 4.4.7\r\n Registry.prototype.set = function (key, namespace) {\r\n if (!(namespace instanceof ModuleNamespace || namespace[toStringTag] === 'module'))\r\n throw new Error('Registry must be set with an instance of Module Namespace');\r\n this[REGISTRY][key] = namespace;\r\n return this;\r\n };\r\n // 4.4.8\r\n Registry.prototype.has = function (key) {\r\n return Object.hasOwnProperty.call(this[REGISTRY], key);\r\n };\r\n // 4.4.9\r\n Registry.prototype.delete = function (key) {\r\n if (Object.hasOwnProperty.call(this[REGISTRY], key)) {\r\n delete this[REGISTRY][key];\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n /*\r\n * Simple ModuleNamespace Exotic object based on a baseObject\r\n * We export this for allowing a fast-path for module namespace creation over Module descriptors\r\n */\r\n // var EVALUATE = createSymbol('evaluate');\r\n var BASE_OBJECT = createSymbol('baseObject');\r\n\r\n // 8.3.1 Reflect.Module\r\n /*\r\n * Best-effort simplified non-spec implementation based on\r\n * a baseObject referenced via getters.\r\n *\r\n * Allows:\r\n *\r\n * loader.registry.set('x', new Module({ default: 'x' }));\r\n *\r\n * Optional evaluation function provides experimental Module.evaluate\r\n * support for non-executed modules in registry.\r\n */\r\n function ModuleNamespace (baseObject/*, evaluate*/) {\r\n Object.defineProperty(this, BASE_OBJECT, {\r\n value: baseObject\r\n });\r\n\r\n // evaluate defers namespace population\r\n /* if (evaluate) {\r\n Object.defineProperty(this, EVALUATE, {\r\n value: evaluate,\r\n configurable: true,\r\n writable: true\r\n });\r\n }\r\n else { */\r\n Object.keys(baseObject).forEach(extendNamespace, this);\r\n //}\r\n }// 8.4.2\r\n ModuleNamespace.prototype = Object.create(null);\r\n\r\n if (toStringTag)\r\n Object.defineProperty(ModuleNamespace.prototype, toStringTag, {\r\n value: 'Module'\r\n });\r\n\r\n function extendNamespace (key) {\r\n Object.defineProperty(this, key, {\r\n enumerable: true,\r\n get: function () {\r\n return this[BASE_OBJECT][key];\r\n }\r\n });\r\n }\r\n\r\n /* function doEvaluate (evaluate, context) {\r\n try {\r\n evaluate.call(context);\r\n }\r\n catch (e) {\r\n return e;\r\n }\r\n }\r\n\r\n // 8.4.1 Module.evaluate... not documented or used because this is potentially unstable\r\n Module.evaluate = function (ns) {\r\n var evaluate = ns[EVALUATE];\r\n if (evaluate) {\r\n ns[EVALUATE] = undefined;\r\n var err = doEvaluate(evaluate);\r\n if (err) {\r\n // cache the error\r\n ns[EVALUATE] = function () {\r\n throw err;\r\n };\r\n throw err;\r\n }\r\n Object.keys(ns[BASE_OBJECT]).forEach(extendNamespace, ns);\r\n }\r\n // make chainable\r\n return ns;\r\n }; */\n\n var resolvedPromise$1 = Promise.resolve();\r\n\r\n /*\r\n * Register Loader\r\n *\r\n * Builds directly on top of loader polyfill to provide:\r\n * - loader.register support\r\n * - hookable higher-level resolve\r\n * - instantiate hook returning a ModuleNamespace or undefined for es module loading\r\n * - loader error behaviour as in HTML and loader specs, caching load and eval errors separately\r\n * - build tracing support by providing a .trace=true and .loads object format\r\n */\r\n\r\n var REGISTER_INTERNAL = createSymbol('register-internal');\r\n\r\n function RegisterLoader () {\r\n Loader.call(this);\r\n\r\n var registryDelete = this.registry.delete;\r\n this.registry.delete = function (key) {\r\n var deleted = registryDelete.call(this, key);\r\n\r\n // also delete from register registry if linked\r\n if (records.hasOwnProperty(key) && !records[key].linkRecord) {\r\n delete records[key];\r\n deleted = true;\r\n }\r\n\r\n return deleted;\r\n };\r\n\r\n var records = {};\r\n\r\n this[REGISTER_INTERNAL] = {\r\n // last anonymous System.register call\r\n lastRegister: undefined,\r\n // in-flight es module load records\r\n records: records\r\n };\r\n\r\n // tracing\r\n this.trace = false;\r\n }\r\n\r\n RegisterLoader.prototype = Object.create(Loader.prototype);\r\n RegisterLoader.prototype.constructor = RegisterLoader;\r\n\r\n var INSTANTIATE = RegisterLoader.instantiate = createSymbol('instantiate');\r\n\r\n // default normalize is the WhatWG style normalizer\r\n RegisterLoader.prototype[RegisterLoader.resolve = Loader.resolve] = function (key, parentKey) {\r\n return resolveIfNotPlain(key, parentKey || baseURI);\r\n };\r\n\r\n RegisterLoader.prototype[INSTANTIATE] = function (key, processAnonRegister) {};\r\n\r\n // once evaluated, the linkRecord is set to undefined leaving just the other load record properties\r\n // this allows tracking new binding listeners for es modules through importerSetters\r\n // for dynamic modules, the load record is removed entirely.\r\n function createLoadRecord (state, key, registration) {\r\n return state.records[key] = {\r\n key: key,\r\n\r\n // defined System.register cache\r\n registration: registration,\r\n\r\n // module namespace object\r\n module: undefined,\r\n\r\n // es-only\r\n // this sticks around so new module loads can listen to binding changes\r\n // for already-loaded modules by adding themselves to their importerSetters\r\n importerSetters: undefined,\r\n\r\n loadError: undefined,\r\n evalError: undefined,\r\n\r\n // in-flight linking record\r\n linkRecord: {\r\n // promise for instantiated\r\n instantiatePromise: undefined,\r\n dependencies: undefined,\r\n execute: undefined,\r\n executingRequire: false,\r\n\r\n // underlying module object bindings\r\n moduleObj: undefined,\r\n\r\n // es only, also indicates if es or not\r\n setters: undefined,\r\n\r\n // promise for instantiated dependencies (dependencyInstantiations populated)\r\n depsInstantiatePromise: undefined,\r\n // will be the array of dependency load record or a module namespace\r\n dependencyInstantiations: undefined,\r\n\r\n // top-level await!\r\n evaluatePromise: undefined,\r\n\r\n // NB optimization and way of ensuring module objects in setters\r\n // indicates setters which should run pre-execution of that dependency\r\n // setters is then just for completely executed module objects\r\n // alternatively we just pass the partially filled module objects as\r\n // arguments into the execute function\r\n // hoisted: undefined\r\n }\r\n };\r\n }\r\n\r\n RegisterLoader.prototype[Loader.resolveInstantiate] = function (key, parentKey) {\r\n var loader = this;\r\n var state = this[REGISTER_INTERNAL];\r\n var registry = this.registry[REGISTRY];\r\n\r\n return resolveInstantiate(loader, key, parentKey, registry, state)\r\n .then(function (instantiated) {\r\n if (instantiated instanceof ModuleNamespace || instantiated[toStringTag] === 'module')\r\n return instantiated;\r\n\r\n // resolveInstantiate always returns a load record with a link record and no module value\r\n var link = instantiated.linkRecord;\r\n\r\n // if already beaten to done, return\r\n if (!link) {\r\n if (instantiated.module)\r\n return instantiated.module;\r\n throw instantiated.evalError;\r\n }\r\n\r\n return deepInstantiateDeps(loader, instantiated, link, registry, state)\r\n .then(function () {\r\n return ensureEvaluate(loader, instantiated, link, registry, state);\r\n });\r\n });\r\n };\r\n\r\n function resolveInstantiate (loader, key, parentKey, registry, state) {\r\n // normalization shortpath for already-normalized key\r\n // could add a plain name filter, but doesn't yet seem necessary for perf\r\n var module = registry[key];\r\n if (module)\r\n return Promise.resolve(module);\r\n\r\n var load = state.records[key];\r\n\r\n // already linked but not in main registry is ignored\r\n if (load && !load.module) {\r\n if (load.loadError)\r\n return Promise.reject(load.loadError);\r\n return instantiate(loader, load, load.linkRecord, registry, state);\r\n }\r\n\r\n return loader.resolve(key, parentKey)\r\n .then(function (resolvedKey) {\r\n // main loader registry always takes preference\r\n module = registry[resolvedKey];\r\n if (module)\r\n return module;\r\n\r\n load = state.records[resolvedKey];\r\n\r\n // already has a module value but not already in the registry (load.module)\r\n // means it was removed by registry.delete, so we should\r\n // disgard the current load record creating a new one over it\r\n // but keep any existing registration\r\n if (!load || load.module)\r\n load = createLoadRecord(state, resolvedKey, load && load.registration);\r\n\r\n if (load.loadError)\r\n return Promise.reject(load.loadError);\r\n\r\n var link = load.linkRecord;\r\n if (!link)\r\n return load;\r\n\r\n return instantiate(loader, load, link, registry, state);\r\n });\r\n }\r\n\r\n function createProcessAnonRegister (loader, load, state) {\r\n return function () {\r\n var lastRegister = state.lastRegister;\r\n\r\n if (!lastRegister)\r\n return !!load.registration;\r\n\r\n state.lastRegister = undefined;\r\n load.registration = lastRegister;\r\n\r\n return true;\r\n };\r\n }\r\n\r\n function instantiate (loader, load, link, registry, state) {\r\n return link.instantiatePromise || (link.instantiatePromise =\r\n // if there is already an existing registration, skip running instantiate\r\n (load.registration ? resolvedPromise$1 : resolvedPromise$1.then(function () {\r\n state.lastRegister = undefined;\r\n return loader[INSTANTIATE](load.key, loader[INSTANTIATE].length > 1 && createProcessAnonRegister(loader, load, state));\r\n }))\r\n .then(function (instantiation) {\r\n // direct module return from instantiate -> we're done\r\n if (instantiation !== undefined) {\r\n if (!(instantiation instanceof ModuleNamespace || instantiation[toStringTag] === 'module'))\r\n throw new TypeError('Instantiate did not return a valid Module object.');\r\n\r\n delete state.records[load.key];\r\n if (loader.trace)\r\n traceLoad(loader, load, link);\r\n return registry[load.key] = instantiation;\r\n }\r\n\r\n // run the cached loader.register declaration if there is one\r\n var registration = load.registration;\r\n // clear to allow new registrations for future loads (combined with registry delete)\r\n load.registration = undefined;\r\n if (!registration)\r\n throw new TypeError('Module instantiation did not call an anonymous or correctly named System.register.');\r\n\r\n link.dependencies = registration[0];\r\n\r\n load.importerSetters = [];\r\n\r\n link.moduleObj = {};\r\n\r\n // process System.registerDynamic declaration\r\n if (registration[2]) {\r\n link.moduleObj.default = link.moduleObj.__useDefault = {};\r\n link.executingRequire = registration[1];\r\n link.execute = registration[2];\r\n }\r\n\r\n // process System.register declaration\r\n else {\r\n registerDeclarative(loader, load, link, registration[1]);\r\n }\r\n\r\n return load;\r\n })\r\n .catch(function (err) {\r\n load.linkRecord = undefined;\r\n throw load.loadError = load.loadError || LoaderError__Check_error_message_for_loader_stack(err, 'Instantiating ' + load.key);\r\n }));\r\n }\r\n\r\n // like resolveInstantiate, but returning load records for linking\r\n function resolveInstantiateDep (loader, key, parentKey, registry, state, traceDepMap) {\r\n // normalization shortpaths for already-normalized key\r\n // DISABLED to prioritise consistent resolver calls\r\n // could add a plain name filter, but doesn't yet seem necessary for perf\r\n /* var load = state.records[key];\r\n var module = registry[key];\r\n\r\n if (module) {\r\n if (traceDepMap)\r\n traceDepMap[key] = key;\r\n\r\n // registry authority check in case module was deleted or replaced in main registry\r\n if (load && load.module && load.module === module)\r\n return load;\r\n else\r\n return module;\r\n }\r\n\r\n // already linked but not in main registry is ignored\r\n if (load && !load.module) {\r\n if (traceDepMap)\r\n traceDepMap[key] = key;\r\n return instantiate(loader, load, load.linkRecord, registry, state);\r\n } */\r\n return loader.resolve(key, parentKey)\r\n .then(function (resolvedKey) {\r\n if (traceDepMap)\r\n traceDepMap[key] = resolvedKey;\r\n\r\n // normalization shortpaths for already-normalized key\r\n var load = state.records[resolvedKey];\r\n var module = registry[resolvedKey];\r\n\r\n // main loader registry always takes preference\r\n if (module && (!load || load.module && module !== load.module))\r\n return module;\r\n\r\n if (load && load.loadError)\r\n throw load.loadError;\r\n\r\n // already has a module value but not already in the registry (load.module)\r\n // means it was removed by registry.delete, so we should\r\n // disgard the current load record creating a new one over it\r\n // but keep any existing registration\r\n if (!load || !module && load.module)\r\n load = createLoadRecord(state, resolvedKey, load && load.registration);\r\n\r\n var link = load.linkRecord;\r\n if (!link)\r\n return load;\r\n\r\n return instantiate(loader, load, link, registry, state);\r\n });\r\n }\r\n\r\n function traceLoad (loader, load, link) {\r\n loader.loads = loader.loads || {};\r\n loader.loads[load.key] = {\r\n key: load.key,\r\n deps: link.dependencies,\r\n dynamicDeps: [],\r\n depMap: link.depMap || {}\r\n };\r\n }\r\n\r\n /*\r\n * Convert a CJS module.exports into a valid object for new Module:\r\n *\r\n * new Module(getEsModule(module.exports))\r\n *\r\n * Sets the default value to the module, while also reading off named exports carefully.\r\n */\r\n function registerDeclarative (loader, load, link, declare) {\r\n var moduleObj = link.moduleObj;\r\n var importerSetters = load.importerSetters;\r\n\r\n var definedExports = false;\r\n\r\n // closure especially not based on link to allow link record disposal\r\n var declared = declare.call(envGlobal, function (name, value) {\r\n if (typeof name === 'object') {\r\n var changed = false;\r\n for (var p in name) {\r\n value = name[p];\r\n if (p !== '__useDefault' && (!(p in moduleObj) || moduleObj[p] !== value)) {\r\n changed = true;\r\n moduleObj[p] = value;\r\n }\r\n }\r\n if (changed === false)\r\n return value;\r\n }\r\n else {\r\n if ((definedExports || name in moduleObj) && moduleObj[name] === value)\r\n return value;\r\n moduleObj[name] = value;\r\n }\r\n\r\n for (var i = 0; i < importerSetters.length; i++)\r\n importerSetters[i](moduleObj);\r\n\r\n return value;\r\n }, new ContextualLoader(loader, load.key));\r\n\r\n link.setters = declared.setters || [];\r\n link.execute = declared.execute;\r\n if (declared.exports) {\r\n link.moduleObj = moduleObj = declared.exports;\r\n definedExports = true;\r\n }\r\n }\r\n\r\n function instantiateDeps (loader, load, link, registry, state) {\r\n if (link.depsInstantiatePromise)\r\n return link.depsInstantiatePromise;\r\n\r\n var depsInstantiatePromises = Array(link.dependencies.length);\r\n\r\n for (var i = 0; i < link.dependencies.length; i++)\r\n depsInstantiatePromises[i] = resolveInstantiateDep(loader, link.dependencies[i], load.key, registry, state, loader.trace && link.depMap || (link.depMap = {}));\r\n\r\n var depsInstantiatePromise = Promise.all(depsInstantiatePromises)\r\n .then(function (dependencyInstantiations) {\r\n link.dependencyInstantiations = dependencyInstantiations;\r\n\r\n // run setters to set up bindings to instantiated dependencies\r\n if (link.setters) {\r\n for (var i = 0; i < dependencyInstantiations.length; i++) {\r\n var setter = link.setters[i];\r\n if (setter) {\r\n var instantiation = dependencyInstantiations[i];\r\n\r\n if (instantiation instanceof ModuleNamespace || instantiation[toStringTag] === 'module') {\r\n setter(instantiation);\r\n }\r\n else {\r\n if (instantiation.loadError)\r\n throw instantiation.loadError;\r\n setter(instantiation.module || instantiation.linkRecord.moduleObj);\r\n // this applies to both es and dynamic registrations\r\n if (instantiation.importerSetters)\r\n instantiation.importerSetters.push(setter);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return load;\r\n });\r\n\r\n if (loader.trace)\r\n depsInstantiatePromise = depsInstantiatePromise.then(function () {\r\n traceLoad(loader, load, link);\r\n return load;\r\n });\r\n\r\n depsInstantiatePromise = depsInstantiatePromise.catch(function (err) {\r\n // throw up the instantiateDeps stack\r\n link.depsInstantiatePromise = undefined;\r\n throw LoaderError__Check_error_message_for_loader_stack(err, 'Loading ' + load.key);\r\n });\r\n\r\n depsInstantiatePromise.catch(function () {});\r\n\r\n return link.depsInstantiatePromise = depsInstantiatePromise;\r\n }\r\n\r\n function deepInstantiateDeps (loader, load, link, registry, state) {\r\n var seen = [];\r\n function addDeps (load, link) {\r\n if (!link)\r\n return resolvedPromise$1;\r\n if (seen.indexOf(load) !== -1)\r\n return resolvedPromise$1;\r\n seen.push(load);\r\n \r\n return instantiateDeps(loader, load, link, registry, state)\r\n .then(function () {\r\n var depPromises;\r\n for (var i = 0; i < link.dependencies.length; i++) {\r\n var depLoad = link.dependencyInstantiations[i];\r\n if (!(depLoad instanceof ModuleNamespace || depLoad[toStringTag] === 'module')) {\r\n depPromises = depPromises || [];\r\n depPromises.push(addDeps(depLoad, depLoad.linkRecord));\r\n }\r\n }\r\n if (depPromises)\r\n return Promise.all(depPromises);\r\n });\r\n }\r\n return addDeps(load, link);\r\n }\r\n\r\n /*\r\n * System.register\r\n */\r\n RegisterLoader.prototype.register = function (key, deps, declare) {\r\n var state = this[REGISTER_INTERNAL];\r\n\r\n // anonymous modules get stored as lastAnon\r\n if (declare === undefined) {\r\n state.lastRegister = [key, deps, undefined];\r\n }\r\n\r\n // everything else registers into the register cache\r\n else {\r\n var load = state.records[key] || createLoadRecord(state, key, undefined);\r\n load.registration = [deps, declare, undefined];\r\n }\r\n };\r\n\r\n /*\r\n * System.registerDyanmic\r\n */\r\n RegisterLoader.prototype.registerDynamic = function (key, deps, executingRequire, execute) {\r\n var state = this[REGISTER_INTERNAL];\r\n\r\n // anonymous modules get stored as lastAnon\r\n if (typeof key !== 'string') {\r\n state.lastRegister = [key, deps, executingRequire];\r\n }\r\n\r\n // everything else registers into the register cache\r\n else {\r\n var load = state.records[key] || createLoadRecord(state, key, undefined);\r\n load.registration = [deps, executingRequire, execute];\r\n }\r\n };\r\n\r\n // ContextualLoader class\r\n // backwards-compatible with previous System.register context argument by exposing .id, .key\r\n function ContextualLoader (loader, key) {\r\n this.loader = loader;\r\n this.key = this.id = key;\r\n this.meta = {\r\n url: key\r\n // scriptElement: null\r\n };\r\n }\r\n /*ContextualLoader.prototype.constructor = function () {\r\n throw new TypeError('Cannot subclass the contextual loader only Reflect.Loader.');\r\n };*/\r\n ContextualLoader.prototype.import = function (key) {\r\n if (this.loader.trace)\r\n this.loader.loads[this.key].dynamicDeps.push(key);\r\n return this.loader.import(key, this.key);\r\n };\r\n /*ContextualLoader.prototype.resolve = function (key) {\r\n return this.loader.resolve(key, this.key);\r\n };*/\r\n\r\n function ensureEvaluate (loader, load, link, registry, state) {\r\n if (load.module)\r\n return load.module;\r\n if (load.evalError)\r\n throw load.evalError;\r\n if (link.evaluatePromise)\r\n return link.evaluatePromise;\r\n\r\n if (link.setters) {\r\n var evaluatePromise = doEvaluateDeclarative(loader, load, link, registry, state, [load]);\r\n if (evaluatePromise)\r\n return evaluatePromise;\r\n }\r\n else {\r\n doEvaluateDynamic(loader, load, link, registry, state, [load]);\r\n }\r\n return load.module;\r\n }\r\n\r\n function makeDynamicRequire (loader, key, dependencies, dependencyInstantiations, registry, state, seen) {\r\n // we can only require from already-known dependencies\r\n return function (name) {\r\n for (var i = 0; i < dependencies.length; i++) {\r\n if (dependencies[i] === name) {\r\n var depLoad = dependencyInstantiations[i];\r\n var module;\r\n\r\n if (depLoad instanceof ModuleNamespace || depLoad[toStringTag] === 'module') {\r\n module = depLoad;\r\n }\r\n else {\r\n if (depLoad.evalError)\r\n throw depLoad.evalError;\r\n if (depLoad.module === undefined && seen.indexOf(depLoad) === -1 && !depLoad.linkRecord.evaluatePromise) {\r\n if (depLoad.linkRecord.setters) {\r\n doEvaluateDeclarative(loader, depLoad, depLoad.linkRecord, registry, state, [depLoad]);\r\n }\r\n else {\r\n seen.push(depLoad);\r\n doEvaluateDynamic(loader, depLoad, depLoad.linkRecord, registry, state, seen);\r\n }\r\n }\r\n module = depLoad.module || depLoad.linkRecord.moduleObj;\r\n }\r\n\r\n return '__useDefault' in module ? module.__useDefault : module;\r\n }\r\n }\r\n throw new Error('Module ' + name + ' not declared as a System.registerDynamic dependency of ' + key);\r\n };\r\n }\r\n\r\n function evalError (load, err) {\r\n load.linkRecord = undefined;\r\n var evalError = LoaderError__Check_error_message_for_loader_stack(err, 'Evaluating ' + load.key);\r\n if (load.evalError === undefined)\r\n load.evalError = evalError;\r\n throw evalError;\r\n }\r\n\r\n // es modules evaluate dependencies first\r\n // returns the error if any\r\n function doEvaluateDeclarative (loader, load, link, registry, state, seen) {\r\n var depLoad, depLink;\r\n var depLoadPromises;\r\n for (var i = 0; i < link.dependencies.length; i++) {\r\n var depLoad = link.dependencyInstantiations[i];\r\n if (depLoad instanceof ModuleNamespace || depLoad[toStringTag] === 'module')\r\n continue;\r\n\r\n // custom Module returned from instantiate\r\n depLink = depLoad.linkRecord;\r\n if (depLink) {\r\n if (depLoad.evalError) {\r\n evalError(load, depLoad.evalError);\r\n }\r\n else if (depLink.setters) {\r\n if (seen.indexOf(depLoad) === -1) {\r\n seen.push(depLoad);\r\n try {\r\n var depLoadPromise = doEvaluateDeclarative(loader, depLoad, depLink, registry, state, seen);\r\n }\r\n catch (e) {\r\n evalError(load, e);\r\n }\r\n if (depLoadPromise) {\r\n depLoadPromises = depLoadPromises || [];\r\n depLoadPromises.push(depLoadPromise.catch(function (err) {\r\n evalError(load, err);\r\n }));\r\n }\r\n }\r\n }\r\n else {\r\n try {\r\n doEvaluateDynamic(loader, depLoad, depLink, registry, state, [depLoad]);\r\n }\r\n catch (e) {\r\n evalError(load, e);\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (depLoadPromises)\r\n return link.evaluatePromise = Promise.all(depLoadPromises)\r\n .then(function () {\r\n if (link.execute) {\r\n // ES System.register execute\r\n // \"this\" is null in ES\r\n try {\r\n var execPromise = link.execute.call(nullContext);\r\n }\r\n catch (e) {\r\n evalError(load, e);\r\n }\r\n if (execPromise)\r\n return execPromise.catch(function (e) {\r\n evalError(load, e);\r\n })\r\n .then(function () {\r\n load.linkRecord = undefined;\r\n return registry[load.key] = load.module = new ModuleNamespace(link.moduleObj);\r\n });\r\n }\r\n \r\n // dispose link record\r\n load.linkRecord = undefined;\r\n registry[load.key] = load.module = new ModuleNamespace(link.moduleObj);\r\n });\r\n\r\n if (link.execute) {\r\n // ES System.register execute\r\n // \"this\" is null in ES\r\n try {\r\n var execPromise = link.execute.call(nullContext);\r\n }\r\n catch (e) {\r\n evalError(load, e);\r\n }\r\n if (execPromise)\r\n return link.evaluatePromise = execPromise.catch(function (e) {\r\n evalError(load, e);\r\n })\r\n .then(function () {\r\n load.linkRecord = undefined;\r\n return registry[load.key] = load.module = new ModuleNamespace(link.moduleObj);\r\n });\r\n }\r\n\r\n // dispose link record\r\n load.linkRecord = undefined;\r\n registry[load.key] = load.module = new ModuleNamespace(link.moduleObj);\r\n }\r\n\r\n // non es modules explicitly call moduleEvaluate through require\r\n function doEvaluateDynamic (loader, load, link, registry, state, seen) {\r\n // System.registerDynamic execute\r\n // \"this\" is \"exports\" in CJS\r\n var module = { id: load.key };\r\n var moduleObj = link.moduleObj;\r\n Object.defineProperty(module, 'exports', {\r\n configurable: true,\r\n set: function (exports) {\r\n moduleObj.default = moduleObj.__useDefault = exports;\r\n },\r\n get: function () {\r\n return moduleObj.__useDefault;\r\n }\r\n });\r\n\r\n var require = makeDynamicRequire(loader, load.key, link.dependencies, link.dependencyInstantiations, registry, state, seen);\r\n\r\n // evaluate deps first\r\n if (!link.executingRequire)\r\n for (var i = 0; i < link.dependencies.length; i++)\r\n require(link.dependencies[i]);\r\n\r\n try {\r\n var output = link.execute.call(envGlobal, require, moduleObj.default, module);\r\n if (output !== undefined)\r\n module.exports = output;\r\n }\r\n catch (e) {\r\n evalError(load, e);\r\n }\r\n\r\n load.linkRecord = undefined;\r\n\r\n // pick up defineProperty calls to module.exports when we can\r\n if (module.exports !== moduleObj.__useDefault)\r\n moduleObj.default = moduleObj.__useDefault = module.exports;\r\n\r\n var moduleDefault = moduleObj.default;\r\n\r\n // __esModule flag extension support via lifting\r\n if (moduleDefault && moduleDefault.__esModule) {\r\n for (var p in moduleDefault) {\r\n if (Object.hasOwnProperty.call(moduleDefault, p))\r\n moduleObj[p] = moduleDefault[p];\r\n }\r\n }\r\n\r\n registry[load.key] = load.module = new ModuleNamespace(link.moduleObj);\r\n\r\n // run importer setters and clear them\r\n // this allows dynamic modules to update themselves into es modules\r\n // as soon as execution has completed\r\n if (load.importerSetters)\r\n for (var i = 0; i < load.importerSetters.length; i++)\r\n load.importerSetters[i](load.module);\r\n load.importerSetters = undefined;\r\n }\r\n\r\n // the closest we can get to call(undefined)\r\n var nullContext = Object.create(null);\r\n if (Object.freeze)\r\n Object.freeze(nullContext);\n\n var resolvedPromise$2 = Promise.resolve();\r\n function noop () {}\r\n var emptyModule = new ModuleNamespace({});\r\n\r\n function isModule (m) {\r\n return m instanceof ModuleNamespace || m[toStringTag] === 'module';\r\n }\r\n\r\n var CONFIG = createSymbol('loader-config');\r\n var PLAIN_RESOLVE = createSymbol('plain-resolve');\r\n var PLAIN_RESOLVE_SYNC = createSymbol('plain-resolve-sync');\r\n\r\n var isWorker = typeof window === 'undefined' && typeof self !== 'undefined' && typeof importScripts !== 'undefined';\r\n\r\n function extend (a, b) {\r\n for (var p in b) {\r\n if (!Object.hasOwnProperty.call(b, p))\r\n continue;\r\n a[p] = b[p];\r\n }\r\n return a;\r\n }\r\n\r\n var supportsPreload = false, supportsPrefetch = false;\r\n if (isBrowser)\r\n (function () {\r\n var relList = document.createElement('link').relList;\r\n if (relList && relList.supports) {\r\n supportsPrefetch = true;\r\n try {\r\n supportsPreload = relList.supports('preload');\r\n }\r\n catch (e) {}\r\n }\r\n })();\r\n\r\n function preloadScript (url) {\r\n // fallback to old fashioned image technique which still works in safari\r\n if (!supportsPreload && !supportsPrefetch) {\r\n var preloadImage = new Image();\r\n preloadImage.src = url;\r\n return;\r\n }\r\n\r\n var link = document.createElement('link');\r\n if (supportsPreload) {\r\n link.rel = 'preload';\r\n link.as = 'script';\r\n }\r\n else {\r\n // this works for all except Safari (detected by relList.supports lacking)\r\n link.rel = 'prefetch';\r\n }\r\n link.href = url;\r\n document.head.appendChild(link);\r\n }\r\n\r\n function workerImport (src, resolve, reject) {\r\n try {\r\n importScripts(src);\r\n }\r\n catch (e) {\r\n reject(e);\r\n }\r\n resolve();\r\n }\r\n\r\n if (isBrowser) {\r\n var onerror = window.onerror;\r\n window.onerror = function globalOnerror (msg, src) {\r\n if (onerror)\r\n onerror.apply(this, arguments);\r\n };\r\n }\r\n\r\n function scriptLoad (src, crossOrigin, integrity, resolve, reject) {\r\n // percent encode just \"#\" for HTTP requests\r\n src = src.replace(/#/g, '%23');\r\n\r\n // subresource integrity is not supported in web workers\r\n if (isWorker)\r\n return workerImport(src, resolve, reject);\r\n\r\n var script = document.createElement('script');\r\n script.type = 'text/javascript';\r\n script.charset = 'utf-8';\r\n script.async = true;\r\n\r\n if (crossOrigin)\r\n script.crossOrigin = crossOrigin;\r\n if (integrity)\r\n script.integrity = integrity;\r\n\r\n script.addEventListener('load', load, false);\r\n script.addEventListener('error', error, false);\r\n\r\n script.src = src;\r\n document.head.appendChild(script);\r\n\r\n function load () {\r\n resolve();\r\n cleanup();\r\n }\r\n\r\n // note this does not catch execution errors\r\n function error (err) {\r\n cleanup();\r\n reject(new Error('Fetching ' + src));\r\n }\r\n\r\n function cleanup () {\r\n script.removeEventListener('load', load, false);\r\n script.removeEventListener('error', error, false);\r\n document.head.removeChild(script);\r\n }\r\n }\r\n\r\n // separate out paths cache as a baseURL lock process\r\n function applyPaths (baseURL, paths, key) {\r\n var mapMatch = getMapMatch(paths, key);\r\n if (mapMatch) {\r\n var target = paths[mapMatch] + key.substr(mapMatch.length);\r\n\r\n var resolved = resolveIfNotPlain(target, baseURI);\r\n if (resolved !== undefined)\r\n return resolved;\r\n\r\n return baseURL + target;\r\n }\r\n else if (key.indexOf(':') !== -1) {\r\n return key;\r\n }\r\n else {\r\n return baseURL + key;\r\n }\r\n }\r\n\r\n function checkMap (p) {\r\n var name = this.name;\r\n // can add ':' here if we want paths to match the behaviour of map\r\n if (name.substr(0, p.length) === p && (name.length === p.length || name[p.length] === '/' || p[p.length - 1] === '/' || p[p.length - 1] === ':')) {\r\n var curLen = p.split('/').length;\r\n if (curLen > this.len) {\r\n this.match = p;\r\n this.len = curLen;\r\n }\r\n }\r\n }\r\n\r\n function getMapMatch (map, name) {\r\n if (Object.hasOwnProperty.call(map, name))\r\n return name;\r\n\r\n var bestMatch = {\r\n name: name,\r\n match: undefined,\r\n len: 0\r\n };\r\n\r\n Object.keys(map).forEach(checkMap, bestMatch);\r\n\r\n return bestMatch.match;\r\n }\n\n function setAmdHelper (loader) {\r\n\r\n /*\r\n AMD-compatible require\r\n To copy RequireJS, set window.require = window.requirejs = loader.amdRequire\r\n */\r\n function require (names, callback, errback, referer) {\r\n // in amd, first arg can be a config object... we just ignore\r\n if (typeof names === 'object' && !(names instanceof Array))\r\n return require.apply(null, Array.prototype.splice.call(arguments, 1, arguments.length - 1));\r\n\r\n // amd require\r\n if (typeof names === 'string' && typeof callback === 'function')\r\n names = [names];\r\n if (names instanceof Array) {\r\n var dynamicRequires = [];\r\n for (var i = 0; i < names.length; i++)\r\n dynamicRequires.push(loader.import(names[i], referer));\r\n Promise.all(dynamicRequires).then(function (modules) {\r\n if (callback)\r\n callback.apply(null, modules);\r\n }, errback);\r\n }\r\n\r\n // commonjs require\r\n else if (typeof names === 'string') {\r\n var normalized = loader.decanonicalize(names, referer);\r\n var module = loader.get(normalized);\r\n if (!module)\r\n throw new Error('Module not already loaded loading \"' + names + '\" as ' + normalized + (referer ? ' from \"' + referer + '\".' : '.'));\r\n return '__useDefault' in module ? module.__useDefault : module;\r\n }\r\n\r\n else\r\n throw new TypeError('Invalid require');\r\n }\r\n\r\n function define (name, deps, factory) {\r\n if (typeof name !== 'string') {\r\n factory = deps;\r\n deps = name;\r\n name = null;\r\n }\r\n\r\n if (!(deps instanceof Array)) {\r\n factory = deps;\r\n deps = ['require', 'exports', 'module'].splice(0, factory.length);\r\n }\r\n\r\n if (typeof factory !== 'function')\r\n factory = (function (factory) {\r\n return function() { return factory; }\r\n })(factory);\r\n\r\n if (!name) {\r\n if (curMetaDeps) {\r\n deps = deps.concat(curMetaDeps);\r\n curMetaDeps = undefined;\r\n }\r\n }\r\n\r\n // remove system dependencies\r\n var requireIndex, exportsIndex, moduleIndex;\r\n\r\n if ((requireIndex = deps.indexOf('require')) !== -1) {\r\n\r\n deps.splice(requireIndex, 1);\r\n\r\n // only trace cjs requires for non-named\r\n // named defines assume the trace has already been done\r\n if (!name)\r\n deps = deps.concat(amdGetCJSDeps(factory.toString(), requireIndex));\r\n }\r\n\r\n if ((exportsIndex = deps.indexOf('exports')) !== -1)\r\n deps.splice(exportsIndex, 1);\r\n\r\n if ((moduleIndex = deps.indexOf('module')) !== -1)\r\n deps.splice(moduleIndex, 1);\r\n\r\n function execute (req, exports, module) {\r\n var depValues = [];\r\n for (var i = 0; i < deps.length; i++)\r\n depValues.push(req(deps[i]));\r\n\r\n module.uri = module.id;\r\n\r\n module.config = noop;\r\n\r\n // add back in system dependencies\r\n if (moduleIndex !== -1)\r\n depValues.splice(moduleIndex, 0, module);\r\n\r\n if (exportsIndex !== -1)\r\n depValues.splice(exportsIndex, 0, exports);\r\n\r\n if (requireIndex !== -1) {\r\n var contextualRequire = function (names, callback, errback) {\r\n if (typeof names === 'string' && typeof callback !== 'function')\r\n return req(names);\r\n return require.call(loader, names, callback, errback, module.id);\r\n };\r\n contextualRequire.toUrl = function (name) {\r\n return loader.normalizeSync(name, module.id);\r\n };\r\n depValues.splice(requireIndex, 0, contextualRequire);\r\n }\r\n\r\n // set global require to AMD require\r\n var curRequire = envGlobal.require;\r\n envGlobal.require = require;\r\n\r\n var output = factory.apply(exportsIndex === -1 ? envGlobal : exports, depValues);\r\n\r\n envGlobal.require = curRequire;\r\n\r\n if (typeof output !== 'undefined')\r\n module.exports = output;\r\n }\r\n\r\n // anonymous define\r\n if (!name) {\r\n loader.registerDynamic(deps, false, curEsModule ? wrapEsModuleExecute(execute) : execute);\r\n }\r\n else {\r\n loader.registerDynamic(name, deps, false, execute);\r\n\r\n // if we don't have any other defines,\r\n // then let this be an anonymous define\r\n // this is just to support single modules of the form:\r\n // define('jquery')\r\n // still loading anonymously\r\n // because it is done widely enough to be useful\r\n // as soon as there is more than one define, this gets removed though\r\n if (lastNamedDefine) {\r\n lastNamedDefine = undefined;\r\n multipleNamedDefines = true;\r\n }\r\n else if (!multipleNamedDefines) {\r\n lastNamedDefine = [deps, execute];\r\n }\r\n }\r\n }\r\n define.amd = {};\r\n\r\n loader.amdDefine = define;\r\n loader.amdRequire = require;\r\n }\r\n\r\n // CJS\r\n var windowOrigin;\r\n if (typeof window !== 'undefined' && typeof document !== 'undefined' && window.location)\r\n windowOrigin = location.protocol + '//' + location.hostname + (location.port ? ':' + location.port : '');\r\n\r\n var commentRegEx = /(^|[^\\\\])(\\/\\*([\\s\\S]*?)\\*\\/|([^:]|^)\\/\\/(.*)$)/mg;\r\n\r\n // Global\r\n // bare minimum ignores\r\n var ignoredGlobalProps = ['_g', 'sessionStorage', 'localStorage', 'clipboardData', 'frames', 'frameElement', 'external',\r\n 'mozAnimationStartTime', 'mozPaintCount', 'webkitStorageInfo', 'webkitIndexedDB', 'mozInnerScreenY', 'mozInnerScreenX'];\r\n function globalIterator (globalName) {\r\n if (ignoredGlobalProps.indexOf(globalName) !== -1)\r\n return;\r\n try {\r\n var value = envGlobal[globalName];\r\n }\r\n catch (e) {\r\n ignoredGlobalProps.push(globalName);\r\n }\r\n this(globalName, value);\r\n }\r\n\r\n // AMD\r\n var cjsRequirePre = \"(?:^|[^$_a-zA-Z\\\\xA0-\\\\uFFFF.])\";\r\n var cjsRequirePost = \"\\\\s*\\\\(\\\\s*(\\\"([^\\\"]+)\\\"|'([^']+)')\\\\s*\\\\)\";\r\n var fnBracketRegEx = /\\(([^\\)]*)\\)/;\r\n var wsRegEx = /^\\s+|\\s+$/g;\r\n\r\n var requireRegExs = {};\r\n\r\n function amdGetCJSDeps(source, requireIndex) {\r\n\r\n // remove comments\r\n source = source.replace(commentRegEx, '');\r\n\r\n // determine the require alias\r\n var params = source.match(fnBracketRegEx);\r\n var requireAlias = (params[1].split(',')[requireIndex] || 'require').replace(wsRegEx, '');\r\n\r\n // find or generate the regex for this requireAlias\r\n var requireRegEx = requireRegExs[requireAlias] || (requireRegExs[requireAlias] = new RegExp(cjsRequirePre + requireAlias + cjsRequirePost, 'g'));\r\n\r\n requireRegEx.lastIndex = 0;\r\n\r\n var deps = [];\r\n\r\n var match;\r\n while (match = requireRegEx.exec(source))\r\n deps.push(match[2] || match[3]);\r\n\r\n return deps;\r\n }\r\n\r\n function wrapEsModuleExecute (execute) {\r\n return function (require, exports, module) {\r\n execute(require, exports, module);\r\n exports = module.exports;\r\n if ((typeof exports === 'object' || typeof exports === 'function') && !('__esModule' in exports))\r\n Object.defineProperty(module.exports, '__esModule', {\r\n value: true\r\n });\r\n };\r\n }\r\n\r\n // generate anonymous define from singular named define\r\n var multipleNamedDefines = false;\r\n var lastNamedDefine;\r\n var curMetaDeps;\r\n var curEsModule = false;\r\n function registerLastDefine (loader) {\r\n if (lastNamedDefine)\r\n loader.registerDynamic(curMetaDeps ? lastNamedDefine[0].concat(curMetaDeps) : lastNamedDefine[0],\r\n false, curEsModule ? wrapEsModuleExecute(lastNamedDefine[1]) : lastNamedDefine[1]);\r\n\r\n // bundles are an empty module\r\n else if (multipleNamedDefines)\r\n loader.registerDynamic([], false, noop);\r\n }\n\n function SystemJSProductionLoader () {\r\n RegisterLoader.call(this);\r\n\r\n // internal configuration\r\n this[CONFIG] = {\r\n baseURL: baseURI,\r\n paths: {},\r\n map: {},\r\n submap: {},\r\n depCache: {}\r\n };\r\n\r\n setAmdHelper(this);\r\n if (isBrowser)\r\n envGlobal.define = this.amdDefine;\r\n }\r\n\r\n SystemJSProductionLoader.plainResolve = PLAIN_RESOLVE;\r\n SystemJSProductionLoader.plainResolveSync = PLAIN_RESOLVE_SYNC;\r\n\r\n var systemJSPrototype = SystemJSProductionLoader.prototype = Object.create(RegisterLoader.prototype);\r\n\r\n systemJSPrototype.constructor = SystemJSProductionLoader;\r\n\r\n systemJSPrototype[SystemJSProductionLoader.resolve = RegisterLoader.resolve] = function (key, parentKey) {\r\n var resolved = resolveIfNotPlain(key, parentKey || baseURI);\r\n if (resolved !== undefined)\r\n return Promise.resolve(resolved);\r\n\r\n // plain resolution\r\n var loader = this;\r\n return resolvedPromise$2\r\n .then(function () {\r\n return loader[PLAIN_RESOLVE](key, parentKey);\r\n })\r\n .then(function (resolved) {\r\n resolved = resolved || key;\r\n // if in the registry then we are done\r\n if (loader.registry.has(resolved))\r\n return resolved;\r\n\r\n // then apply paths\r\n // baseURL is fallback\r\n var config = loader[CONFIG];\r\n return applyPaths(config.baseURL, config.paths, resolved);\r\n });\r\n };\r\n\r\n systemJSPrototype.newModule = function (bindings) {\r\n return new ModuleNamespace(bindings);\r\n };\r\n\r\n systemJSPrototype.isModule = isModule;\r\n\r\n systemJSPrototype.resolveSync = function (key, parentKey) {\r\n var resolved = resolveIfNotPlain(key, parentKey || baseURI);\r\n if (resolved !== undefined)\r\n return resolved;\r\n\r\n // plain resolution\r\n resolved = this[PLAIN_RESOLVE_SYNC](key, parentKey) || key;\r\n\r\n if (this.registry.has(resolved))\r\n return resolved;\r\n\r\n // then apply paths\r\n var config = this[CONFIG];\r\n return applyPaths(config.baseURL, config.paths, resolved);\r\n };\r\n\r\n systemJSPrototype[PLAIN_RESOLVE] = systemJSPrototype[PLAIN_RESOLVE_SYNC] = plainResolve;\r\n\r\n systemJSPrototype[SystemJSProductionLoader.instantiate = RegisterLoader.instantiate] = coreInstantiate;\r\n\r\n systemJSPrototype.config = function (cfg) {\r\n var config = this[CONFIG];\r\n\r\n if (cfg.baseURL) {\r\n config.baseURL = resolveIfNotPlain(cfg.baseURL, baseURI) || resolveIfNotPlain('./' + cfg.baseURL, baseURI);\r\n if (config.baseURL[config.baseURL.length - 1] !== '/')\r\n config.baseURL += '/';\r\n }\r\n\r\n if (cfg.paths)\r\n extend(config.paths, cfg.paths);\r\n\r\n if (cfg.map) {\r\n var val = cfg.map;\r\n for (var p in val) {\r\n if (!Object.hasOwnProperty.call(val, p))\r\n continue;\r\n\r\n var v = val[p];\r\n\r\n if (typeof v === 'string') {\r\n config.map[p] = v;\r\n }\r\n\r\n // object submap\r\n else {\r\n // normalize parent with URL and paths only\r\n var resolvedParent = resolveIfNotPlain(p, baseURI) || applyPaths(config.baseURL, config.paths, p);\r\n extend(config.submap[resolvedParent] || (config.submap[resolvedParent] = {}), v);\r\n }\r\n }\r\n }\r\n\r\n config.wasm = cfg.wasm === true;\r\n\r\n for (var p in cfg) {\r\n if (!Object.hasOwnProperty.call(cfg, p))\r\n continue;\r\n\r\n var val = cfg[p];\r\n\r\n switch (p) {\r\n case 'baseURL':\r\n case 'paths':\r\n case 'map':\r\n case 'wasm':\r\n break;\r\n\r\n case 'depCache':\r\n for (var p in val) {\r\n if (!Object.hasOwnProperty.call(val, p))\r\n continue;\r\n var resolvedParent = this.resolveSync(p, undefined);\r\n config.depCache[resolvedParent] = (config.depCache[resolvedParent] || []).concat(val[p]);\r\n }\r\n break;\r\n\r\n default:\r\n throw new TypeError('The SystemJS production build does not support the \"' + p + '\" configuration option.');\r\n }\r\n }\r\n };\r\n\r\n // getConfig configuration cloning\r\n systemJSPrototype.getConfig = function (name) {\r\n var config = this[CONFIG];\r\n\r\n var map = {};\r\n extend(map, config.map);\r\n for (var p in config.submap) {\r\n if (!Object.hasOwnProperty.call(config.submap, p))\r\n continue;\r\n map[p] = extend({}, config.submap[p]);\r\n }\r\n\r\n var depCache = {};\r\n for (var p in config.depCache) {\r\n if (!Object.hasOwnProperty.call(config.depCache, p))\r\n continue;\r\n depCache[p] = [].concat(config.depCache[p]);\r\n }\r\n\r\n return {\r\n baseURL: config.baseURL,\r\n paths: extend({}, config.paths),\r\n depCache: depCache,\r\n map: map,\r\n wasm: config.wasm === true\r\n };\r\n };\r\n\r\n // ensure System.register and System.registerDynamic decanonicalize\r\n systemJSPrototype.register = function (key, deps, declare) {\r\n if (typeof key === 'string')\r\n key = this.resolveSync(key, undefined);\r\n return RegisterLoader.prototype.register.call(this, key, deps, declare);\r\n };\r\n\r\n systemJSPrototype.registerDynamic = function (key, deps, executingRequire, execute) {\r\n if (typeof key === 'string')\r\n key = this.resolveSync(key, undefined);\r\n return RegisterLoader.prototype.registerDynamic.call(this, key, deps, executingRequire, execute);\r\n };\r\n\r\n function plainResolve (key, parentKey) {\r\n var config = this[CONFIG];\r\n\r\n // Apply contextual submap\r\n if (parentKey) {\r\n var parent = getMapMatch(config.submap, parentKey);\r\n var submap = config.submap[parent];\r\n var mapMatch = submap && getMapMatch(submap, key);\r\n\r\n if (mapMatch) {\r\n var target = submap[mapMatch] + key.substr(mapMatch.length);\r\n return resolveIfNotPlain(target, parent) || target;\r\n }\r\n }\r\n\r\n // Apply global map\r\n var map = config.map;\r\n var mapMatch = getMapMatch(map, key);\r\n\r\n if (mapMatch) {\r\n var target = map[mapMatch] + key.substr(mapMatch.length);\r\n return resolveIfNotPlain(target, parentKey || config.baseURL) || target;\r\n }\r\n }\r\n\r\n function instantiateWasm (loader, response, processAnonRegister) {\r\n return WebAssembly.compileStreaming(response).then(function (module) {\r\n var deps = [];\r\n var setters = [];\r\n var importObj = {};\r\n\r\n // we can only set imports if supported (eg early Safari doesnt support)\r\n if (WebAssembly.Module.imports)\r\n WebAssembly.Module.imports(module).forEach(function (i) {\r\n var key = i.module;\r\n setters.push(function (m) {\r\n importObj[key] = m;\r\n });\r\n if (deps.indexOf(key) === -1)\r\n deps.push(key);\r\n });\r\n\r\n loader.register(deps, function (_export) {\r\n return {\r\n setters: setters,\r\n execute: function () {\r\n _export(new WebAssembly.Instance(module, importObj).exports);\r\n }\r\n };\r\n });\r\n processAnonRegister();\r\n });\r\n }\r\n\r\n function doScriptLoad (loader, url, processAnonRegister) {\r\n // store a global snapshot in case it turns out to be global\r\n Object.keys(envGlobal).forEach(globalIterator, function (name, value) {\r\n globalSnapshot$1[name] = value;\r\n });\r\n\r\n return new Promise(function (resolve, reject) {\r\n return scriptLoad(url, 'anonymous', undefined, function () {\r\n\r\n // check for System.register call\r\n var registered = processAnonRegister();\r\n if (!registered) {\r\n // no System.register -> support named AMD as anonymous\r\n registerLastDefine(loader);\r\n registered = processAnonRegister();\r\n\r\n // still no registration -> attempt a global detection\r\n if (!registered) {\r\n var moduleValue = retrieveGlobal();\r\n loader.register([], function () {\r\n return {\r\n exports: moduleValue\r\n };\r\n });\r\n processAnonRegister();\r\n }\r\n }\r\n resolve();\r\n }, reject);\r\n });\r\n }\r\n\r\n function doEvalLoad (loader, url, source, processAnonRegister) {\r\n // store a global snapshot in case it turns out to be global\r\n Object.keys(envGlobal).forEach(globalIterator, function (name, value) {\r\n globalSnapshot$1[name] = value;\r\n });\r\n\r\n (0, eval)(source + '\\n//# sourceURL=' + url);\r\n\r\n // check for System.register call\r\n var registered = processAnonRegister();\r\n if (!registered) {\r\n // no System.register -> support named AMD as anonymous\r\n registerLastDefine(loader);\r\n registered = processAnonRegister();\r\n\r\n // still no registration -> attempt a global detection\r\n if (!registered) {\r\n var moduleValue = retrieveGlobal();\r\n loader.register([], function () {\r\n return {\r\n exports: moduleValue\r\n };\r\n });\r\n processAnonRegister();\r\n }\r\n }\r\n }\r\n\r\n var globalSnapshot$1 = {};\r\n function retrieveGlobal () {\r\n var globalValue = { default: undefined };\r\n var multipleGlobals = false;\r\n var globalName = undefined;\r\n\r\n Object.keys(envGlobal).forEach(globalIterator, function (name, value) {\r\n if (globalSnapshot$1[name] === value)\r\n return;\r\n // update global snapshot as we go\r\n globalSnapshot$1[name] = value;\r\n\r\n if (value === undefined)\r\n return;\r\n\r\n if (multipleGlobals) {\r\n globalValue[name] = value;\r\n }\r\n else if (globalName) {\r\n if (globalValue.default !== value) {\r\n multipleGlobals = true;\r\n globalValue.__esModule = true;\r\n globalValue[globalName] = globalValue.default;\r\n globalValue[name] = value;\r\n }\r\n }\r\n else {\r\n globalValue.default = value;\r\n globalName = name;\r\n }\r\n });\r\n\r\n return globalValue;\r\n }\r\n\r\n function coreInstantiate (key, processAnonRegister) {\r\n var config = this[CONFIG];\r\n\r\n var depCache = config.depCache[key];\r\n if (depCache) {\r\n for (var i = 0; i < depCache.length; i++)\r\n this.resolve(depCache[i], key).then(preloadScript);\r\n }\r\n\r\n if (config.wasm) {\r\n var loader = this;\r\n return fetch(key)\r\n .then(function (res) {\r\n if (!res.ok)\r\n throw new Error('Fetch error: ' + res.status + ' ' + res.statusText);\r\n if (res.headers.get('content-type').indexOf('application/wasm') === -1) {\r\n return res.text()\r\n .then(function (source) {\r\n doEvalLoad(loader, key, source, processAnonRegister);\r\n });\r\n }\r\n return instantiateWasm(loader, res, processAnonRegister);\r\n });\r\n }\r\n\r\n return doScriptLoad(this, key, processAnonRegister);\r\n }\n\n SystemJSProductionLoader.prototype.version = \"0.21.5 Production\";\r\n\r\n var System = new SystemJSProductionLoader();\r\n\r\n // only set the global System on the global in browsers\r\n if (isBrowser || isWorker) {\r\n envGlobal.SystemJS = System;\r\n\r\n // dont override an existing System global\r\n if (!envGlobal.System) {\r\n envGlobal.System = System;\r\n }\r\n // rather just extend or set a System.register on the existing System global\r\n else {\r\n var register = envGlobal.System.register;\r\n envGlobal.System.register = function () {\r\n if (register)\r\n register.apply(this, arguments);\r\n System.register.apply(System, arguments);\r\n };\r\n }\r\n }\r\n\r\n if (typeof module !== 'undefined' && module.exports)\r\n module.exports = System;\n\n}());\n//# sourceMappingURL=system-production.src.js.map\n"]}