{"version":3,"sources":["../node_modules/object-keys/isArguments.js","../node_modules/object-keys/index.js","../node_modules/foreach/index.js","../node_modules/define-properties/index.js","../node_modules/function-bind/implementation.js","../node_modules/function-bind/index.js","../node_modules/has/src/index.js","../node_modules/es-to-primitive/helpers/isPrimitive.js","../node_modules/is-callable/index.js","../node_modules/is-date-object/index.js","../node_modules/is-symbol/index.js","../node_modules/es-to-primitive/es6.js","../node_modules/es-abstract/helpers/isNaN.js","../node_modules/es-abstract/helpers/isFinite.js","../node_modules/es-abstract/helpers/assign.js","../node_modules/es-abstract/helpers/sign.js","../node_modules/es-abstract/helpers/mod.js","../node_modules/es-abstract/helpers/isPrimitive.js","../node_modules/es-to-primitive/es5.js","../node_modules/es-abstract/es5.js","../node_modules/is-regex/index.js","../node_modules/es-abstract/es2015.js","../node_modules/es-abstract/es6.js","../node_modules/array.from/implementation.js","../node_modules/array.from/polyfill.js","../node_modules/array.from/shim.js","../node_modules/array.from/index.js","vendor/xhook.js","lib/config.js","lib/util.js","lib/slave.js","lib/socket.js","lib/master.js","lib/script.js","index.js","browser.js"],"names":["toStr","Object","prototype","toString","module","exports","isArguments","value","str","call","isArgs","length","callee","has","hasOwnProperty","slice","Array","require","isEnumerable","propertyIsEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","o","ctor","constructor","excludedKeys","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","window","k","e","equalsConstructorPrototypeIfNotBuggy","keysShim","keys","object","isObject","isFunction","isString","theKeys","TypeError","skipProto","i","push","String","j","name","skipConstructor","shim","shimObjectKeys","keysWorksWithArguments","arguments","originalKeys","foreach","hasSymbols","Symbol","fn","arePropertyDescriptorsSupported","obj","defineProperty","enumerable","_","x","supportsDescriptors","predicate","configurable","writable","defineProperties","map","predicates","props","concat","getOwnPropertySymbols","bind","Function","isPrimitive","fnToStr","constructorRegex","isES6ClassFn","fnStr","singleStripped","replace","multiStripped","spaceStripped","test","tryFunctionObject","fnClass","genClass","hasToStringTag","toStringTag","isCallable","strClass","getDay","Date","tryDateObject","dateClass","isDateObject","symToStr","symStringRegex","isSymbolObject","valueOf","isSymbol","iterator","isDate","ordinaryToPrimitive","OrdinaryToPrimitive","O","hint","methodNames","method","result","GetMethod","P","func","ToPrimitive","input","PreferredType","Number","exoticToPrim","toPrimitive","isNaN","a","$isNaN","isFinite","Infinity","assign","target","source","key","sign","number","mod","modulo","remain","Math","floor","ES5internalSlots","actualHint","methods","$isFinite","IsCallable","ES5","ToBoolean","ToNumber","ToInteger","abs","ToInt32","ToUint32","ToUint16","posInt","ToString","ToObject","CheckObjectCoercible","optMessage","SameValue","y","Type","IsPropertyDescriptor","Desc","allowed","isData","IsAccessor","IsAccessorDescriptor","IsDataDescriptor","IsGenericDescriptor","FromPropertyDescriptor","get","set","ToPropertyDescriptor","Obj","desc","getter","setter","regexExec","RegExp","exec","gOPD","getOwnPropertyDescriptor","tryRegexExecCall","tryRegexExec","lastIndex","regexClass","isRegex","descriptor","hasLastIndexDataProperty","SymbolIterator","MAX_SAFE_INTEGER","pow","parseInteger","parseInt","arraySlice","strSlice","isBinary","isOctal","nonWS","join","nonWSregex","hasNonWS","invalidHexLiteral","isInvalidHexLiteral","ws","trimRegex","trim","hasRegExpMatcher","ES6","Call","F","V","args","apply","argument","NaN","trimmed","ToInt16","int16bit","ToInt8","int8bit","ToUint8","ToUint8Clamp","f","RequireObjectCoercible","ToPropertyKey","ToLength","len","CanonicalNumericIndexString","n","IsArray","isArray","IsConstructor","IsExtensible","preventExtensions","isExtensible","IsInteger","IsPropertyKey","IsRegExp","isRegExp","match","SameValueZero","GetV","Get","SpeciesConstructor","defaultConstructor","C","S","species","CompletePropertyDescriptor","Set","Throw","HasOwnProperty","HasProperty","IsConcatSpreadable","isConcatSpreadable","spreadable","Invoke","argumentsList","GetIterator","SyntaxError","actualMethod","IteratorNext","IteratorComplete","iterResult","IteratorValue","IteratorStep","done","IteratorClose","completion","completionThunk","iteratorReturn","completionRecord","innerResult","CreateIterResultObject","RegExpExec","R","ArraySpeciesCreate","originalArray","CreateDataProperty","oldDesc","extensible","immutable","newDesc","CreateDataPropertyOrThrow","success","AdvanceStringIndex","index","unicode","RangeError","first","charCodeAt","second","AFTER","BEFORE","COMMON_EVENTS","EventEmitter","FIRE","FormData","NativeFormData","NativeXMLHttp","OFF","ON","READY_STATE","UPLOAD_EVENTS","XHookFormData","XHookHttpRequest","XMLHTTP","convertHeaders","depricatedProp","document","fakeEvent","mergeObjects","msie","proxyEvents","xhook","_base","__indexOf","indexOf","item","l","navigator","userAgent","toLowerCase","_i","_len","p","src","dst","v","_error","events","event","clone","val","_has","type","msieEventObject","createEventObject","Event","nodeStyle","emitter","listeners","callback","undefined","splice","legacylistener","listener","_ref","shift","on","off","fire","once","destroy","handler","enable","disable","headers","h","dest","header","split","$1","$2","form","entries","fd","fentries","querySelectorAll","filter","checked","files","append","_this","ABORTED","currentState","emitFinal","emitReadyState","facade","hasError","hasErrorHandler","readBody","readHead","request","response","setReadyState","status","transiting","writeBody","writeHead","xhr","statusText","getAllResponseHeaders","responseType","text","responseText","data","xml","responseXML","finalUrl","responseURL","setTimeout","hooks","process","hook","async","onreadystatechange","addWithCredentials","withCredentials","open","url","user","pass","headerNames","send","body","modk","_j","_len1","_ref1","_k","_len2","_ref2","_ref3","upload","setRequestHeader","userResponse","head","progress","abort","lName","getResponseHeader","overrideMimeType","config","masters","slaves","debug","timeout","cookies","master","slave","COMPAT_VERSION","location","currentOrigin","protocol","host","origin","globalEmitter","console","counter","guid","newLogger","msg","alert","log","warn","instOf","global","parseUrl","path","$3","toRegExp","strip","t","enabled","addMasters","parent","postMessage","handleSocket","socket","pathRegex","regex","masterRegex","error","req","close","XMLHttpRequest","addEventListener","emit","readyState","resp","error1","slaveCookie","cookie","from","forEach","blob","Blob","id","CHECK_STRING","CHECK_INTERVAL","sockets","jsonEncode","createSocket","frame","ready","pendingEmits","extra","unshift","JSON","stringify","checks","check","initialise","handle","d","parse","attachEvent","socketlib","addSlaves","before","beforeXHR","newSlaves","getFrame","handleRequest","frames","proxyPath","createElement","setAttribute","appendChild","contentWindow","convertToArrayBuffer","isBlob","isFile","reader","FileReader","onload","readAsArrayBuffer","convertFormData","file","c","newargs","dispatchEvent","attrs","s","m","getElementsByTagName","script","getAttribute","prefix","feature","getPolyfill","xdomain"],"mappings":"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","file":"xdomain.map","sourcesContent":["'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","'use strict';\n\n// modified from https://github.com/es-shims/es5-shim\nvar has = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\nvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\nvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\nvar dontEnums = [\n\t'toString',\n\t'toLocaleString',\n\t'valueOf',\n\t'hasOwnProperty',\n\t'isPrototypeOf',\n\t'propertyIsEnumerable',\n\t'constructor'\n];\nvar equalsConstructorPrototype = function (o) {\n\tvar ctor = o.constructor;\n\treturn ctor && ctor.prototype === o;\n};\nvar excludedKeys = {\n\t$console: true,\n\t$external: true,\n\t$frame: true,\n\t$frameElement: true,\n\t$frames: true,\n\t$innerHeight: true,\n\t$innerWidth: true,\n\t$outerHeight: true,\n\t$outerWidth: true,\n\t$pageXOffset: true,\n\t$pageYOffset: true,\n\t$parent: true,\n\t$scrollLeft: true,\n\t$scrollTop: true,\n\t$scrollX: true,\n\t$scrollY: true,\n\t$self: true,\n\t$webkitIndexedDB: true,\n\t$webkitStorageInfo: true,\n\t$window: true\n};\nvar hasAutomationEqualityBug = (function () {\n\t/* global window */\n\tif (typeof window === 'undefined') { return false; }\n\tfor (var k in window) {\n\t\ttry {\n\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\ttry {\n\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t} catch (e) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}());\nvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t/* global window */\n\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\treturn equalsConstructorPrototype(o);\n\t}\n\ttry {\n\t\treturn equalsConstructorPrototype(o);\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar keysShim = function keys(object) {\n\tvar isObject = object !== null && typeof object === 'object';\n\tvar isFunction = toStr.call(object) === '[object Function]';\n\tvar isArguments = isArgs(object);\n\tvar isString = isObject && toStr.call(object) === '[object String]';\n\tvar theKeys = [];\n\n\tif (!isObject && !isFunction && !isArguments) {\n\t\tthrow new TypeError('Object.keys called on a non-object');\n\t}\n\n\tvar skipProto = hasProtoEnumBug && isFunction;\n\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\ttheKeys.push(String(i));\n\t\t}\n\t}\n\n\tif (isArguments && object.length > 0) {\n\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\ttheKeys.push(String(j));\n\t\t}\n\t} else {\n\t\tfor (var name in object) {\n\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\ttheKeys.push(String(name));\n\t\t\t}\n\t\t}\n\t}\n\n\tif (hasDontEnumBug) {\n\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t}\n\t\t}\n\t}\n\treturn theKeys;\n};\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\treturn (Object.keys(arguments) || '').length === 2;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tvar originalKeys = Object.keys;\n\t\t\tObject.keys = function keys(object) {\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t} else {\n\t\t\t\t\treturn originalKeys(object);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nmodule.exports = function forEach (obj, fn, ctx) {\n if (toString.call(fn) !== '[object Function]') {\n throw new TypeError('iterator must be a function');\n }\n var l = obj.length;\n if (l === +l) {\n for (var i = 0; i < l; i++) {\n fn.call(ctx, obj[i], i, obj);\n }\n } else {\n for (var k in obj) {\n if (hasOwn.call(obj, k)) {\n fn.call(ctx, obj[k], k, obj);\n }\n }\n }\n};\n\n","'use strict';\n\nvar keys = require('object-keys');\nvar foreach = require('foreach');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\n\nvar toStr = Object.prototype.toString;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\tObject.defineProperty(obj, 'x', { enumerable: false, value: obj });\n /* eslint-disable no-unused-vars, no-restricted-syntax */\n for (var _ in obj) { return false; }\n /* eslint-enable no-unused-vars, no-restricted-syntax */\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = Object.defineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\tObject.defineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = props.concat(Object.getOwnPropertySymbols(map));\n\t}\n\tforeach(props, function (name) {\n\t\tdefineProperty(object, name, map[name], predicates[name]);\n\t});\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","var bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","module.exports = function isPrimitive(value) {\n\treturn value === null || (typeof value !== 'function' && typeof value !== 'object');\n};\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\n\nvar constructorRegex = /^\\s*class /;\nvar isES6ClassFn = function isES6ClassFn(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\tvar singleStripped = fnStr.replace(/\\/\\/.*\\n/g, '');\n\t\tvar multiStripped = singleStripped.replace(/\\/\\*[.\\s\\S]*\\*\\//g, '');\n\t\tvar spaceStripped = multiStripped.replace(/\\n/mg, ' ').replace(/ {2}/g, ' ');\n\t\treturn constructorRegex.test(spaceStripped);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionObject(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = function isCallable(value) {\n\tif (!value) { return false; }\n\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\tif (hasToStringTag) { return tryFunctionObject(value); }\n\tif (isES6ClassFn(value)) { return false; }\n\tvar strClass = toStr.call(value);\n\treturn strClass === fnClass || strClass === genClass;\n};\n","'use strict';\n\nvar getDay = Date.prototype.getDay;\nvar tryDateObject = function tryDateObject(value) {\n\ttry {\n\t\tgetDay.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar toStr = Object.prototype.toString;\nvar dateClass = '[object Date]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = function isDateObject(value) {\n\tif (typeof value !== 'object' || value === null) { return false; }\n\treturn hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n};\n","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\n\nif (hasSymbols) {\n\tvar symToStr = Symbol.prototype.toString;\n\tvar symStringRegex = /^Symbol\\(.*\\)$/;\n\tvar isSymbolObject = function isSymbolObject(value) {\n\t\tif (typeof value.valueOf() !== 'symbol') { return false; }\n\t\treturn symStringRegex.test(symToStr.call(value));\n\t};\n\tmodule.exports = function isSymbol(value) {\n\t\tif (typeof value === 'symbol') { return true; }\n\t\tif (toStr.call(value) !== '[object Symbol]') { return false; }\n\t\ttry {\n\t\t\treturn isSymbolObject(value);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n} else {\n\tmodule.exports = function isSymbol(value) {\n\t\t// this environment does not support Symbols.\n\t\treturn false;\n\t};\n}\n","'use strict';\n\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';\n\nvar isPrimitive = require('./helpers/isPrimitive');\nvar isCallable = require('is-callable');\nvar isDate = require('is-date-object');\nvar isSymbol = require('is-symbol');\n\nvar ordinaryToPrimitive = function OrdinaryToPrimitive(O, hint) {\n\tif (typeof O === 'undefined' || O === null) {\n\t\tthrow new TypeError('Cannot call method on ' + O);\n\t}\n\tif (typeof hint !== 'string' || (hint !== 'number' && hint !== 'string')) {\n\t\tthrow new TypeError('hint must be \"string\" or \"number\"');\n\t}\n\tvar methodNames = hint === 'string' ? ['toString', 'valueOf'] : ['valueOf', 'toString'];\n\tvar method, result, i;\n\tfor (i = 0; i < methodNames.length; ++i) {\n\t\tmethod = O[methodNames[i]];\n\t\tif (isCallable(method)) {\n\t\t\tresult = method.call(O);\n\t\t\tif (isPrimitive(result)) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\t}\n\tthrow new TypeError('No default value');\n};\n\nvar GetMethod = function GetMethod(O, P) {\n\tvar func = O[P];\n\tif (func !== null && typeof func !== 'undefined') {\n\t\tif (!isCallable(func)) {\n\t\t\tthrow new TypeError(func + ' returned for property ' + P + ' of object ' + O + ' is not a function');\n\t\t}\n\t\treturn func;\n\t}\n};\n\n// http://www.ecma-international.org/ecma-262/6.0/#sec-toprimitive\nmodule.exports = function ToPrimitive(input, PreferredType) {\n\tif (isPrimitive(input)) {\n\t\treturn input;\n\t}\n\tvar hint = 'default';\n\tif (arguments.length > 1) {\n\t\tif (PreferredType === String) {\n\t\t\thint = 'string';\n\t\t} else if (PreferredType === Number) {\n\t\t\thint = 'number';\n\t\t}\n\t}\n\n\tvar exoticToPrim;\n\tif (hasSymbols) {\n\t\tif (Symbol.toPrimitive) {\n\t\t\texoticToPrim = GetMethod(input, Symbol.toPrimitive);\n\t\t} else if (isSymbol(input)) {\n\t\t\texoticToPrim = Symbol.prototype.valueOf;\n\t\t}\n\t}\n\tif (typeof exoticToPrim !== 'undefined') {\n\t\tvar result = exoticToPrim.call(input, hint);\n\t\tif (isPrimitive(result)) {\n\t\t\treturn result;\n\t\t}\n\t\tthrow new TypeError('unable to convert exotic object to primitive');\n\t}\n\tif (hint === 'default' && (isDate(input) || isSymbol(input))) {\n\t\thint = 'string';\n\t}\n\treturn ordinaryToPrimitive(input, hint === 'default' ? 'number' : hint);\n};\n","module.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n","var $isNaN = Number.isNaN || function (a) { return a !== a; };\n\nmodule.exports = Number.isFinite || function (x) { return typeof x === 'number' && !$isNaN(x) && x !== Infinity && x !== -Infinity; };\n","var has = Object.prototype.hasOwnProperty;\nmodule.exports = function assign(target, source) {\n\tif (Object.assign) {\n\t\treturn Object.assign(target, source);\n\t}\n\tfor (var key in source) {\n\t\tif (has.call(source, key)) {\n\t\t\ttarget[key] = source[key];\n\t\t}\n\t}\n\treturn target;\n};\n","module.exports = function sign(number) {\n\treturn number >= 0 ? 1 : -1;\n};\n","module.exports = function mod(number, modulo) {\n\tvar remain = number % modulo;\n\treturn Math.floor(remain >= 0 ? remain : remain + modulo);\n};\n","module.exports = function isPrimitive(value) {\n\treturn value === null || (typeof value !== 'function' && typeof value !== 'object');\n};\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nvar isPrimitive = require('./helpers/isPrimitive');\n\nvar isCallable = require('is-callable');\n\n// https://es5.github.io/#x8.12\nvar ES5internalSlots = {\n\t'[[DefaultValue]]': function (O, hint) {\n\t\tvar actualHint = hint || (toStr.call(O) === '[object Date]' ? String : Number);\n\n\t\tif (actualHint === String || actualHint === Number) {\n\t\t\tvar methods = actualHint === String ? ['toString', 'valueOf'] : ['valueOf', 'toString'];\n\t\t\tvar value, i;\n\t\t\tfor (i = 0; i < methods.length; ++i) {\n\t\t\t\tif (isCallable(O[methods[i]])) {\n\t\t\t\t\tvalue = O[methods[i]]();\n\t\t\t\t\tif (isPrimitive(value)) {\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthrow new TypeError('No default value');\n\t\t}\n\t\tthrow new TypeError('invalid [[DefaultValue]] hint supplied');\n\t}\n};\n\n// https://es5.github.io/#x9\nmodule.exports = function ToPrimitive(input, PreferredType) {\n\tif (isPrimitive(input)) {\n\t\treturn input;\n\t}\n\treturn ES5internalSlots['[[DefaultValue]]'](input, PreferredType);\n};\n","'use strict';\n\nvar $isNaN = require('./helpers/isNaN');\nvar $isFinite = require('./helpers/isFinite');\n\nvar sign = require('./helpers/sign');\nvar mod = require('./helpers/mod');\n\nvar IsCallable = require('is-callable');\nvar toPrimitive = require('es-to-primitive/es5');\n\nvar has = require('has');\n\n// https://es5.github.io/#x9\nvar ES5 = {\n\tToPrimitive: toPrimitive,\n\n\tToBoolean: function ToBoolean(value) {\n\t\treturn !!value;\n\t},\n\tToNumber: function ToNumber(value) {\n\t\treturn Number(value);\n\t},\n\tToInteger: function ToInteger(value) {\n\t\tvar number = this.ToNumber(value);\n\t\tif ($isNaN(number)) { return 0; }\n\t\tif (number === 0 || !$isFinite(number)) { return number; }\n\t\treturn sign(number) * Math.floor(Math.abs(number));\n\t},\n\tToInt32: function ToInt32(x) {\n\t\treturn this.ToNumber(x) >> 0;\n\t},\n\tToUint32: function ToUint32(x) {\n\t\treturn this.ToNumber(x) >>> 0;\n\t},\n\tToUint16: function ToUint16(value) {\n\t\tvar number = this.ToNumber(value);\n\t\tif ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; }\n\t\tvar posInt = sign(number) * Math.floor(Math.abs(number));\n\t\treturn mod(posInt, 0x10000);\n\t},\n\tToString: function ToString(value) {\n\t\treturn String(value);\n\t},\n\tToObject: function ToObject(value) {\n\t\tthis.CheckObjectCoercible(value);\n\t\treturn Object(value);\n\t},\n\tCheckObjectCoercible: function CheckObjectCoercible(value, optMessage) {\n\t\t/* jshint eqnull:true */\n\t\tif (value == null) {\n\t\t\tthrow new TypeError(optMessage || 'Cannot call method on ' + value);\n\t\t}\n\t\treturn value;\n\t},\n\tIsCallable: IsCallable,\n\tSameValue: function SameValue(x, y) {\n\t\tif (x === y) { // 0 === -0, but they are not identical.\n\t\t\tif (x === 0) { return 1 / x === 1 / y; }\n\t\t\treturn true;\n\t\t}\n\t\treturn $isNaN(x) && $isNaN(y);\n\t},\n\n\t// http://www.ecma-international.org/ecma-262/5.1/#sec-8\n\tType: function Type(x) {\n\t\tif (x === null) {\n\t\t\treturn 'Null';\n\t\t}\n\t\tif (typeof x === 'undefined') {\n\t\t\treturn 'Undefined';\n\t\t}\n\t\tif (typeof x === 'function' || typeof x === 'object') {\n\t\t\treturn 'Object';\n\t\t}\n\t\tif (typeof x === 'number') {\n\t\t\treturn 'Number';\n\t\t}\n\t\tif (typeof x === 'boolean') {\n\t\t\treturn 'Boolean';\n\t\t}\n\t\tif (typeof x === 'string') {\n\t\t\treturn 'String';\n\t\t}\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type\n\tIsPropertyDescriptor: function IsPropertyDescriptor(Desc) {\n\t\tif (this.Type(Desc) !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\tvar allowed = {\n\t\t\t'[[Configurable]]': true,\n\t\t\t'[[Enumerable]]': true,\n\t\t\t'[[Get]]': true,\n\t\t\t'[[Set]]': true,\n\t\t\t'[[Value]]': true,\n\t\t\t'[[Writable]]': true\n\t\t};\n\t\t// jscs:disable\n\t\tfor (var key in Desc) { // eslint-disable-line\n\t\t\tif (has(Desc, key) && !allowed[key]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\t// jscs:enable\n\t\tvar isData = has(Desc, '[[Value]]');\n\t\tvar IsAccessor = has(Desc, '[[Get]]') || has(Desc, '[[Set]]');\n\t\tif (isData && IsAccessor) {\n\t\t\tthrow new TypeError('Property Descriptors may not be both accessor and data descriptors');\n\t\t}\n\t\treturn true;\n\t},\n\n\t// http://ecma-international.org/ecma-262/5.1/#sec-8.10.1\n\tIsAccessorDescriptor: function IsAccessorDescriptor(Desc) {\n\t\tif (typeof Desc === 'undefined') {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new TypeError('Desc must be a Property Descriptor');\n\t\t}\n\n\t\tif (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t// http://ecma-international.org/ecma-262/5.1/#sec-8.10.2\n\tIsDataDescriptor: function IsDataDescriptor(Desc) {\n\t\tif (typeof Desc === 'undefined') {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new TypeError('Desc must be a Property Descriptor');\n\t\t}\n\n\t\tif (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t// http://ecma-international.org/ecma-262/5.1/#sec-8.10.3\n\tIsGenericDescriptor: function IsGenericDescriptor(Desc) {\n\t\tif (typeof Desc === 'undefined') {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new TypeError('Desc must be a Property Descriptor');\n\t\t}\n\n\t\tif (!this.IsAccessorDescriptor(Desc) && !this.IsDataDescriptor(Desc)) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t},\n\n\t// http://ecma-international.org/ecma-262/5.1/#sec-8.10.4\n\tFromPropertyDescriptor: function FromPropertyDescriptor(Desc) {\n\t\tif (typeof Desc === 'undefined') {\n\t\t\treturn Desc;\n\t\t}\n\n\t\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new TypeError('Desc must be a Property Descriptor');\n\t\t}\n\n\t\tif (this.IsDataDescriptor(Desc)) {\n\t\t\treturn {\n\t\t\t\tvalue: Desc['[[Value]]'],\n\t\t\t\twritable: !!Desc['[[Writable]]'],\n\t\t\t\tenumerable: !!Desc['[[Enumerable]]'],\n\t\t\t\tconfigurable: !!Desc['[[Configurable]]']\n\t\t\t};\n\t\t} else if (this.IsAccessorDescriptor(Desc)) {\n\t\t\treturn {\n\t\t\t\tget: Desc['[[Get]]'],\n\t\t\t\tset: Desc['[[Set]]'],\n\t\t\t\tenumerable: !!Desc['[[Enumerable]]'],\n\t\t\t\tconfigurable: !!Desc['[[Configurable]]']\n\t\t\t};\n\t\t} else {\n\t\t\tthrow new TypeError('FromPropertyDescriptor must be called with a fully populated Property Descriptor');\n\t\t}\n\t},\n\n\t// http://ecma-international.org/ecma-262/5.1/#sec-8.10.5\n\tToPropertyDescriptor: function ToPropertyDescriptor(Obj) {\n\t\tif (this.Type(Obj) !== 'Object') {\n\t\t\tthrow new TypeError('ToPropertyDescriptor requires an object');\n\t\t}\n\n\t\tvar desc = {};\n\t\tif (has(Obj, 'enumerable')) {\n\t\t\tdesc['[[Enumerable]]'] = this.ToBoolean(Obj.enumerable);\n\t\t}\n\t\tif (has(Obj, 'configurable')) {\n\t\t\tdesc['[[Configurable]]'] = this.ToBoolean(Obj.configurable);\n\t\t}\n\t\tif (has(Obj, 'value')) {\n\t\t\tdesc['[[Value]]'] = Obj.value;\n\t\t}\n\t\tif (has(Obj, 'writable')) {\n\t\t\tdesc['[[Writable]]'] = this.ToBoolean(Obj.writable);\n\t\t}\n\t\tif (has(Obj, 'get')) {\n\t\t\tvar getter = Obj.get;\n\t\t\tif (typeof getter !== 'undefined' && !this.IsCallable(getter)) {\n\t\t\t\tthrow new TypeError('getter must be a function');\n\t\t\t}\n\t\t\tdesc['[[Get]]'] = getter;\n\t\t}\n\t\tif (has(Obj, 'set')) {\n\t\t\tvar setter = Obj.set;\n\t\t\tif (typeof setter !== 'undefined' && !this.IsCallable(setter)) {\n\t\t\t\tthrow new TypeError('setter must be a function');\n\t\t\t}\n\t\t\tdesc['[[Set]]'] = setter;\n\t\t}\n\n\t\tif ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) {\n\t\t\tthrow new TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute');\n\t\t}\n\t\treturn desc;\n\t}\n};\n\nmodule.exports = ES5;\n","'use strict';\n\nvar has = require('has');\nvar regexExec = RegExp.prototype.exec;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar tryRegexExecCall = function tryRegexExec(value) {\n\ttry {\n\t\tvar lastIndex = value.lastIndex;\n\t\tvalue.lastIndex = 0;\n\n\t\tregexExec.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\tvalue.lastIndex = lastIndex;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar regexClass = '[object RegExp]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = function isRegex(value) {\n\tif (!value || typeof value !== 'object') {\n\t\treturn false;\n\t}\n\tif (!hasToStringTag) {\n\t\treturn toStr.call(value) === regexClass;\n\t}\n\n\tvar descriptor = gOPD(value, 'lastIndex');\n\tvar hasLastIndexDataProperty = descriptor && has(descriptor, 'value');\n\tif (!hasLastIndexDataProperty) {\n\t\treturn false;\n\t}\n\n\treturn tryRegexExecCall(value);\n};\n","'use strict';\n\nvar has = require('has');\nvar toPrimitive = require('es-to-primitive/es6');\n\nvar toStr = Object.prototype.toString;\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';\nvar SymbolIterator = hasSymbols ? Symbol.iterator : null;\n\nvar $isNaN = require('./helpers/isNaN');\nvar $isFinite = require('./helpers/isFinite');\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1;\n\nvar assign = require('./helpers/assign');\nvar sign = require('./helpers/sign');\nvar mod = require('./helpers/mod');\nvar isPrimitive = require('./helpers/isPrimitive');\nvar parseInteger = parseInt;\nvar bind = require('function-bind');\nvar arraySlice = bind.call(Function.call, Array.prototype.slice);\nvar strSlice = bind.call(Function.call, String.prototype.slice);\nvar isBinary = bind.call(Function.call, RegExp.prototype.test, /^0b[01]+$/i);\nvar isOctal = bind.call(Function.call, RegExp.prototype.test, /^0o[0-7]+$/i);\nvar regexExec = bind.call(Function.call, RegExp.prototype.exec);\nvar nonWS = ['\\u0085', '\\u200b', '\\ufffe'].join('');\nvar nonWSregex = new RegExp('[' + nonWS + ']', 'g');\nvar hasNonWS = bind.call(Function.call, RegExp.prototype.test, nonWSregex);\nvar invalidHexLiteral = /^[-+]0x[0-9a-f]+$/i;\nvar isInvalidHexLiteral = bind.call(Function.call, RegExp.prototype.test, invalidHexLiteral);\n\n// whitespace from: http://es5.github.io/#x15.5.4.20\n// implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324\nvar ws = [\n\t'\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003',\n\t'\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028',\n\t'\\u2029\\uFEFF'\n].join('');\nvar trimRegex = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g');\nvar replace = bind.call(Function.call, String.prototype.replace);\nvar trim = function (value) {\n\treturn replace(value, trimRegex, '');\n};\n\nvar ES5 = require('./es5');\n\nvar hasRegExpMatcher = require('is-regex');\n\n// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-abstract-operations\nvar ES6 = assign(assign({}, ES5), {\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-call-f-v-args\n\tCall: function Call(F, V) {\n\t\tvar args = arguments.length > 2 ? arguments[2] : [];\n\t\tif (!this.IsCallable(F)) {\n\t\t\tthrow new TypeError(F + ' is not a function');\n\t\t}\n\t\treturn F.apply(V, args);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toprimitive\n\tToPrimitive: toPrimitive,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toboolean\n\t// ToBoolean: ES5.ToBoolean,\n\n\t// http://www.ecma-international.org/ecma-262/6.0/#sec-tonumber\n\tToNumber: function ToNumber(argument) {\n\t\tvar value = isPrimitive(argument) ? argument : toPrimitive(argument, Number);\n\t\tif (typeof value === 'symbol') {\n\t\t\tthrow new TypeError('Cannot convert a Symbol value to a number');\n\t\t}\n\t\tif (typeof value === 'string') {\n\t\t\tif (isBinary(value)) {\n\t\t\t\treturn this.ToNumber(parseInteger(strSlice(value, 2), 2));\n\t\t\t} else if (isOctal(value)) {\n\t\t\t\treturn this.ToNumber(parseInteger(strSlice(value, 2), 8));\n\t\t\t} else if (hasNonWS(value) || isInvalidHexLiteral(value)) {\n\t\t\t\treturn NaN;\n\t\t\t} else {\n\t\t\t\tvar trimmed = trim(value);\n\t\t\t\tif (trimmed !== value) {\n\t\t\t\t\treturn this.ToNumber(trimmed);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn Number(value);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tointeger\n\t// ToInteger: ES5.ToNumber,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint32\n\t// ToInt32: ES5.ToInt32,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint32\n\t// ToUint32: ES5.ToUint32,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint16\n\tToInt16: function ToInt16(argument) {\n\t\tvar int16bit = this.ToUint16(argument);\n\t\treturn int16bit >= 0x8000 ? int16bit - 0x10000 : int16bit;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint16\n\t// ToUint16: ES5.ToUint16,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint8\n\tToInt8: function ToInt8(argument) {\n\t\tvar int8bit = this.ToUint8(argument);\n\t\treturn int8bit >= 0x80 ? int8bit - 0x100 : int8bit;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint8\n\tToUint8: function ToUint8(argument) {\n\t\tvar number = this.ToNumber(argument);\n\t\tif ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; }\n\t\tvar posInt = sign(number) * Math.floor(Math.abs(number));\n\t\treturn mod(posInt, 0x100);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint8clamp\n\tToUint8Clamp: function ToUint8Clamp(argument) {\n\t\tvar number = this.ToNumber(argument);\n\t\tif ($isNaN(number) || number <= 0) { return 0; }\n\t\tif (number >= 0xFF) { return 0xFF; }\n\t\tvar f = Math.floor(argument);\n\t\tif (f + 0.5 < number) { return f + 1; }\n\t\tif (number < f + 0.5) { return f; }\n\t\tif (f % 2 !== 0) { return f + 1; }\n\t\treturn f;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tostring\n\tToString: function ToString(argument) {\n\t\tif (typeof argument === 'symbol') {\n\t\t\tthrow new TypeError('Cannot convert a Symbol value to a string');\n\t\t}\n\t\treturn String(argument);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toobject\n\tToObject: function ToObject(value) {\n\t\tthis.RequireObjectCoercible(value);\n\t\treturn Object(value);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-topropertykey\n\tToPropertyKey: function ToPropertyKey(argument) {\n\t\tvar key = this.ToPrimitive(argument, String);\n\t\treturn typeof key === 'symbol' ? key : this.ToString(key);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n\tToLength: function ToLength(argument) {\n\t\tvar len = this.ToInteger(argument);\n\t\tif (len <= 0) { return 0; } // includes converting -0 to +0\n\t\tif (len > MAX_SAFE_INTEGER) { return MAX_SAFE_INTEGER; }\n\t\treturn len;\n\t},\n\n\t// http://www.ecma-international.org/ecma-262/6.0/#sec-canonicalnumericindexstring\n\tCanonicalNumericIndexString: function CanonicalNumericIndexString(argument) {\n\t\tif (toStr.call(argument) !== '[object String]') {\n\t\t\tthrow new TypeError('must be a string');\n\t\t}\n\t\tif (argument === '-0') { return -0; }\n\t\tvar n = this.ToNumber(argument);\n\t\tif (this.SameValue(this.ToString(n), argument)) { return n; }\n\t\treturn void 0;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-requireobjectcoercible\n\tRequireObjectCoercible: ES5.CheckObjectCoercible,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isarray\n\tIsArray: Array.isArray || function IsArray(argument) {\n\t\treturn toStr.call(argument) === '[object Array]';\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-iscallable\n\t// IsCallable: ES5.IsCallable,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isconstructor\n\tIsConstructor: function IsConstructor(argument) {\n\t\treturn typeof argument === 'function' && !!argument.prototype; // unfortunately there's no way to truly check this without try/catch `new argument`\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isextensible-o\n\tIsExtensible: function IsExtensible(obj) {\n\t\tif (!Object.preventExtensions) { return true; }\n\t\tif (isPrimitive(obj)) {\n\t\t\treturn false;\n\t\t}\n\t\treturn Object.isExtensible(obj);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isinteger\n\tIsInteger: function IsInteger(argument) {\n\t\tif (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) {\n\t\t\treturn false;\n\t\t}\n\t\tvar abs = Math.abs(argument);\n\t\treturn Math.floor(abs) === abs;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-ispropertykey\n\tIsPropertyKey: function IsPropertyKey(argument) {\n\t\treturn typeof argument === 'string' || typeof argument === 'symbol';\n\t},\n\n\t// http://www.ecma-international.org/ecma-262/6.0/#sec-isregexp\n\tIsRegExp: function IsRegExp(argument) {\n\t\tif (!argument || typeof argument !== 'object') {\n\t\t\treturn false;\n\t\t}\n\t\tif (hasSymbols) {\n\t\t\tvar isRegExp = argument[Symbol.match];\n\t\t\tif (typeof isRegExp !== 'undefined') {\n\t\t\t\treturn ES5.ToBoolean(isRegExp);\n\t\t\t}\n\t\t}\n\t\treturn hasRegExpMatcher(argument);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevalue\n\t// SameValue: ES5.SameValue,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero\n\tSameValueZero: function SameValueZero(x, y) {\n\t\treturn (x === y) || ($isNaN(x) && $isNaN(y));\n\t},\n\n\t/**\n\t * 7.3.2 GetV (V, P)\n\t * 1. Assert: IsPropertyKey(P) is true.\n\t * 2. Let O be ToObject(V).\n\t * 3. ReturnIfAbrupt(O).\n\t * 4. Return O.[[Get]](P, V).\n\t */\n\tGetV: function GetV(V, P) {\n\t\t// 7.3.2.1\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\n\t\t// 7.3.2.2-3\n\t\tvar O = this.ToObject(V);\n\n\t\t// 7.3.2.4\n\t\treturn O[P];\n\t},\n\n\t/**\n\t * 7.3.9 - http://www.ecma-international.org/ecma-262/6.0/#sec-getmethod\n\t * 1. Assert: IsPropertyKey(P) is true.\n\t * 2. Let func be GetV(O, P).\n\t * 3. ReturnIfAbrupt(func).\n\t * 4. If func is either undefined or null, return undefined.\n\t * 5. If IsCallable(func) is false, throw a TypeError exception.\n\t * 6. Return func.\n\t */\n\tGetMethod: function GetMethod(O, P) {\n\t\t// 7.3.9.1\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\n\t\t// 7.3.9.2\n\t\tvar func = this.GetV(O, P);\n\n\t\t// 7.3.9.4\n\t\tif (func == null) {\n\t\t\treturn void 0;\n\t\t}\n\n\t\t// 7.3.9.5\n\t\tif (!this.IsCallable(func)) {\n\t\t\tthrow new TypeError(P + 'is not a function');\n\t\t}\n\n\t\t// 7.3.9.6\n\t\treturn func;\n\t},\n\n\t/**\n\t * 7.3.1 Get (O, P) - http://www.ecma-international.org/ecma-262/6.0/#sec-get-o-p\n\t * 1. Assert: Type(O) is Object.\n\t * 2. Assert: IsPropertyKey(P) is true.\n\t * 3. Return O.[[Get]](P, O).\n\t */\n\tGet: function Get(O, P) {\n\t\t// 7.3.1.1\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\t\t// 7.3.1.2\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\t\t// 7.3.1.3\n\t\treturn O[P];\n\t},\n\n\tType: function Type(x) {\n\t\tif (typeof x === 'symbol') {\n\t\t\treturn 'Symbol';\n\t\t}\n\t\treturn ES5.Type(x);\n\t},\n\n\t// http://www.ecma-international.org/ecma-262/6.0/#sec-speciesconstructor\n\tSpeciesConstructor: function SpeciesConstructor(O, defaultConstructor) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\t\tvar C = O.constructor;\n\t\tif (typeof C === 'undefined') {\n\t\t\treturn defaultConstructor;\n\t\t}\n\t\tif (this.Type(C) !== 'Object') {\n\t\t\tthrow new TypeError('O.constructor is not an Object');\n\t\t}\n\t\tvar S = hasSymbols && Symbol.species ? C[Symbol.species] : void 0;\n\t\tif (S == null) {\n\t\t\treturn defaultConstructor;\n\t\t}\n\t\tif (this.IsConstructor(S)) {\n\t\t\treturn S;\n\t\t}\n\t\tthrow new TypeError('no constructor found');\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-completepropertydescriptor\n\tCompletePropertyDescriptor: function CompletePropertyDescriptor(Desc) {\n\t\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new TypeError('Desc must be a Property Descriptor');\n\t\t}\n\n\t\tif (this.IsGenericDescriptor(Desc) || this.IsDataDescriptor(Desc)) {\n\t\t\tif (!has(Desc, '[[Value]]')) {\n\t\t\t\tDesc['[[Value]]'] = void 0;\n\t\t\t}\n\t\t\tif (!has(Desc, '[[Writable]]')) {\n\t\t\t\tDesc['[[Writable]]'] = false;\n\t\t\t}\n\t\t} else {\n\t\t\tif (!has(Desc, '[[Get]]')) {\n\t\t\t\tDesc['[[Get]]'] = void 0;\n\t\t\t}\n\t\t\tif (!has(Desc, '[[Set]]')) {\n\t\t\t\tDesc['[[Set]]'] = void 0;\n\t\t\t}\n\t\t}\n\t\tif (!has(Desc, '[[Enumerable]]')) {\n\t\t\tDesc['[[Enumerable]]'] = false;\n\t\t}\n\t\tif (!has(Desc, '[[Configurable]]')) {\n\t\t\tDesc['[[Configurable]]'] = false;\n\t\t}\n\t\treturn Desc;\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-set-o-p-v-throw\n\tSet: function Set(O, P, V, Throw) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new TypeError('O must be an Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('P must be a Property Key');\n\t\t}\n\t\tif (this.Type(Throw) !== 'Boolean') {\n\t\t\tthrow new TypeError('Throw must be a Boolean');\n\t\t}\n\t\tif (Throw) {\n\t\t\tO[P] = V;\n\t\t\treturn true;\n\t\t} else {\n\t\t\ttry {\n\t\t\t\tO[P] = V;\n\t\t\t} catch (e) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-hasownproperty\n\tHasOwnProperty: function HasOwnProperty(O, P) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new TypeError('O must be an Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('P must be a Property Key');\n\t\t}\n\t\treturn has(O, P);\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-hasproperty\n\tHasProperty: function HasProperty(O, P) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new TypeError('O must be an Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('P must be a Property Key');\n\t\t}\n\t\treturn P in O;\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-isconcatspreadable\n\tIsConcatSpreadable: function IsConcatSpreadable(O) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\tif (hasSymbols && typeof Symbol.isConcatSpreadable === 'symbol') {\n\t\t\tvar spreadable = this.Get(O, Symbol.isConcatSpreadable);\n\t\t\tif (typeof spreadable !== 'undefined') {\n\t\t\t\treturn this.ToBoolean(spreadable);\n\t\t\t}\n\t\t}\n\t\treturn this.IsArray(O);\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-invoke\n\tInvoke: function Invoke(O, P) {\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('P must be a Property Key');\n\t\t}\n\t\tvar argumentsList = arraySlice(arguments, 2);\n\t\tvar func = this.GetV(O, P);\n\t\treturn this.Call(func, O, argumentsList);\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-getiterator\n\tGetIterator: function GetIterator(obj, method) {\n\t\tif (!hasSymbols) {\n\t\t\tthrow new SyntaxError('ES.GetIterator depends on native iterator support.');\n\t\t}\n\n\t\tvar actualMethod = method;\n\t\tif (arguments.length < 2) {\n\t\t\tactualMethod = this.GetMethod(obj, SymbolIterator);\n\t\t}\n\t\tvar iterator = this.Call(actualMethod, obj);\n\t\tif (this.Type(iterator) !== 'Object') {\n\t\t\tthrow new TypeError('iterator must return an object');\n\t\t}\n\n\t\treturn iterator;\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-iteratornext\n\tIteratorNext: function IteratorNext(iterator, value) {\n\t\tvar result = this.Invoke(iterator, 'next', arguments.length < 2 ? [] : [value]);\n\t\tif (this.Type(result) !== 'Object') {\n\t\t\tthrow new TypeError('iterator next must return an object');\n\t\t}\n\t\treturn result;\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-iteratorcomplete\n\tIteratorComplete: function IteratorComplete(iterResult) {\n\t\tif (this.Type(iterResult) !== 'Object') {\n\t\t\tthrow new TypeError('Assertion failed: Type(iterResult) is not Object');\n\t\t}\n\t\treturn this.ToBoolean(this.Get(iterResult, 'done'));\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-iteratorvalue\n\tIteratorValue: function IteratorValue(iterResult) {\n\t\tif (this.Type(iterResult) !== 'Object') {\n\t\t\tthrow new TypeError('Assertion failed: Type(iterResult) is not Object');\n\t\t}\n\t\treturn this.Get(iterResult, 'value');\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-iteratorstep\n\tIteratorStep: function IteratorStep(iterator) {\n\t\tvar result = this.IteratorNext(iterator);\n\t\tvar done = this.IteratorComplete(result);\n\t\treturn done === true ? false : result;\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-iteratorclose\n\tIteratorClose: function IteratorClose(iterator, completion) {\n\t\tif (this.Type(iterator) !== 'Object') {\n\t\t\tthrow new TypeError('Assertion failed: Type(iterator) is not Object');\n\t\t}\n\t\tif (!this.IsCallable(completion)) {\n\t\t\tthrow new TypeError('Assertion failed: completion is not a thunk for a Completion Record');\n\t\t}\n\t\tvar completionThunk = completion;\n\n\t\tvar iteratorReturn = this.GetMethod(iterator, 'return');\n\n\t\tif (typeof iteratorReturn === 'undefined') {\n\t\t\treturn completionThunk();\n\t\t}\n\n\t\tvar completionRecord;\n\t\ttry {\n\t\t\tvar innerResult = this.Call(iteratorReturn, iterator, []);\n\t\t} catch (e) {\n\t\t\t// if we hit here, then \"e\" is the innerResult completion that needs re-throwing\n\n\t\t\t// if the completion is of type \"throw\", this will throw.\n\t\t\tcompletionRecord = completionThunk();\n\t\t\tcompletionThunk = null; // ensure it's not called twice.\n\n\t\t\t// if not, then return the innerResult completion\n\t\t\tthrow e;\n\t\t}\n\t\tcompletionRecord = completionThunk(); // if innerResult worked, then throw if the completion does\n\t\tcompletionThunk = null; // ensure it's not called twice.\n\n\t\tif (this.Type(innerResult) !== 'Object') {\n\t\t\tthrow new TypeError('iterator .return must return an object');\n\t\t}\n\n\t\treturn completionRecord;\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-createiterresultobject\n\tCreateIterResultObject: function CreateIterResultObject(value, done) {\n\t\tif (this.Type(done) !== 'Boolean') {\n\t\t\tthrow new TypeError('Assertion failed: Type(done) is not Boolean');\n\t\t}\n\t\treturn {\n\t\t\tvalue: value,\n\t\t\tdone: done\n\t\t};\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-regexpexec\n\tRegExpExec: function RegExpExec(R, S) {\n\t\tif (this.Type(R) !== 'Object') {\n\t\t\tthrow new TypeError('R must be an Object');\n\t\t}\n\t\tif (this.Type(S) !== 'String') {\n\t\t\tthrow new TypeError('S must be a String');\n\t\t}\n\t\tvar exec = this.Get(R, 'exec');\n\t\tif (this.IsCallable(exec)) {\n\t\t\tvar result = this.Call(exec, R, [S]);\n\t\t\tif (result === null || this.Type(result) === 'Object') {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\tthrow new TypeError('\"exec\" method must return `null` or an Object');\n\t\t}\n\t\treturn regexExec(R, S);\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-arrayspeciescreate\n\tArraySpeciesCreate: function ArraySpeciesCreate(originalArray, length) {\n\t\tif (!this.IsInteger(length) || length < 0) {\n\t\t\tthrow new TypeError('Assertion failed: length must be an integer >= 0');\n\t\t}\n\t\tvar len = length === 0 ? 0 : length;\n\t\tvar C;\n\t\tvar isArray = this.IsArray(originalArray);\n\t\tif (isArray) {\n\t\t\tC = this.Get(originalArray, 'constructor');\n\t\t\t// TODO: figure out how to make a cross-realm normal Array, a same-realm Array\n\t\t\t// if (this.IsConstructor(C)) {\n\t\t\t// \tif C is another realm's Array, C = undefined\n\t\t\t// \tObject.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(Array))) === null ?\n\t\t\t// }\n\t\t\tif (this.Type(C) === 'Object' && hasSymbols && Symbol.species) {\n\t\t\t\tC = this.Get(C, Symbol.species);\n\t\t\t\tif (C === null) {\n\t\t\t\t\tC = void 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (typeof C === 'undefined') {\n\t\t\treturn Array(len);\n\t\t}\n\t\tif (!this.IsConstructor(C)) {\n\t\t\tthrow new TypeError('C must be a constructor');\n\t\t}\n\t\treturn new C(len); // this.Construct(C, len);\n\t},\n\n\tCreateDataProperty: function CreateDataProperty(O, P, V) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\t\tvar oldDesc = Object.getOwnPropertyDescriptor(O, P);\n\t\tvar extensible = oldDesc || (typeof Object.isExtensible !== 'function' || Object.isExtensible(O));\n\t\tvar immutable = oldDesc && (!oldDesc.writable || !oldDesc.configurable);\n\t\tif (immutable || !extensible) {\n\t\t\treturn false;\n\t\t}\n\t\tvar newDesc = {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: true,\n\t\t\tvalue: V,\n\t\t\twritable: true\n\t\t};\n\t\tObject.defineProperty(O, P, newDesc);\n\t\treturn true;\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-createdatapropertyorthrow\n\tCreateDataPropertyOrThrow: function CreateDataPropertyOrThrow(O, P, V) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\t\tvar success = this.CreateDataProperty(O, P, V);\n\t\tif (!success) {\n\t\t\tthrow new TypeError('unable to create data property');\n\t\t}\n\t\treturn success;\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-advancestringindex\n\tAdvanceStringIndex: function AdvanceStringIndex(S, index, unicode) {\n\t\tif (this.Type(S) !== 'String') {\n\t\t\tthrow new TypeError('Assertion failed: Type(S) is not String');\n\t\t}\n\t\tif (!this.IsInteger(index)) {\n\t\t\tthrow new TypeError('Assertion failed: length must be an integer >= 0 and <= (2**53 - 1)');\n\t\t}\n\t\tif (index < 0 || index > MAX_SAFE_INTEGER) {\n\t\t\tthrow new RangeError('Assertion failed: length must be an integer >= 0 and <= (2**53 - 1)');\n\t\t}\n\t\tif (this.Type(unicode) !== 'Boolean') {\n\t\t\tthrow new TypeError('Assertion failed: Type(unicode) is not Boolean');\n\t\t}\n\t\tif (!unicode) {\n\t\t\treturn index + 1;\n\t\t}\n\t\tvar length = S.length;\n\t\tif ((index + 1) >= length) {\n\t\t\treturn index + 1;\n\t\t}\n\t\tvar first = S.charCodeAt(index);\n\t\tif (first < 0xD800 || first > 0xDBFF) {\n\t\t\treturn index + 1;\n\t\t}\n\t\tvar second = S.charCodeAt(index + 1);\n\t\tif (second < 0xDC00 || second > 0xDFFF) {\n\t\t\treturn index + 1;\n\t\t}\n\t\treturn index + 2;\n\t}\n});\n\ndelete ES6.CheckObjectCoercible; // renamed in ES6 to RequireObjectCoercible\n\nmodule.exports = ES6;\n","'use strict';\n\nmodule.exports = require('./es2015');\n","'use strict';\nvar ES = require('es-abstract/es6');\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\n\n/*! https://mths.be/array-from v0.2.0 by @mathias */\nmodule.exports = function from(arrayLike) {\n\tvar defineProperty = supportsDescriptors ? Object.defineProperty : function put(object, key, descriptor) {\n\t\tobject[key] = descriptor.value;\n\t};\n\tvar C = this;\n\tif (arrayLike === null || typeof arrayLike === 'undefined') {\n\t\tthrow new TypeError('`Array.from` requires an array-like object, not `null` or `undefined`');\n\t}\n\tvar items = ES.ToObject(arrayLike);\n\n\tvar mapFn, T;\n\tif (typeof arguments[1] !== 'undefined') {\n\t\tmapFn = arguments[1];\n\t\tif (!ES.IsCallable(mapFn)) {\n\t\t\tthrow new TypeError('When provided, the second argument to `Array.from` must be a function');\n\t\t}\n\t\tif (arguments.length > 2) {\n\t\t\tT = arguments[2];\n\t\t}\n\t}\n\n\tvar len = ES.ToLength(items.length);\n\tvar A = ES.IsCallable(C) ? ES.ToObject(new C(len)) : new Array(len);\n\tvar k = 0;\n\tvar kValue, mappedValue;\n\twhile (k < len) {\n\t\tkValue = items[k];\n\t\tif (mapFn) {\n\t\t\tmappedValue = typeof T === 'undefined' ? mapFn(kValue, k) : ES.Call(mapFn, T, [kValue, k]);\n\t\t} else {\n\t\t\tmappedValue = kValue;\n\t\t}\n\t\tdefineProperty(A, k, {\n\t\t\t'configurable': true,\n\t\t\t'enumerable': true,\n\t\t\t'value': mappedValue,\n\t\t\t'writable': true\n\t\t});\n\t\tk += 1;\n\t}\n\tA.length = len;\n\treturn A;\n};\n","'use strict';\n\nvar ES = require('es-abstract/es6');\nvar implementation = require('./implementation');\n\nvar tryCall = function (fn) {\n\ttry {\n\t\tfn();\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nmodule.exports = function getPolyfill() {\n\tvar implemented = ES.IsCallable(Array.from)\n\t\t&& tryCall(function () { Array.from({ 'length': -Infinity }); })\n\t\t&& !tryCall(function () { Array.from([], undefined); });\n\n\treturn implemented ? Array.from : implementation;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\nmodule.exports = function shimArrayFrom() {\n\tvar polyfill = getPolyfill();\n\n\tdefine(Array, { 'from': polyfill }, {\n\t\t'from': function () {\n\t\t\treturn Array.from !== polyfill;\n\t\t}\n\t});\n\n\treturn polyfill;\n};\n","'use strict';\n\nvar define = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\n// eslint-disable-next-line no-unused-vars\nvar boundFromShim = function from(array) {\n // eslint-disable-next-line no-invalid-this\n\treturn implementation.apply(this || Array, arguments);\n};\n\ndefine(boundFromShim, {\n\t'getPolyfill': getPolyfill,\n\t'implementation': implementation,\n\t'shim': shim\n});\n\nmodule.exports = boundFromShim;\n","// XHook - v1.3.5 - https://github.com/jpillora/xhook\n// Jaime Pillora - MIT Copyright 2016\n\nvar AFTER,\n BEFORE,\n COMMON_EVENTS,\n EventEmitter,\n FIRE,\n FormData,\n NativeFormData,\n NativeXMLHttp,\n OFF,\n ON,\n READY_STATE,\n UPLOAD_EVENTS,\n XHookFormData,\n XHookHttpRequest,\n XMLHTTP,\n convertHeaders,\n depricatedProp,\n document,\n fakeEvent,\n mergeObjects,\n msie,\n proxyEvents,\n slice,\n xhook,\n _base,\n __indexOf =\n [].indexOf ||\n function(item) {\n for (var i = 0, l = this.length; i < l; i++) {\n if (i in this && this[i] === item) return i;\n }\n return -1;\n };\n\ndocument = window.document;\n\nBEFORE = \"before\";\n\nAFTER = \"after\";\n\nREADY_STATE = \"readyState\";\n\nON = \"addEventListener\";\n\nOFF = \"removeEventListener\";\n\nFIRE = \"dispatchEvent\";\n\nXMLHTTP = \"XMLHttpRequest\";\n\nFormData = \"FormData\";\n\nUPLOAD_EVENTS = [\"load\", \"loadend\", \"loadstart\"];\n\nCOMMON_EVENTS = [\"progress\", \"abort\", \"error\", \"timeout\"];\n\nmsie = parseInt(\n (/msie (\\d+)/.exec(navigator.userAgent.toLowerCase()) || [])[1]\n);\n\nif (isNaN(msie)) {\n msie = parseInt(\n (/trident\\/.*; rv:(\\d+)/.exec(navigator.userAgent.toLowerCase()) || [])[1]\n );\n}\n\n(_base = Array.prototype).indexOf ||\n (_base.indexOf = function(item) {\n var i, x, _i, _len;\n for (i = _i = 0, _len = this.length; _i < _len; i = ++_i) {\n x = this[i];\n if (x === item) {\n return i;\n }\n }\n return -1;\n });\n\nslice = function(o, n) {\n return Array.prototype.slice.call(o, n);\n};\n\ndepricatedProp = function(p) {\n return p === \"returnValue\" || p === \"totalSize\" || p === \"position\";\n};\n\nmergeObjects = function(src, dst) {\n var k, v;\n for (k in src) {\n v = src[k];\n if (depricatedProp(k)) {\n continue;\n }\n try {\n dst[k] = src[k];\n } catch (_error) {}\n }\n return dst;\n};\n\nproxyEvents = function(events, src, dst) {\n var event, p, _i, _len;\n p = function(event) {\n return function(e) {\n var clone, k, val;\n clone = {};\n for (k in e) {\n if (depricatedProp(k)) {\n continue;\n }\n val = e[k];\n clone[k] = val === src ? dst : val;\n }\n return dst[FIRE](event, clone);\n };\n };\n for (_i = 0, _len = events.length; _i < _len; _i++) {\n event = events[_i];\n if (dst._has(event)) {\n src[\"on\" + event] = p(event);\n }\n }\n};\n\nfakeEvent = function(type) {\n var msieEventObject;\n if (document.createEventObject != null) {\n msieEventObject = document.createEventObject();\n msieEventObject.type = type;\n return msieEventObject;\n } else {\n try {\n return new Event(type);\n } catch (_error) {\n return {\n type: type\n };\n }\n }\n};\n\nEventEmitter = function(nodeStyle) {\n var emitter, events, listeners;\n events = {};\n listeners = function(event) {\n return events[event] || [];\n };\n emitter = {};\n emitter[ON] = function(event, callback, i) {\n events[event] = listeners(event);\n if (events[event].indexOf(callback) >= 0) {\n return;\n }\n i = i === undefined ? events[event].length : i;\n events[event].splice(i, 0, callback);\n };\n emitter[OFF] = function(event, callback) {\n var i;\n if (event === undefined) {\n events = {};\n return;\n }\n if (callback === undefined) {\n events[event] = [];\n }\n i = listeners(event).indexOf(callback);\n if (i === -1) {\n return;\n }\n listeners(event).splice(i, 1);\n };\n emitter[FIRE] = function() {\n var args, event, i, legacylistener, listener, _i, _len, _ref;\n args = slice(arguments);\n event = args.shift();\n if (!nodeStyle) {\n args[0] = mergeObjects(args[0], fakeEvent(event));\n }\n legacylistener = emitter[\"on\" + event];\n if (legacylistener) {\n legacylistener.apply(emitter, args);\n }\n _ref = listeners(event).concat(listeners(\"*\"));\n for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {\n listener = _ref[i];\n listener.apply(emitter, args);\n }\n };\n emitter._has = function(event) {\n return !!(events[event] || emitter[\"on\" + event]);\n };\n if (nodeStyle) {\n emitter.listeners = function(event) {\n return slice(listeners(event));\n };\n emitter.on = emitter[ON];\n emitter.off = emitter[OFF];\n emitter.fire = emitter[FIRE];\n emitter.once = function(e, fn) {\n var fire;\n fire = function() {\n emitter.off(e, fire);\n return fn.apply(null, arguments);\n };\n return emitter.on(e, fire);\n };\n emitter.destroy = function() {\n return (events = {});\n };\n }\n return emitter;\n};\n\nxhook = EventEmitter(true);\n\nxhook.EventEmitter = EventEmitter;\n\nxhook[BEFORE] = function(handler, i) {\n if (handler.length < 1 || handler.length > 2) {\n throw \"invalid hook\";\n }\n return xhook[ON](BEFORE, handler, i);\n};\n\nxhook[AFTER] = function(handler, i) {\n if (handler.length < 2 || handler.length > 3) {\n throw \"invalid hook\";\n }\n return xhook[ON](AFTER, handler, i);\n};\n\nxhook.enable = function() {\n window[XMLHTTP] = XHookHttpRequest;\n if (NativeFormData) {\n window[FormData] = XHookFormData;\n }\n};\n\nxhook.disable = function() {\n window[XMLHTTP] = xhook[XMLHTTP];\n if (NativeFormData) {\n window[FormData] = NativeFormData;\n }\n};\n\nconvertHeaders = xhook.headers = function(h, dest) {\n var header, headers, k, name, v, value, _i, _len, _ref;\n if (dest == null) {\n dest = {};\n }\n switch (typeof h) {\n case \"object\":\n headers = [];\n for (k in h) {\n v = h[k];\n name = k.toLowerCase();\n headers.push(\"\" + name + \":\\t\" + v);\n }\n return headers.join(\"\\n\");\n case \"string\":\n headers = h.split(\"\\n\");\n for (_i = 0, _len = headers.length; _i < _len; _i++) {\n header = headers[_i];\n if (/([^:]+):\\s*(.+)/.test(header)) {\n name = (_ref = RegExp.$1) != null ? _ref.toLowerCase() : void 0;\n value = RegExp.$2;\n if (dest[name] == null) {\n dest[name] = value;\n }\n }\n }\n return dest;\n }\n};\n\nNativeFormData = window[FormData];\n\nXHookFormData = function(form) {\n var entries;\n this.fd = form ? new NativeFormData(form) : new NativeFormData();\n this.form = form;\n entries = [];\n Object.defineProperty(this, \"entries\", {\n get: function() {\n var fentries;\n fentries = !form\n ? []\n : slice(form.querySelectorAll(\"input,select\"))\n .filter(function(e) {\n var _ref;\n return (\n ((_ref = e.type) !== \"checkbox\" && _ref !== \"radio\") ||\n e.checked\n );\n })\n .map(function(e) {\n return [e.name, e.type === \"file\" ? e.files : e.value];\n });\n return fentries.concat(entries);\n }\n });\n this.append = (function(_this) {\n return function() {\n var args;\n args = slice(arguments);\n entries.push(args);\n return _this.fd.append.apply(_this.fd, args);\n };\n })(this);\n};\n\nif (NativeFormData) {\n xhook[FormData] = NativeFormData;\n window[FormData] = XHookFormData;\n}\n\nNativeXMLHttp = window[XMLHTTP];\n\nxhook[XMLHTTP] = NativeXMLHttp;\n\nXHookHttpRequest = window[XMLHTTP] = function() {\n var ABORTED,\n currentState,\n emitFinal,\n emitReadyState,\n event,\n facade,\n hasError,\n hasErrorHandler,\n readBody,\n readHead,\n request,\n response,\n setReadyState,\n status,\n transiting,\n writeBody,\n writeHead,\n xhr,\n _i,\n _len,\n _ref;\n ABORTED = -1;\n xhr = new xhook[XMLHTTP]();\n request = {};\n status = null;\n hasError = void 0;\n transiting = void 0;\n response = void 0;\n readHead = function() {\n var key, name, val, _ref;\n response.status = status || xhr.status;\n if (!(status === ABORTED && msie < 10)) {\n response.statusText = xhr.statusText;\n }\n if (status !== ABORTED) {\n _ref = convertHeaders(xhr.getAllResponseHeaders());\n for (key in _ref) {\n val = _ref[key];\n if (!response.headers[key]) {\n name = key.toLowerCase();\n response.headers[name] = val;\n }\n }\n }\n };\n readBody = function() {\n if (!xhr.responseType || xhr.responseType === \"text\") {\n response.text = xhr.responseText;\n response.data = xhr.responseText;\n } else if (xhr.responseType === \"document\") {\n response.xml = xhr.responseXML;\n response.data = xhr.responseXML;\n } else {\n response.data = xhr.response;\n }\n if (\"responseURL\" in xhr) {\n response.finalUrl = xhr.responseURL;\n }\n };\n writeHead = function() {\n facade.status = response.status;\n facade.statusText = response.statusText;\n };\n writeBody = function() {\n if (\"text\" in response) {\n facade.responseText = response.text;\n }\n if (\"xml\" in response) {\n facade.responseXML = response.xml;\n }\n if (\"data\" in response) {\n facade.response = response.data;\n }\n if (\"finalUrl\" in response) {\n facade.responseURL = response.finalUrl;\n }\n };\n emitReadyState = function(n) {\n while (n > currentState && currentState < 4) {\n facade[READY_STATE] = ++currentState;\n if (currentState === 1) {\n facade[FIRE](\"loadstart\", {});\n }\n if (currentState === 2) {\n writeHead();\n }\n if (currentState === 4) {\n writeHead();\n writeBody();\n }\n facade[FIRE](\"readystatechange\", {});\n if (currentState === 4) {\n setTimeout(emitFinal, 0);\n }\n }\n };\n emitFinal = function() {\n if (!hasError) {\n facade[FIRE](\"load\", {});\n }\n facade[FIRE](\"loadend\", {});\n if (hasError) {\n facade[READY_STATE] = 0;\n }\n };\n currentState = 0;\n setReadyState = function(n) {\n var hooks, process;\n if (n !== 4) {\n emitReadyState(n);\n return;\n }\n hooks = xhook.listeners(AFTER);\n process = function() {\n var hook;\n if (!hooks.length) {\n return emitReadyState(4);\n }\n hook = hooks.shift();\n if (hook.length === 2) {\n hook(request, response);\n return process();\n } else if (hook.length === 3 && request.async) {\n return hook(request, response, process);\n } else {\n return process();\n }\n };\n process();\n };\n facade = request.xhr = EventEmitter();\n xhr.onreadystatechange = function(event) {\n try {\n if (xhr[READY_STATE] === 2) {\n readHead();\n }\n } catch (_error) {}\n if (xhr[READY_STATE] === 4) {\n transiting = false;\n readHead();\n readBody();\n }\n setReadyState(xhr[READY_STATE]);\n };\n hasErrorHandler = function() {\n hasError = true;\n };\n facade[ON](\"error\", hasErrorHandler);\n facade[ON](\"timeout\", hasErrorHandler);\n facade[ON](\"abort\", hasErrorHandler);\n facade[ON](\"progress\", function() {\n if (currentState < 3) {\n setReadyState(3);\n } else {\n facade[FIRE](\"readystatechange\", {});\n }\n });\n if (\"withCredentials\" in xhr || xhook.addWithCredentials) {\n facade.withCredentials = false;\n }\n facade.status = 0;\n _ref = COMMON_EVENTS.concat(UPLOAD_EVENTS);\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n event = _ref[_i];\n facade[\"on\" + event] = null;\n }\n facade.open = function(method, url, async, user, pass) {\n currentState = 0;\n hasError = false;\n transiting = false;\n request.headers = {};\n request.headerNames = {};\n request.status = 0;\n response = {};\n response.headers = {};\n request.method = method;\n request.url = url;\n request.async = async !== false;\n request.user = user;\n request.pass = pass;\n setReadyState(1);\n };\n facade.send = function(body) {\n var hooks, k, modk, process, send, _j, _len1, _ref1;\n _ref1 = [\"type\", \"timeout\", \"withCredentials\"];\n for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {\n k = _ref1[_j];\n modk = k === \"type\" ? \"responseType\" : k;\n if (modk in facade) {\n request[k] = facade[modk];\n }\n }\n request.body = body;\n send = function() {\n var header, value, _k, _len2, _ref2, _ref3;\n proxyEvents(COMMON_EVENTS, xhr, facade);\n if (facade.upload) {\n proxyEvents(\n COMMON_EVENTS.concat(UPLOAD_EVENTS),\n xhr.upload,\n facade.upload\n );\n }\n transiting = true;\n xhr.open(\n request.method,\n request.url,\n request.async,\n request.user,\n request.pass\n );\n _ref2 = [\"type\", \"timeout\", \"withCredentials\"];\n for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) {\n k = _ref2[_k];\n modk = k === \"type\" ? \"responseType\" : k;\n if (k in request) {\n xhr[modk] = request[k];\n }\n }\n _ref3 = request.headers;\n for (header in _ref3) {\n value = _ref3[header];\n if (header) {\n xhr.setRequestHeader(header, value);\n }\n }\n if (request.body instanceof XHookFormData) {\n request.body = request.body.fd;\n }\n xhr.send(request.body);\n };\n hooks = xhook.listeners(BEFORE);\n process = function() {\n var done, hook;\n if (!hooks.length) {\n return send();\n }\n done = function(userResponse) {\n if (\n typeof userResponse === \"object\" &&\n (typeof userResponse.status === \"number\" ||\n typeof response.status === \"number\")\n ) {\n mergeObjects(userResponse, response);\n if (__indexOf.call(userResponse, \"data\") < 0) {\n userResponse.data = userResponse.response || userResponse.text;\n }\n setReadyState(4);\n return;\n }\n process();\n };\n done.head = function(userResponse) {\n mergeObjects(userResponse, response);\n return setReadyState(2);\n };\n done.progress = function(userResponse) {\n mergeObjects(userResponse, response);\n return setReadyState(3);\n };\n hook = hooks.shift();\n if (hook.length === 1) {\n return done(hook(request));\n } else if (hook.length === 2 && request.async) {\n return hook(request, done);\n } else {\n return done();\n }\n };\n process();\n };\n facade.abort = function() {\n status = ABORTED;\n if (transiting) {\n xhr.abort();\n } else {\n facade[FIRE](\"abort\", {});\n }\n };\n facade.setRequestHeader = function(header, value) {\n var lName, name;\n lName = header != null ? header.toLowerCase() : void 0;\n name = request.headerNames[lName] = request.headerNames[lName] || header;\n if (request.headers[name]) {\n value = request.headers[name] + \", \" + value;\n }\n request.headers[name] = value;\n };\n facade.getResponseHeader = function(header) {\n var name;\n name = header != null ? header.toLowerCase() : void 0;\n return response.headers[name];\n };\n facade.getAllResponseHeaders = function() {\n return convertHeaders(response.headers);\n };\n if (xhr.overrideMimeType) {\n facade.overrideMimeType = function() {\n return xhr.overrideMimeType.apply(xhr, arguments);\n };\n }\n if (xhr.upload) {\n facade.upload = request.upload = EventEmitter();\n }\n return facade;\n};\n\nmodule.exports = xhook;\n","const config = o => {\n if (o) {\n if (o.masters) {\n config.masters(o.masters);\n }\n if (o.slaves) {\n config.slaves(o.slaves);\n }\n }\n};\n\n//default config\nconfig.debug = false;\nconfig.timeout = 15e3;\nconfig.cookies = {\n master: \"Master-Cookie\",\n slave: \"Slave-Cookie\"\n};\n//extras are also attached to config\n\nmodule.exports = config;\n","const xhook = require(\"../vendor/xhook\");\n\nconst config = require(\"./config\");\n\nexports.COMPAT_VERSION = \"V1\";\n\nconst { location } = window;\nexports.currentOrigin = location.protocol + \"//\" + location.host;\nconfig.origin = exports.currentOrigin;\n\n//emits 'warn' 'log' and 'timeout' events\nexports.globalEmitter = xhook.EventEmitter(true);\n\nexports.console = window.console || {};\n\nlet counter = 0;\nexports.guid = () => {\n if (counter >= 1e6) counter = 0;\n let n = String(++counter);\n while (n.length < 6) n = \"0\" + n;\n return `xdomain-${n}`;\n};\n\nexports.slice = (o, n) => {\n return Array.prototype.slice.call(o, n);\n};\n\n//create a logger of type\nconst newLogger = type => {\n return msg => {\n msg = `xdomain (${exports.currentOrigin}): ${msg}`;\n //emit event\n exports.globalEmitter.fire(type, msg);\n //skip logs when debug isnt enabled\n if (type === \"log\" && !config.debug) {\n return;\n }\n //user provided log/warn functions\n if (type in config) {\n config[type](msg);\n //fallback console\n } else if (type in console) {\n console[type](msg);\n //fallbackback alert\n } else if (type === \"warn\") {\n alert(msg);\n }\n };\n};\n\nexports.log = newLogger(\"log\");\nexports.warn = newLogger(\"warn\");\n\nexports.instOf = (obj, global) => {\n return global in window && obj instanceof window[global];\n};\n\n//absolute url parser (relative urls aren't crossdomain)\nexports.parseUrl = url => {\n if (/^((https?:)?\\/\\/[^\\/\\?]+)(\\/.*)?/.test(url)) {\n return {\n origin: (RegExp.$2 ? \"\" : location.protocol) + RegExp.$1,\n path: RegExp.$3\n };\n } else {\n exports.log(`failed to parse absolute url: ${url}`);\n return null;\n }\n};\nconfig.parseUrl = exports.parseUrl;\n\nexports.toRegExp = obj => {\n if (obj instanceof RegExp) {\n return obj;\n }\n const str = obj\n .toString()\n .replace(/\\W/g, str => `\\\\${str}`)\n .replace(/\\\\\\*/g, \".*\");\n return new RegExp(`^${str}$`);\n};\n\n//strip functions and objects from an object\nexports.strip = src => {\n const dst = {};\n for (let k in src) {\n if (k === \"returnValue\") {\n continue;\n }\n const v = src[k];\n const t = typeof v;\n if (t !== \"function\" && t !== \"object\") {\n dst[k] = v;\n }\n }\n return dst;\n};\n","const xhook = require(\"../vendor/xhook\");\nconst config = require(\"./config\");\nconst {\n log,\n warn,\n toRegExp,\n strip,\n parseUrl,\n COMPAT_VERSION\n} = require(\"./util\");\n\n//when you add masters, this node\n//enables slave listeners\n\nlet enabled = false;\nlet masters = {};\n\nexports.addMasters = config => {\n //validate iframe\n if (window === window.parent) {\n warn(\"slaves must be in an iframe\");\n return;\n }\n //enable slave handler\n if (!enabled) {\n enabled = true;\n log(\"now handling incoming sockets...\");\n window.parent.postMessage(`XDPING_${COMPAT_VERSION}`, \"*\");\n }\n //white-list the provided set of masters\n for (let origin in config) {\n let path = config[origin];\n if (origin === \"file://\" && path !== \"*\") {\n warn(`file protocol only supports the * path`);\n path = \"*\";\n }\n log(`adding master: ${origin}`);\n masters[origin] = path;\n }\n};\n\nconfig.masters = exports.addMasters;\n\nexports.handleSocket = (origin, socket) => {\n if (!enabled) {\n return;\n }\n //null means no origin can be determined,\n //this is true for file:// and data:// URIs.\n //html data:// URI are now blocked, they can\n //only be copy-and-pasted into the URL bar.\n if (origin === \"null\" || origin === \"file:\") {\n origin = \"file://\";\n }\n log(`handle socket for \"${origin}\"`);\n let pathRegex = null;\n for (let master in masters) {\n const regex = masters[master];\n try {\n const masterRegex = toRegExp(master);\n if (masterRegex.test(origin)) {\n pathRegex = toRegExp(regex);\n break;\n }\n } catch (error) {}\n }\n if (!pathRegex) {\n warn(`blocked request from: '${origin}'`);\n return;\n }\n socket.once(\"request\", function(req) {\n log(`request: ${req.method} ${req.url}`);\n const p = parseUrl(req.url);\n if (!p || !pathRegex.test(p.path)) {\n warn(`blocked request to path: '${p.path}' by regex: ${pathRegex}`);\n socket.close();\n return;\n }\n //perform real XHR here!\n //pass results to the socket\n const xhr = new XMLHttpRequest();\n xhr.open(req.method, req.url);\n xhr.addEventListener(\"*\", e => socket.emit(\"xhr-event\", e.type, strip(e)));\n if (xhr.upload) {\n xhr.upload.addEventListener(\"*\", e =>\n socket.emit(\"xhr-upload-event\", e.type, strip(e))\n );\n }\n xhr.onreadystatechange = function() {\n if (xhr.readyState !== 4) {\n return;\n }\n //extract properties\n const resp = {\n status: xhr.status,\n statusText: xhr.statusText,\n data: xhr.response,\n headers: xhook.headers(xhr.getAllResponseHeaders())\n };\n try {\n resp.text = xhr.responseText;\n } catch (error1) {}\n // XML over postMessage not supported\n // try resp.xml = xhr.responseXML\n return socket.emit(\"response\", resp);\n };\n //allow aborts from the facade\n socket.once(\"abort\", () => xhr.abort());\n // document.cookie (Cookie header) can't be set inside an iframe\n // as many browsers have 3rd party cookies disabled. slaveCookie\n // contains the 'xdomain.cookie.slave' string set on the master.\n if (req.withCredentials) {\n xhr.withCredentials = true;\n if (req.slaveCookie) {\n req.headers[req.slaveCookie] = document.cookie;\n }\n }\n if (req.timeout) {\n xhr.timeout = req.timeout;\n }\n if (req.type) {\n xhr.responseType = req.type;\n }\n for (let k in req.headers) {\n const v = req.headers[k];\n xhr.setRequestHeader(k, v);\n }\n //deserialize FormData\n if (req.body instanceof Array && req.body[0] === \"XD_FD\") {\n const fd = new xhook.FormData();\n const entries = req.body[1];\n Array.from(entries).forEach(arg => {\n //deserialize blobs from arraybuffs\n //[0:marker, 1:real-args, 2:arraybuffer, 3:type]\n if (args[0] === \"XD_BLOB\" && args.length === 4) {\n const blob = new Blob([args[2]], { type: args[3] });\n args = args[1];\n args[1] = blob;\n }\n fd.append.apply(fd, args);\n });\n req.body = fd;\n }\n //fire off request\n xhr.send(req.body || null);\n });\n log(`slave listening for requests on socket: ${socket.id}`);\n};\n","const xhook = require(\"../vendor/xhook\");\n\nconst config = require(\"./config\");\nconst { globalEmitter, log, warn, COMPAT_VERSION } = require(\"./util\");\nconst { handleSocket } = require(\"./slave\");\n\n//constants\nconst CHECK_STRING = \"XD_CHECK\";\nconst CHECK_INTERVAL = 100;\n//state\nconst sockets = {};\nlet jsonEncode = true;\n\n//a 'sock' is a two-way event-emitter,\n//each side listens for messages with on()\n//and the other side sends messages with emit()\nexports.createSocket = (id, frame) => {\n let ready = false;\n const socket = xhook.EventEmitter(true);\n sockets[id] = socket;\n socket.id = id;\n socket.once(\"close\", function() {\n socket.destroy();\n socket.close();\n });\n const pendingEmits = [];\n socket.emit = function(...args) {\n const extra = typeof args[1] === \"string\" ? ` -> ${args[1]}` : \"\";\n log(`send socket: ${id}: ${args[0]}${extra}`);\n args.unshift(id);\n if (ready) {\n emit(args);\n } else {\n pendingEmits.push(args);\n }\n };\n var emit = function(args) {\n //convert to string when necessary\n if (jsonEncode) {\n args = JSON.stringify(args);\n }\n //send!\n frame.postMessage(args, \"*\");\n };\n\n socket.close = function() {\n socket.emit(\"close\");\n log(`close socket: ${id}`);\n sockets[id] = null;\n };\n\n socket.once(CHECK_STRING, function(obj) {\n jsonEncode = typeof obj === \"string\";\n ready = socket.ready = true;\n socket.emit(\"ready\");\n log(`ready socket: ${id} (emit #${pendingEmits.length} pending)`);\n while (pendingEmits.length) {\n emit(pendingEmits.shift());\n }\n });\n\n //start checking connectivitiy\n let checks = 0;\n var check = () => {\n // send test message NO ENCODING\n frame.postMessage([id, CHECK_STRING, {}], \"*\");\n if (ready) {\n return;\n }\n if (checks++ >= config.timeout / CHECK_INTERVAL) {\n warn(\"Timeout waiting on iframe socket\");\n globalEmitter.fire(\"timeout\");\n socket.fire(\"abort\"); //self-emit \"abort\"\n } else {\n log(`check again in ${CHECK_INTERVAL}ms...`);\n setTimeout(check, CHECK_INTERVAL);\n }\n };\n setTimeout(check);\n\n log(`new socket: ${id}`);\n return socket;\n};\n\n//ONE WINDOW LISTENER!\n//double purpose:\n// creates new sockets by passing incoming events to the 'handler'\n// passes events to existing sockets (created by connect or by the server)\nexports.initialise = () => {\n const handle = e => {\n let d = e.data;\n //return if not a json string\n if (typeof d === \"string\") {\n //only old versions of xdomain send XPINGs...\n if (/^XDPING(_(V\\d+))?$/.test(d) && RegExp.$2 !== COMPAT_VERSION) {\n return warn(\n \"your master is not compatible with your slave, check your xdomain.js version\"\n );\n //IE will \"toString()\" the array, this reverses that action\n } else if (/^xdomain-/.test(d)) {\n d = d.split(\",\");\n //this browser must json encode postmessages\n } else if (jsonEncode) {\n try {\n d = JSON.parse(d);\n } catch (error) {\n return;\n }\n }\n }\n //return if not an array\n if (!(d instanceof Array)) {\n return;\n }\n //return unless lead by an xdomain id\n const id = d.shift();\n if (!/^xdomain-/.test(id)) {\n return;\n }\n //finally, create/get socket\n let socket = sockets[id];\n //closed\n if (socket === null) {\n return;\n }\n //needs creation\n if (socket === undefined) {\n //send unsolicited requests to the listening server\n if (!handleSocket) {\n return;\n }\n socket = exports.createSocket(id, e.source);\n handleSocket(e.origin, socket);\n }\n const extra = typeof d[1] === \"string\" ? ` -> ${d[1]}` : \"\";\n log(`receive socket: ${id}: ${d[0]}${extra}`);\n //emit data\n socket.fire.apply(socket, d);\n };\n if (document.addEventListener) {\n return window.addEventListener(\"message\", handle);\n } else {\n return window.attachEvent(\"onmessage\", handle);\n }\n};\n","const xhook = require(\"../vendor/xhook\");\nconst config = require(\"./config\");\nconst {\n currentOrigin,\n log,\n warn,\n parseUrl,\n guid,\n strip,\n instOf\n} = require(\"./util\");\nconst socketlib = require(\"./socket\");\nconst createSocket = socketlib.createSocket;\n\n//when you add slaves, this node\n//enables master listeners\n\nlet enabled = false;\nlet slaves = {};\n\nexports.addSlaves = newSlaves => {\n //register master xhook handler\n if (!enabled) {\n enabled = true;\n //unless already set, add withCredentials to xhrs to trick jquery\n //in older browsers into thinking cors is allowed\n if (!(\"addWithCredentials\" in xhook)) {\n xhook.addWithCredentials = true;\n }\n //hook XHR calls\n xhook.before(beforeXHR);\n }\n //include the provided set of slave\n for (let origin in newSlaves) {\n const path = newSlaves[origin];\n log(`adding slave: ${origin}`);\n slaves[origin] = path;\n }\n};\n\nconfig.slaves = exports.addSlaves;\n\nconst beforeXHR = function(request, callback) {\n //allow unless we have a slave domain\n const p = parseUrl(request.url);\n if (!p || p.origin === currentOrigin) {\n callback();\n return;\n }\n if (!slaves[p.origin]) {\n if (p) {\n log(`no slave matching: '${p.origin}'`);\n }\n callback();\n return;\n }\n log(`proxying request to slave: '${p.origin}'`);\n if (request.async === false) {\n warn(\"sync not supported because postmessage is async\");\n callback();\n return;\n }\n //get or insert frame\n const frame = getFrame(p.origin, slaves[p.origin]);\n //connect to slave\n const socket = createSocket(guid(), frame);\n //queue callback\n socket.on(\"response\", function(resp) {\n callback(resp);\n socket.close();\n });\n //user wants to abort\n request.xhr.addEventListener(\"abort\", () => socket.emit(\"abort\"));\n //kick off\n if (socket.ready) {\n handleRequest(request, socket);\n } else {\n socket.once(\"ready\", () => handleRequest(request, socket));\n }\n};\n\nconst frames = {};\nconst getFrame = function(origin, proxyPath) {\n //cache origin\n if (frames[origin]) {\n return frames[origin];\n }\n const frame = document.createElement(\"iframe\");\n frame.id = frame.name = guid();\n log(`creating iframe ${frame.id}`);\n frame.src = `${origin}${proxyPath}`;\n frame.setAttribute(\"style\", \"display:none;\");\n document.body.appendChild(frame);\n return (frames[origin] = frame.contentWindow);\n};\n\nconst convertToArrayBuffer = function(args, done) {\n const [name, obj] = Array.from(args);\n const isBlob = instOf(obj, \"Blob\");\n const isFile = instOf(obj, \"File\");\n if (!isBlob && !isFile) {\n return 0;\n }\n const reader = new FileReader();\n reader.onload = function() {\n // clear value\n args[1] = null;\n // formdata.append(name, value, **filename**)\n if (isFile) {\n args[2] = obj.name;\n }\n return done([\"XD_BLOB\", args, this.result, obj.type]);\n };\n reader.readAsArrayBuffer(obj);\n return 1;\n};\n\n//this FormData is actually XHooks custom FormData `fd`,\n//which exposes all `entries` added, where each entry\n//is the arguments object\nconst convertFormData = function(entries, send) {\n //expand FileList -> [File, File, File]\n entries.forEach(function(args, i) {\n const [name, value] = Array.from(args);\n if (instOf(value, \"FileList\")) {\n entries.splice(i, 1);\n Array.from(value).forEach(file => {\n entries.splice(i, 0, [name, file]);\n });\n }\n });\n //basically: async.parallel([filter:files], send)\n let c = 0;\n entries.forEach(function(args, i) {\n c += convertToArrayBuffer(args, function(newargs) {\n entries[i] = newargs;\n if (--c === 0) {\n send();\n }\n });\n });\n if (c === 0) {\n send();\n }\n};\n\nconst handleRequest = function(request, socket) {\n socket.on(\"xhr-event\", function() {\n return request.xhr.dispatchEvent.apply(null, arguments);\n });\n socket.on(\"xhr-upload-event\", function() {\n return request.xhr.upload.dispatchEvent.apply(null, arguments);\n });\n\n const obj = strip(request);\n obj.headers = request.headers;\n //add master cookie\n if (request.withCredentials) {\n if (config.cookies.master) {\n obj.headers[config.cookies.master] = document.cookie;\n }\n obj.slaveCookie = config.cookies.slave;\n }\n\n const send = () => socket.emit(\"request\", obj);\n\n if (request.body) {\n obj.body = request.body;\n //async serialize formdata\n if (instOf(obj.body, \"FormData\")) {\n const { entries } = obj.body;\n obj.body = [\"XD_FD\", entries];\n convertFormData(entries, send);\n return;\n }\n }\n send();\n};\n","const config = require(\"./config\");\nconst { parseUrl } = require(\"./util\");\nconst { addSlaves } = require(\"./master\");\nconst { addMasters } = require(\"./slave\");\nconst { document } = window;\n//auto init using attributes\nexports.initialise = function() {\n //attribute handlers\n const attrs = {\n debug(value) {\n config.debug = value !== \"false\";\n },\n slave(value) {\n const p = parseUrl(value);\n if (!p) {\n return;\n }\n const s = {};\n s[p.origin] = p.path;\n addSlaves(s);\n },\n master(value) {\n let p;\n if (value === \"*\") {\n p = { origin: \"*\", path: \"*\" };\n } else if (value === \"file://*\") {\n p = { origin: \"file://\", path: \"*\" };\n } else {\n p = parseUrl(value);\n }\n if (!p) {\n return;\n }\n const m = {};\n m[p.origin] = p.path.replace(/^\\//, \"\") ? p.path : \"*\";\n addMasters(m);\n }\n };\n //find all script tags referencing 'xdomain' and then\n //find all attributes with handlers registered\n Array.from(document.getElementsByTagName(\"script\")).forEach(script => {\n if (!/xdomain/.test(script.src)) {\n return;\n }\n [\"\", \"data-\"].forEach(prefix => {\n for (let k in attrs) {\n const value = script.getAttribute(prefix + k);\n if (value) {\n const fn = attrs[k];\n fn(value);\n }\n }\n });\n });\n};\n","\"use strict\";\n\n//feature detect\nconst { warn } = require(\"./lib/util\");\n[\"postMessage\", \"JSON\"].forEach(feature => {\n if (!window[feature]) {\n warn(`requires '${feature}' and this browser does not support it`);\n }\n});\n\n//init socket (post message mini-library)\nconst socket = require(\"./lib/socket\");\nsocket.initialise();\n\n//initialise script (load config from script tag)\nconst script = require(\"./lib/script\");\nscript.initialise();\n\n//public api\nconst initialise = require(\"./lib/config\");\n//config is also the primary intialise function\nmodule.exports = initialise;\n","if (!Array.from) {\n Array.from = require(\"array.from\").getPolyfill();\n}\nconst xhook = require(\"./vendor/xhook\");\nwindow.xhook = xhook;\nconst xdomain = require(\"./index\");\nwindow.xdomain = xdomain;\n"]}