{"version":3,"sources":["webpack://[name]/./node_modules/post-robot/index.js","webpack://[name]/./node_modules/post-robot/dist/post-robot.js","webpack://[name]/./node_modules/@theidentityselector/js-storage/js.storage.js"],"names":["module","exports","require","factory","self","modules","installedModules","__webpack_require__","moduleId","i","l","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","hasOwnProperty","p","s","__webpack_exports__","isRegex","item","toString","promise_ZalgoPromise","src_types_TYPES_0","window_ProxyWindow","setup","destroy","setup_serializeMessage","setup_deserializeMessage","createProxyWindow","setup_toProxyWindow","on_on","on_once","send_send","markWindowKnown","cleanUpWindow","IE_WIN_ACCESS_ERROR","getActualProtocol","win","window","location","protocol","getProtocol","mockDomain","split","isAboutProtocol","getParent","parent","err","getOpener","opener","canReadFromWindow","getActualDomain","Error","host","getDomain","domain","indexOf","isSameDomain","desc","getOwnPropertyDescriptor","assertSameDomain","isAncestorParent","child","childParent","result","push","getFrames","frames","len","length","frame","_i","_frame","iframeWindows","iframeFrames","isWindowClosed","allowMock","closed","message","mockclosed","top","iframeIndex","collection","contentWindow","parentNode","doc","ownerDocument","documentElement","contains","getAncestor","matchDomain","pattern","origin","Array","isArray","Boolean","match","JSON","stringify","some","subpattern","isWindow","obj","Window","__cross_domain_utils_window_check__","getFrameForWindow","frameElement","_i21","_document$querySelect2","document","querySelectorAll","closeWindow","parentElement","removeChild","close","utils_isPromise","Promise","constructor","_toString","then","flushPromise","dispatchedErrors","possiblyUnhandledPromiseHandlers","activeCount","flushActive","promise","resolve","startActive","endActive","ZalgoPromise","handler","_this","this","resolved","rejected","errorHandled","error","handlers","dispatching","stack","_result","_error","isAsync","res","reject","_proto","prototype","dispatch","_this2","_err","setTimeout","j","asyncReject","chain","firstPromise","secondPromise","_handlers$i","onSuccess","onError","_result2","promiseResult","onFinally","timeout","time","_this3","clearTimeout","toPromise","TypeError","lazy","all","promises","count","results","slice","prom","hash","awaitPromises","_loop","map","items","method","onPossiblyUnhandledException","cancel","splice","context","args","apply","delay","_delay","isPromise","flush","Zalgo","util_safeIndexOf","objectIDs","weakmap_CrossDomainSafeWeakMap","CrossDomainSafeWeakMap","weakmap","keys","values","Math","random","WeakMap","freeze","testWeakMap","testKey","set","_cleanupClosedWindows","isSafeToReadWrite","entry","writable","index","has","getOrSet","getFunctionName","fn","__name__","displayName","setFunctionName","uniqueID","chars","replace","charAt","floor","str","btoa","encodeURIComponent","p1","String","fromCharCode","parseInt","Buffer","from","Date","toISOString","toLowerCase","serializeArgs","subkey","val","uid","Element","nodeType","style","getEmptyObject","memoizeGlobalIndex","memoizeGlobalIndexValidFrom","memoize","options","simpleCache","thisCache","_options$thisNamespac","thisNamespace","cacheTime","memoizeIndex","memoizedFunction","_len","arguments","_key","cache","cacheKey","_unused","cacheResult","now","reset","memoizePromise","memoizedPromiseFunction","_arguments","_len2","_key2","src_util_noop","stringifyError","level","newErr","util_isRegex","util_getOrSet","getBody","body","isDocumentReady","readyState","isDocumentInteractive","clear","interval","setInterval","clearInterval","currentScript","getCurrentScript","stackDetails","exec","scriptLocation","_i22","_Array$prototype$slic2","getElementsByTagName","reverse","script","src","currentUID","global_getGlobal","globalKey","getAttribute","hashedString","total","charCodeAt","abs","dataset","setAttribute","getObj","globalStore","defStore","store","storeKey","defVal","del","_SERIALIZER","WildCard","getWildcard","global","WINDOW_WILDCARD","windowStore","winStore","getStore","getInstanceID","resolveHelloPromise","_ref","helloPromises","existingPromise","newPromise","sayHello","_ref4","send","instanceID","_ref5","data","getWindowInstanceID","_ref6","_ref7","isSerializedType","__type__","determineType","serializeType","type","__val__","_DESERIALIZER","SERIALIZER","code","regex","source","date","toJSON","array","string","number","defaultSerializers","DESERIALIZER","_ref2","RegExp","defaultDeserializers","cleanupProxyWindows","idToProxyWindow","_i2","_idToProxyWindow$keys2","id","shouldClean","getSerializedWindow","winPromise","_ref$id","windowNamePromise","windowTypePromise","getName","getType","focus","isClosed","setLocation","href","opts","_opts$method","_ref3","url","target","_ref3$method","form","createElement","display","_i24","_Object$keys4","_body$key","input","appendChild","submit","setName","sameDomain","ProxyWindow","serializedWindow","isProxyWindow","actualWindow","actualWindowPromise","getID","setWindow","isPopup","_this4","isPopupPromise","getNamePromise","reopenPromise","open","focusPromise","getWindow","awaitWindow","matchWindow","_this5","proxyInstanceID","knownWindowInstanceID","unwrap","serialize","toProxyWindow","deserialize","_ref8","_ref9","addMethod","methodStore","proxyWindowMethods","lookupMethod","function_serializeFunction","destination","on","meth","methodSource","arg","join","__id__","serializeMessage","_serialize","serializers","serializer","deserializeMessage","_deserialize","deserializers","parse","deserializer","cross_domain_zalgo_promise","serializedPromise","cross_domain_function","serializedFunction","getDeserializedFunction","crossDomainFunctionWrapper","_args","fireAndForget","__origin__","__source__","cross_domain_window","SEND_MESSAGE_STRATEGIES","send_sendMessage","domainBuffer","buffer","serializedMessage","__post_robot_10_0_46__","strategies","errors","strategyName","getResponseListener","deleteResponseListener","isResponseListenerErrored","getRequestListener","requestListeners","_i4","winQualifier","nameListeners","domainListeners","__domain_regex__","_i6","_domainListeners$__DO2","_domainListeners$__DO3","listener","handleRequest","logName","sendResponse","ack","pathname","handleError","handleAck","handleResponse","receive_receiveMessage","event","receivedMessages","messages","parsedMessage","parseMessages","requestListener","addRequestListener","winCandidate","requestListenerPromise","actualWin","listenersCollection","_i8","_win2","_i10","_listenersCollection","_i12","_domain2","_i14","existingListener","strDomain","winNameDomainRegexListeners","winNameDomainRegexListener","winNameListeners","winNameDomainListeners","errorHandler","postrobot_post_message","postMessage","winOrProxyWin","domainMatcher","responseTimeout","childTimeout","actualParent","_i7","_getAllChildFrames4","getAllChildFrames","_i3","_getFrames2","_i5","_getAllChildFrames2","_i15","_getFrames8","_temp","targetDomain","actualDomain","normalizedDomain","responseListener","reqPromises","totalAckTimeout","totalResTimeout","ackTimeout","resTimeout","loop","cancelled","max","initialized","receiveMessage","sourceElement","originalEvent","addEventListener","removeEventListener","responseListeners","_responseListeners$ke2","_requestPromises$get2","define","registeredInModuleLoader","OldStorages","Storages","api","noConflict","class2type","hasOwn","fnToString","ObjectFunctionString","getProto","getPrototypeOf","apis","_get","vi","ret","tmp","storage","_type","a","a0","getItem","e","ReferenceError","undefined","_set","a1","to_store","isNaN","_isPlainObject","alwaysUseJson","setItem","_remove","removeItem","_removeAll","reinit_ns","_keys","namespaceStorages","_createNamespace","_isEmpty","v","_isEmptyObject","_isSet","_cookie","cookies","Cookies","_prefix","storage_available","localStorage","sessionStorage","localCookieStorage","sessionCookieStorage","_extend","_ns","cookies_available","cookieStorage","proto","Ctor","attributes","_testStorage","_callMethod","f","shift","unshift","remove","removeAll","isEmpty","isSet","cookie_storage","_expires","_path","_domain","expires","path","setExpires","setPath","setDomain","setConf","setDefaultConf","initNamespaceStorage","removeAllStorages","alwaysUseJsonInStorage"],"mappings":"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","file":"vendors~ps.0c088da65e7fb4f40a8c.js","sourcesContent":["/* @flow */\n\n// $FlowFixMe\nmodule.exports = require('./dist/post-robot'); // eslint-disable-line import/no-commonjs\n\n// $FlowFixMe\nmodule.exports.default = module.exports; // eslint-disable-line import/no-commonjs\n","!function(root, factory) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = factory() : \"function\" == typeof define && define.amd ? define(\"postRobot\", [], factory) : \"object\" == typeof exports ? exports.postRobot = factory() : root.postRobot = factory();\n}(\"undefined\" != typeof self ? self : this, (function() {\n return function(modules) {\n var installedModules = {};\n function __webpack_require__(moduleId) {\n if (installedModules[moduleId]) return installedModules[moduleId].exports;\n var module = installedModules[moduleId] = {\n i: moduleId,\n l: !1,\n exports: {}\n };\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n module.l = !0;\n return module.exports;\n }\n __webpack_require__.m = modules;\n __webpack_require__.c = installedModules;\n __webpack_require__.d = function(exports, name, getter) {\n __webpack_require__.o(exports, name) || Object.defineProperty(exports, name, {\n enumerable: !0,\n get: getter\n });\n };\n __webpack_require__.r = function(exports) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(exports, Symbol.toStringTag, {\n value: \"Module\"\n });\n Object.defineProperty(exports, \"__esModule\", {\n value: !0\n });\n };\n __webpack_require__.t = function(value, mode) {\n 1 & mode && (value = __webpack_require__(value));\n if (8 & mode) return value;\n if (4 & mode && \"object\" == typeof value && value && value.__esModule) return value;\n var ns = Object.create(null);\n __webpack_require__.r(ns);\n Object.defineProperty(ns, \"default\", {\n enumerable: !0,\n value: value\n });\n if (2 & mode && \"string\" != typeof value) for (var key in value) __webpack_require__.d(ns, key, function(key) {\n return value[key];\n }.bind(null, key));\n return ns;\n };\n __webpack_require__.n = function(module) {\n var getter = module && module.__esModule ? function() {\n return module.default;\n } : function() {\n return module;\n };\n __webpack_require__.d(getter, \"a\", getter);\n return getter;\n };\n __webpack_require__.o = function(object, property) {\n return {}.hasOwnProperty.call(object, property);\n };\n __webpack_require__.p = \"\";\n return __webpack_require__(__webpack_require__.s = 0);\n }([ function(module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n __webpack_require__.d(__webpack_exports__, \"Promise\", (function() {\n return promise_ZalgoPromise;\n }));\n __webpack_require__.d(__webpack_exports__, \"TYPES\", (function() {\n return src_types_TYPES_0;\n }));\n __webpack_require__.d(__webpack_exports__, \"ProxyWindow\", (function() {\n return window_ProxyWindow;\n }));\n __webpack_require__.d(__webpack_exports__, \"setup\", (function() {\n return setup;\n }));\n __webpack_require__.d(__webpack_exports__, \"destroy\", (function() {\n return destroy;\n }));\n __webpack_require__.d(__webpack_exports__, \"serializeMessage\", (function() {\n return setup_serializeMessage;\n }));\n __webpack_require__.d(__webpack_exports__, \"deserializeMessage\", (function() {\n return setup_deserializeMessage;\n }));\n __webpack_require__.d(__webpack_exports__, \"createProxyWindow\", (function() {\n return createProxyWindow;\n }));\n __webpack_require__.d(__webpack_exports__, \"toProxyWindow\", (function() {\n return setup_toProxyWindow;\n }));\n __webpack_require__.d(__webpack_exports__, \"on\", (function() {\n return on_on;\n }));\n __webpack_require__.d(__webpack_exports__, \"once\", (function() {\n return on_once;\n }));\n __webpack_require__.d(__webpack_exports__, \"send\", (function() {\n return send_send;\n }));\n __webpack_require__.d(__webpack_exports__, \"markWindowKnown\", (function() {\n return markWindowKnown;\n }));\n __webpack_require__.d(__webpack_exports__, \"cleanUpWindow\", (function() {\n return cleanUpWindow;\n }));\n __webpack_require__.d(__webpack_exports__, \"bridge\", (function() {}));\n function isRegex(item) {\n return \"[object RegExp]\" === {}.toString.call(item);\n }\n var IE_WIN_ACCESS_ERROR = \"Call was rejected by callee.\\r\\n\";\n function getActualProtocol(win) {\n void 0 === win && (win = window);\n return win.location.protocol;\n }\n function getProtocol(win) {\n void 0 === win && (win = window);\n if (win.mockDomain) {\n var protocol = win.mockDomain.split(\"//\")[0];\n if (protocol) return protocol;\n }\n return getActualProtocol(win);\n }\n function isAboutProtocol(win) {\n void 0 === win && (win = window);\n return \"about:\" === getProtocol(win);\n }\n function getParent(win) {\n void 0 === win && (win = window);\n if (win) try {\n if (win.parent && win.parent !== win) return win.parent;\n } catch (err) {}\n }\n function getOpener(win) {\n void 0 === win && (win = window);\n if (win && !getParent(win)) try {\n return win.opener;\n } catch (err) {}\n }\n function canReadFromWindow(win) {\n try {\n return !0;\n } catch (err) {}\n return !1;\n }\n function getActualDomain(win) {\n void 0 === win && (win = window);\n var location = win.location;\n if (!location) throw new Error(\"Can not read window location\");\n var protocol = getActualProtocol(win);\n if (!protocol) throw new Error(\"Can not read window protocol\");\n if (\"file:\" === protocol) return \"file://\";\n if (\"about:\" === protocol) {\n var parent = getParent(win);\n return parent && canReadFromWindow() ? getActualDomain(parent) : \"about://\";\n }\n var host = location.host;\n if (!host) throw new Error(\"Can not read window host\");\n return protocol + \"//\" + host;\n }\n function getDomain(win) {\n void 0 === win && (win = window);\n var domain = getActualDomain(win);\n return domain && win.mockDomain && 0 === win.mockDomain.indexOf(\"mock:\") ? win.mockDomain : domain;\n }\n function isSameDomain(win) {\n if (!function(win) {\n try {\n if (win === window) return !0;\n } catch (err) {}\n try {\n var desc = Object.getOwnPropertyDescriptor(win, \"location\");\n if (desc && !1 === desc.enumerable) return !1;\n } catch (err) {}\n try {\n if (isAboutProtocol(win) && canReadFromWindow()) return !0;\n } catch (err) {}\n try {\n if (function(win) {\n void 0 === win && (win = window);\n return \"mock:\" === getProtocol(win);\n }(win) && canReadFromWindow()) return !0;\n } catch (err) {}\n try {\n if (getActualDomain(win) === getActualDomain(window)) return !0;\n } catch (err) {}\n return !1;\n }(win)) return !1;\n try {\n if (win === window) return !0;\n if (isAboutProtocol(win) && canReadFromWindow()) return !0;\n if (getDomain(window) === getDomain(win)) return !0;\n } catch (err) {}\n return !1;\n }\n function assertSameDomain(win) {\n if (!isSameDomain(win)) throw new Error(\"Expected window to be same domain\");\n return win;\n }\n function isAncestorParent(parent, child) {\n if (!parent || !child) return !1;\n var childParent = getParent(child);\n return childParent ? childParent === parent : -1 !== function(win) {\n var result = [];\n try {\n for (;win.parent !== win; ) {\n result.push(win.parent);\n win = win.parent;\n }\n } catch (err) {}\n return result;\n }(child).indexOf(parent);\n }\n function getFrames(win) {\n var result = [];\n var frames;\n try {\n frames = win.frames;\n } catch (err) {\n frames = win;\n }\n var len;\n try {\n len = frames.length;\n } catch (err) {}\n if (0 === len) return result;\n if (len) {\n for (var i = 0; i < len; i++) {\n var frame = void 0;\n try {\n frame = frames[i];\n } catch (err) {\n continue;\n }\n result.push(frame);\n }\n return result;\n }\n for (var _i = 0; _i < 100; _i++) {\n var _frame = void 0;\n try {\n _frame = frames[_i];\n } catch (err) {\n return result;\n }\n if (!_frame) return result;\n result.push(_frame);\n }\n return result;\n }\n var iframeWindows = [];\n var iframeFrames = [];\n function isWindowClosed(win, allowMock) {\n void 0 === allowMock && (allowMock = !0);\n try {\n if (win === window) return !1;\n } catch (err) {\n return !0;\n }\n try {\n if (!win) return !0;\n } catch (err) {\n return !0;\n }\n try {\n if (win.closed) return !0;\n } catch (err) {\n return !err || err.message !== IE_WIN_ACCESS_ERROR;\n }\n if (allowMock && isSameDomain(win)) try {\n if (win.mockclosed) return !0;\n } catch (err) {}\n try {\n if (!win.parent || !win.top) return !0;\n } catch (err) {}\n var iframeIndex = function(collection, item) {\n for (var i = 0; i < collection.length; i++) try {\n if (collection[i] === item) return i;\n } catch (err) {}\n return -1;\n }(iframeWindows, win);\n if (-1 !== iframeIndex) {\n var frame = iframeFrames[iframeIndex];\n if (frame && function(frame) {\n if (!frame.contentWindow) return !0;\n if (!frame.parentNode) return !0;\n var doc = frame.ownerDocument;\n if (doc && doc.documentElement && !doc.documentElement.contains(frame)) {\n var parent = frame;\n for (;parent.parentNode && parent.parentNode !== parent; ) parent = parent.parentNode;\n if (!parent.host || !doc.documentElement.contains(parent.host)) return !0;\n }\n return !1;\n }(frame)) return !0;\n }\n return !1;\n }\n function getAncestor(win) {\n void 0 === win && (win = window);\n return getOpener(win = win || window) || getParent(win) || void 0;\n }\n function matchDomain(pattern, origin) {\n if (\"string\" == typeof pattern) {\n if (\"string\" == typeof origin) return \"*\" === pattern || origin === pattern;\n if (isRegex(origin)) return !1;\n if (Array.isArray(origin)) return !1;\n }\n return isRegex(pattern) ? isRegex(origin) ? pattern.toString() === origin.toString() : !Array.isArray(origin) && Boolean(origin.match(pattern)) : !!Array.isArray(pattern) && (Array.isArray(origin) ? JSON.stringify(pattern) === JSON.stringify(origin) : !isRegex(origin) && pattern.some((function(subpattern) {\n return matchDomain(subpattern, origin);\n })));\n }\n function isWindow(obj) {\n try {\n if (obj === window) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (\"[object Window]\" === {}.toString.call(obj)) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (window.Window && obj instanceof window.Window) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (obj && obj.self === obj) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (obj && obj.parent === obj) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (obj && obj.top === obj) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (obj && \"__unlikely_value__\" === obj.__cross_domain_utils_window_check__) return !1;\n } catch (err) {\n return !0;\n }\n try {\n if (\"postMessage\" in obj && \"self\" in obj && \"location\" in obj) return !0;\n } catch (err) {}\n return !1;\n }\n function getFrameForWindow(win) {\n if (isSameDomain(win)) return assertSameDomain(win).frameElement;\n for (var _i21 = 0, _document$querySelect2 = document.querySelectorAll(\"iframe\"); _i21 < _document$querySelect2.length; _i21++) {\n var frame = _document$querySelect2[_i21];\n if (frame && frame.contentWindow && frame.contentWindow === win) return frame;\n }\n }\n function closeWindow(win) {\n if (function(win) {\n void 0 === win && (win = window);\n return Boolean(getParent(win));\n }(win)) {\n var frame = getFrameForWindow(win);\n if (frame && frame.parentElement) {\n frame.parentElement.removeChild(frame);\n return;\n }\n }\n try {\n win.close();\n } catch (err) {}\n }\n function utils_isPromise(item) {\n try {\n if (!item) return !1;\n if (\"undefined\" != typeof Promise && item instanceof Promise) return !0;\n if (\"undefined\" != typeof window && \"function\" == typeof window.Window && item instanceof window.Window) return !1;\n if (\"undefined\" != typeof window && \"function\" == typeof window.constructor && item instanceof window.constructor) return !1;\n var _toString = {}.toString;\n if (_toString) {\n var name = _toString.call(item);\n if (\"[object Window]\" === name || \"[object global]\" === name || \"[object DOMWindow]\" === name) return !1;\n }\n if (\"function\" == typeof item.then) return !0;\n } catch (err) {\n return !1;\n }\n return !1;\n }\n var dispatchedErrors = [];\n var possiblyUnhandledPromiseHandlers = [];\n var activeCount = 0;\n var flushPromise;\n function flushActive() {\n if (!activeCount && flushPromise) {\n var promise = flushPromise;\n flushPromise = null;\n promise.resolve();\n }\n }\n function startActive() {\n activeCount += 1;\n }\n function endActive() {\n activeCount -= 1;\n flushActive();\n }\n var promise_ZalgoPromise = function() {\n function ZalgoPromise(handler) {\n var _this = this;\n this.resolved = void 0;\n this.rejected = void 0;\n this.errorHandled = void 0;\n this.value = void 0;\n this.error = void 0;\n this.handlers = void 0;\n this.dispatching = void 0;\n this.stack = void 0;\n this.resolved = !1;\n this.rejected = !1;\n this.errorHandled = !1;\n this.handlers = [];\n if (handler) {\n var _result;\n var _error;\n var resolved = !1;\n var rejected = !1;\n var isAsync = !1;\n startActive();\n try {\n handler((function(res) {\n if (isAsync) _this.resolve(res); else {\n resolved = !0;\n _result = res;\n }\n }), (function(err) {\n if (isAsync) _this.reject(err); else {\n rejected = !0;\n _error = err;\n }\n }));\n } catch (err) {\n endActive();\n this.reject(err);\n return;\n }\n endActive();\n isAsync = !0;\n resolved ? this.resolve(_result) : rejected && this.reject(_error);\n }\n }\n var _proto = ZalgoPromise.prototype;\n _proto.resolve = function(result) {\n if (this.resolved || this.rejected) return this;\n if (utils_isPromise(result)) throw new Error(\"Can not resolve promise with another promise\");\n this.resolved = !0;\n this.value = result;\n this.dispatch();\n return this;\n };\n _proto.reject = function(error) {\n var _this2 = this;\n if (this.resolved || this.rejected) return this;\n if (utils_isPromise(error)) throw new Error(\"Can not reject promise with another promise\");\n if (!error) {\n var _err = error && \"function\" == typeof error.toString ? error.toString() : {}.toString.call(error);\n error = new Error(\"Expected reject to be called with Error, got \" + _err);\n }\n this.rejected = !0;\n this.error = error;\n this.errorHandled || setTimeout((function() {\n _this2.errorHandled || function(err, promise) {\n if (-1 === dispatchedErrors.indexOf(err)) {\n dispatchedErrors.push(err);\n setTimeout((function() {\n throw err;\n }), 1);\n for (var j = 0; j < possiblyUnhandledPromiseHandlers.length; j++) possiblyUnhandledPromiseHandlers[j](err, promise);\n }\n }(error, _this2);\n }), 1);\n this.dispatch();\n return this;\n };\n _proto.asyncReject = function(error) {\n this.errorHandled = !0;\n this.reject(error);\n return this;\n };\n _proto.dispatch = function() {\n var resolved = this.resolved, rejected = this.rejected, handlers = this.handlers;\n if (!this.dispatching && (resolved || rejected)) {\n this.dispatching = !0;\n startActive();\n var chain = function(firstPromise, secondPromise) {\n return firstPromise.then((function(res) {\n secondPromise.resolve(res);\n }), (function(err) {\n secondPromise.reject(err);\n }));\n };\n for (var i = 0; i < handlers.length; i++) {\n var _handlers$i = handlers[i], onSuccess = _handlers$i.onSuccess, onError = _handlers$i.onError, promise = _handlers$i.promise;\n var _result2 = void 0;\n if (resolved) try {\n _result2 = onSuccess ? onSuccess(this.value) : this.value;\n } catch (err) {\n promise.reject(err);\n continue;\n } else if (rejected) {\n if (!onError) {\n promise.reject(this.error);\n continue;\n }\n try {\n _result2 = onError(this.error);\n } catch (err) {\n promise.reject(err);\n continue;\n }\n }\n if (_result2 instanceof ZalgoPromise && (_result2.resolved || _result2.rejected)) {\n var promiseResult = _result2;\n promiseResult.resolved ? promise.resolve(promiseResult.value) : promise.reject(promiseResult.error);\n promiseResult.errorHandled = !0;\n } else utils_isPromise(_result2) ? _result2 instanceof ZalgoPromise && (_result2.resolved || _result2.rejected) ? _result2.resolved ? promise.resolve(_result2.value) : promise.reject(_result2.error) : chain(_result2, promise) : promise.resolve(_result2);\n }\n handlers.length = 0;\n this.dispatching = !1;\n endActive();\n }\n };\n _proto.then = function(onSuccess, onError) {\n if (onSuccess && \"function\" != typeof onSuccess && !onSuccess.call) throw new Error(\"Promise.then expected a function for success handler\");\n if (onError && \"function\" != typeof onError && !onError.call) throw new Error(\"Promise.then expected a function for error handler\");\n var promise = new ZalgoPromise;\n this.handlers.push({\n promise: promise,\n onSuccess: onSuccess,\n onError: onError\n });\n this.errorHandled = !0;\n this.dispatch();\n return promise;\n };\n _proto.catch = function(onError) {\n return this.then(void 0, onError);\n };\n _proto.finally = function(onFinally) {\n if (onFinally && \"function\" != typeof onFinally && !onFinally.call) throw new Error(\"Promise.finally expected a function\");\n return this.then((function(result) {\n return ZalgoPromise.try(onFinally).then((function() {\n return result;\n }));\n }), (function(err) {\n return ZalgoPromise.try(onFinally).then((function() {\n throw err;\n }));\n }));\n };\n _proto.timeout = function(time, err) {\n var _this3 = this;\n if (this.resolved || this.rejected) return this;\n var timeout = setTimeout((function() {\n _this3.resolved || _this3.rejected || _this3.reject(err || new Error(\"Promise timed out after \" + time + \"ms\"));\n }), time);\n return this.then((function(result) {\n clearTimeout(timeout);\n return result;\n }));\n };\n _proto.toPromise = function() {\n if (\"undefined\" == typeof Promise) throw new TypeError(\"Could not find Promise\");\n return Promise.resolve(this);\n };\n _proto.lazy = function() {\n this.errorHandled = !0;\n return this;\n };\n ZalgoPromise.resolve = function(value) {\n return value instanceof ZalgoPromise ? value : utils_isPromise(value) ? new ZalgoPromise((function(resolve, reject) {\n return value.then(resolve, reject);\n })) : (new ZalgoPromise).resolve(value);\n };\n ZalgoPromise.reject = function(error) {\n return (new ZalgoPromise).reject(error);\n };\n ZalgoPromise.asyncReject = function(error) {\n return (new ZalgoPromise).asyncReject(error);\n };\n ZalgoPromise.all = function(promises) {\n var promise = new ZalgoPromise;\n var count = promises.length;\n var results = [].slice();\n if (!count) {\n promise.resolve(results);\n return promise;\n }\n var chain = function(i, firstPromise, secondPromise) {\n return firstPromise.then((function(res) {\n results[i] = res;\n 0 == (count -= 1) && promise.resolve(results);\n }), (function(err) {\n secondPromise.reject(err);\n }));\n };\n for (var i = 0; i < promises.length; i++) {\n var prom = promises[i];\n if (prom instanceof ZalgoPromise) {\n if (prom.resolved) {\n results[i] = prom.value;\n count -= 1;\n continue;\n }\n } else if (!utils_isPromise(prom)) {\n results[i] = prom;\n count -= 1;\n continue;\n }\n chain(i, ZalgoPromise.resolve(prom), promise);\n }\n 0 === count && promise.resolve(results);\n return promise;\n };\n ZalgoPromise.hash = function(promises) {\n var result = {};\n var awaitPromises = [];\n var _loop = function(key) {\n if (promises.hasOwnProperty(key)) {\n var value = promises[key];\n utils_isPromise(value) ? awaitPromises.push(value.then((function(res) {\n result[key] = res;\n }))) : result[key] = value;\n }\n };\n for (var key in promises) _loop(key);\n return ZalgoPromise.all(awaitPromises).then((function() {\n return result;\n }));\n };\n ZalgoPromise.map = function(items, method) {\n return ZalgoPromise.all(items.map(method));\n };\n ZalgoPromise.onPossiblyUnhandledException = function(handler) {\n return function(handler) {\n possiblyUnhandledPromiseHandlers.push(handler);\n return {\n cancel: function() {\n possiblyUnhandledPromiseHandlers.splice(possiblyUnhandledPromiseHandlers.indexOf(handler), 1);\n }\n };\n }(handler);\n };\n ZalgoPromise.try = function(method, context, args) {\n if (method && \"function\" != typeof method && !method.call) throw new Error(\"Promise.try expected a function\");\n var result;\n startActive();\n try {\n result = method.apply(context, args || []);\n } catch (err) {\n endActive();\n return ZalgoPromise.reject(err);\n }\n endActive();\n return ZalgoPromise.resolve(result);\n };\n ZalgoPromise.delay = function(_delay) {\n return new ZalgoPromise((function(resolve) {\n setTimeout(resolve, _delay);\n }));\n };\n ZalgoPromise.isPromise = function(value) {\n return !!(value && value instanceof ZalgoPromise) || utils_isPromise(value);\n };\n ZalgoPromise.flush = function() {\n return function(Zalgo) {\n var promise = flushPromise = flushPromise || new Zalgo;\n flushActive();\n return promise;\n }(ZalgoPromise);\n };\n return ZalgoPromise;\n }();\n function util_safeIndexOf(collection, item) {\n for (var i = 0; i < collection.length; i++) try {\n if (collection[i] === item) return i;\n } catch (err) {}\n return -1;\n }\n var weakmap_CrossDomainSafeWeakMap = function() {\n function CrossDomainSafeWeakMap() {\n this.name = void 0;\n this.weakmap = void 0;\n this.keys = void 0;\n this.values = void 0;\n this.name = \"__weakmap_\" + (1e9 * Math.random() >>> 0) + \"__\";\n if (function() {\n if (\"undefined\" == typeof WeakMap) return !1;\n if (void 0 === Object.freeze) return !1;\n try {\n var testWeakMap = new WeakMap;\n var testKey = {};\n Object.freeze(testKey);\n testWeakMap.set(testKey, \"__testvalue__\");\n return \"__testvalue__\" === testWeakMap.get(testKey);\n } catch (err) {\n return !1;\n }\n }()) try {\n this.weakmap = new WeakMap;\n } catch (err) {}\n this.keys = [];\n this.values = [];\n }\n var _proto = CrossDomainSafeWeakMap.prototype;\n _proto._cleanupClosedWindows = function() {\n var weakmap = this.weakmap;\n var keys = this.keys;\n for (var i = 0; i < keys.length; i++) {\n var value = keys[i];\n if (isWindow(value) && isWindowClosed(value)) {\n if (weakmap) try {\n weakmap.delete(value);\n } catch (err) {}\n keys.splice(i, 1);\n this.values.splice(i, 1);\n i -= 1;\n }\n }\n };\n _proto.isSafeToReadWrite = function(key) {\n return !isWindow(key);\n };\n _proto.set = function(key, value) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n weakmap.set(key, value);\n } catch (err) {\n delete this.weakmap;\n }\n if (this.isSafeToReadWrite(key)) try {\n var name = this.name;\n var entry = key[name];\n entry && entry[0] === key ? entry[1] = value : Object.defineProperty(key, name, {\n value: [ key, value ],\n writable: !0\n });\n return;\n } catch (err) {}\n this._cleanupClosedWindows();\n var keys = this.keys;\n var values = this.values;\n var index = util_safeIndexOf(keys, key);\n if (-1 === index) {\n keys.push(key);\n values.push(value);\n } else values[index] = value;\n };\n _proto.get = function(key) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n if (weakmap.has(key)) return weakmap.get(key);\n } catch (err) {\n delete this.weakmap;\n }\n if (this.isSafeToReadWrite(key)) try {\n var entry = key[this.name];\n return entry && entry[0] === key ? entry[1] : void 0;\n } catch (err) {}\n this._cleanupClosedWindows();\n var index = util_safeIndexOf(this.keys, key);\n if (-1 !== index) return this.values[index];\n };\n _proto.delete = function(key) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n weakmap.delete(key);\n } catch (err) {\n delete this.weakmap;\n }\n if (this.isSafeToReadWrite(key)) try {\n var entry = key[this.name];\n entry && entry[0] === key && (entry[0] = entry[1] = void 0);\n } catch (err) {}\n this._cleanupClosedWindows();\n var keys = this.keys;\n var index = util_safeIndexOf(keys, key);\n if (-1 !== index) {\n keys.splice(index, 1);\n this.values.splice(index, 1);\n }\n };\n _proto.has = function(key) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n if (weakmap.has(key)) return !0;\n } catch (err) {\n delete this.weakmap;\n }\n if (this.isSafeToReadWrite(key)) try {\n var entry = key[this.name];\n return !(!entry || entry[0] !== key);\n } catch (err) {}\n this._cleanupClosedWindows();\n return -1 !== util_safeIndexOf(this.keys, key);\n };\n _proto.getOrSet = function(key, getter) {\n if (this.has(key)) return this.get(key);\n var value = getter();\n this.set(key, value);\n return value;\n };\n return CrossDomainSafeWeakMap;\n }();\n function getFunctionName(fn) {\n return fn.name || fn.__name__ || fn.displayName || \"anonymous\";\n }\n function setFunctionName(fn, name) {\n try {\n delete fn.name;\n fn.name = name;\n } catch (err) {}\n fn.__name__ = fn.displayName = name;\n return fn;\n }\n function uniqueID() {\n var chars = \"0123456789abcdef\";\n return \"uid_\" + \"xxxxxxxxxx\".replace(/./g, (function() {\n return chars.charAt(Math.floor(Math.random() * chars.length));\n })) + \"_\" + function(str) {\n if (\"function\" == typeof btoa) return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, (function(m, p1) {\n return String.fromCharCode(parseInt(p1, 16));\n }))).replace(/[=]/g, \"\");\n if (\"undefined\" != typeof Buffer) return Buffer.from(str, \"utf8\").toString(\"base64\").replace(/[=]/g, \"\");\n throw new Error(\"Can not find window.btoa or Buffer\");\n }((new Date).toISOString().slice(11, 19).replace(\"T\", \".\")).replace(/[^a-zA-Z0-9]/g, \"\").toLowerCase();\n }\n var objectIDs;\n function serializeArgs(args) {\n try {\n return JSON.stringify([].slice.call(args), (function(subkey, val) {\n return \"function\" == typeof val ? \"memoize[\" + function(obj) {\n objectIDs = objectIDs || new weakmap_CrossDomainSafeWeakMap;\n if (null == obj || \"object\" != typeof obj && \"function\" != typeof obj) throw new Error(\"Invalid object\");\n var uid = objectIDs.get(obj);\n if (!uid) {\n uid = typeof obj + \":\" + uniqueID();\n objectIDs.set(obj, uid);\n }\n return uid;\n }(val) + \"]\" : \"undefined\" != typeof window && val instanceof window.Element || null !== val && \"object\" == typeof val && 1 === val.nodeType && \"object\" == typeof val.style && \"object\" == typeof val.ownerDocument ? {} : val;\n }));\n } catch (err) {\n throw new Error(\"Arguments not serializable -- can not be used to memoize\");\n }\n }\n function getEmptyObject() {\n return {};\n }\n var memoizeGlobalIndex = 0;\n var memoizeGlobalIndexValidFrom = 0;\n function memoize(method, options) {\n void 0 === options && (options = {});\n var _options$thisNamespac = options.thisNamespace, thisNamespace = void 0 !== _options$thisNamespac && _options$thisNamespac, cacheTime = options.time;\n var simpleCache;\n var thisCache;\n var memoizeIndex = memoizeGlobalIndex;\n memoizeGlobalIndex += 1;\n var memoizedFunction = function() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];\n if (memoizeIndex < memoizeGlobalIndexValidFrom) {\n simpleCache = null;\n thisCache = null;\n memoizeIndex = memoizeGlobalIndex;\n memoizeGlobalIndex += 1;\n }\n var cache;\n cache = thisNamespace ? (thisCache = thisCache || new weakmap_CrossDomainSafeWeakMap).getOrSet(this, getEmptyObject) : simpleCache = simpleCache || {};\n var cacheKey;\n try {\n cacheKey = serializeArgs(args);\n } catch (_unused) {\n return method.apply(this, arguments);\n }\n var cacheResult = cache[cacheKey];\n if (cacheResult && cacheTime && Date.now() - cacheResult.time < cacheTime) {\n delete cache[cacheKey];\n cacheResult = null;\n }\n if (cacheResult) return cacheResult.value;\n var time = Date.now();\n var value = method.apply(this, arguments);\n cache[cacheKey] = {\n time: time,\n value: value\n };\n return value;\n };\n memoizedFunction.reset = function() {\n simpleCache = null;\n thisCache = null;\n };\n return setFunctionName(memoizedFunction, (options.name || getFunctionName(method)) + \"::memoized\");\n }\n memoize.clear = function() {\n memoizeGlobalIndexValidFrom = memoizeGlobalIndex;\n };\n function memoizePromise(method) {\n var cache = {};\n function memoizedPromiseFunction() {\n var _arguments = arguments, _this = this;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) args[_key2] = arguments[_key2];\n var key = serializeArgs(args);\n if (cache.hasOwnProperty(key)) return cache[key];\n cache[key] = promise_ZalgoPromise.try((function() {\n return method.apply(_this, _arguments);\n })).finally((function() {\n delete cache[key];\n }));\n return cache[key];\n }\n memoizedPromiseFunction.reset = function() {\n cache = {};\n };\n return setFunctionName(memoizedPromiseFunction, getFunctionName(method) + \"::promiseMemoized\");\n }\n function src_util_noop() {}\n function stringifyError(err, level) {\n void 0 === level && (level = 1);\n if (level >= 3) return \"stringifyError stack overflow\";\n try {\n if (!err) return \"\";\n if (\"string\" == typeof err) return err;\n if (err instanceof Error) {\n var stack = err && err.stack;\n var message = err && err.message;\n if (stack && message) return -1 !== stack.indexOf(message) ? stack : message + \"\\n\" + stack;\n if (stack) return stack;\n if (message) return message;\n }\n return err && err.toString && \"function\" == typeof err.toString ? err.toString() : {}.toString.call(err);\n } catch (newErr) {\n return \"Error while stringifying error: \" + stringifyError(newErr, level + 1);\n }\n }\n function stringify(item) {\n return \"string\" == typeof item ? item : item && item.toString && \"function\" == typeof item.toString ? item.toString() : {}.toString.call(item);\n }\n memoize((function(obj) {\n if (Object.values) return Object.values(obj);\n var result = [];\n for (var key in obj) obj.hasOwnProperty(key) && result.push(obj[key]);\n return result;\n }));\n function util_isRegex(item) {\n return \"[object RegExp]\" === {}.toString.call(item);\n }\n function util_getOrSet(obj, key, getter) {\n if (obj.hasOwnProperty(key)) return obj[key];\n var val = getter();\n obj[key] = val;\n return val;\n }\n Error;\n function getBody() {\n var body = document.body;\n if (!body) throw new Error(\"Body element not found\");\n return body;\n }\n function isDocumentReady() {\n return Boolean(document.body) && \"complete\" === document.readyState;\n }\n function isDocumentInteractive() {\n return Boolean(document.body) && \"interactive\" === document.readyState;\n }\n memoize((function() {\n return new promise_ZalgoPromise((function(resolve) {\n if (isDocumentReady() || isDocumentInteractive()) return resolve();\n var interval = setInterval((function() {\n if (isDocumentReady() || isDocumentInteractive()) {\n clearInterval(interval);\n return resolve();\n }\n }), 10);\n }));\n }));\n var currentScript = \"undefined\" != typeof document ? document.currentScript : null;\n var getCurrentScript = memoize((function() {\n if (currentScript) return currentScript;\n if (currentScript = function() {\n try {\n var stack = function() {\n try {\n throw new Error(\"_\");\n } catch (err) {\n return err.stack || \"\";\n }\n }();\n var stackDetails = /.*at [^(]*\\((.*):(.+):(.+)\\)$/gi.exec(stack);\n var scriptLocation = stackDetails && stackDetails[1];\n if (!scriptLocation) return;\n for (var _i22 = 0, _Array$prototype$slic2 = [].slice.call(document.getElementsByTagName(\"script\")).reverse(); _i22 < _Array$prototype$slic2.length; _i22++) {\n var script = _Array$prototype$slic2[_i22];\n if (script.src && script.src === scriptLocation) return script;\n }\n } catch (err) {}\n }()) return currentScript;\n throw new Error(\"Can not determine current script\");\n }));\n var currentUID = uniqueID();\n memoize((function() {\n var script;\n try {\n script = getCurrentScript();\n } catch (err) {\n return currentUID;\n }\n var uid = script.getAttribute(\"data-uid\");\n if (uid && \"string\" == typeof uid) return uid;\n if ((uid = script.getAttribute(\"data-uid-auto\")) && \"string\" == typeof uid) return uid;\n if (script.src) {\n var hashedString = function(str) {\n var hash = \"\";\n for (var i = 0; i < str.length; i++) {\n var total = str[i].charCodeAt(0) * i;\n str[i + 1] && (total += str[i + 1].charCodeAt(0) * (i - 1));\n hash += String.fromCharCode(97 + Math.abs(total) % 26);\n }\n return hash;\n }(JSON.stringify({\n src: script.src,\n dataset: script.dataset\n }));\n uid = \"uid_\" + hashedString.slice(hashedString.length - 30);\n } else uid = uniqueID();\n script.setAttribute(\"data-uid-auto\", uid);\n return uid;\n }));\n function global_getGlobal(win) {\n void 0 === win && (win = window);\n var globalKey = \"__post_robot_10_0_46__\";\n return win !== window ? win[globalKey] : win[globalKey] = win[globalKey] || {};\n }\n var getObj = function() {\n return {};\n };\n function globalStore(key, defStore) {\n void 0 === key && (key = \"store\");\n void 0 === defStore && (defStore = getObj);\n return util_getOrSet(global_getGlobal(), key, (function() {\n var store = defStore();\n return {\n has: function(storeKey) {\n return store.hasOwnProperty(storeKey);\n },\n get: function(storeKey, defVal) {\n return store.hasOwnProperty(storeKey) ? store[storeKey] : defVal;\n },\n set: function(storeKey, val) {\n store[storeKey] = val;\n return val;\n },\n del: function(storeKey) {\n delete store[storeKey];\n },\n getOrSet: function(storeKey, getter) {\n return util_getOrSet(store, storeKey, getter);\n },\n reset: function() {\n store = defStore();\n },\n keys: function() {\n return Object.keys(store);\n }\n };\n }));\n }\n var WildCard = function() {};\n function getWildcard() {\n var global = global_getGlobal();\n global.WINDOW_WILDCARD = global.WINDOW_WILDCARD || new WildCard;\n return global.WINDOW_WILDCARD;\n }\n function windowStore(key, defStore) {\n void 0 === key && (key = \"store\");\n void 0 === defStore && (defStore = getObj);\n return globalStore(\"windowStore\").getOrSet(key, (function() {\n var winStore = new weakmap_CrossDomainSafeWeakMap;\n var getStore = function(win) {\n return winStore.getOrSet(win, defStore);\n };\n return {\n has: function(win) {\n return getStore(win).hasOwnProperty(key);\n },\n get: function(win, defVal) {\n var store = getStore(win);\n return store.hasOwnProperty(key) ? store[key] : defVal;\n },\n set: function(win, val) {\n getStore(win)[key] = val;\n return val;\n },\n del: function(win) {\n delete getStore(win)[key];\n },\n getOrSet: function(win, getter) {\n return util_getOrSet(getStore(win), key, getter);\n }\n };\n }));\n }\n function getInstanceID() {\n return globalStore(\"instance\").getOrSet(\"instanceID\", uniqueID);\n }\n function resolveHelloPromise(win, _ref) {\n var domain = _ref.domain;\n var helloPromises = windowStore(\"helloPromises\");\n var existingPromise = helloPromises.get(win);\n existingPromise && existingPromise.resolve({\n domain: domain\n });\n var newPromise = promise_ZalgoPromise.resolve({\n domain: domain\n });\n helloPromises.set(win, newPromise);\n return newPromise;\n }\n function sayHello(win, _ref4) {\n return (0, _ref4.send)(win, \"postrobot_hello\", {\n instanceID: getInstanceID()\n }, {\n domain: \"*\",\n timeout: -1\n }).then((function(_ref5) {\n var origin = _ref5.origin, instanceID = _ref5.data.instanceID;\n resolveHelloPromise(win, {\n domain: origin\n });\n return {\n win: win,\n domain: origin,\n instanceID: instanceID\n };\n }));\n }\n function getWindowInstanceID(win, _ref6) {\n var send = _ref6.send;\n return windowStore(\"windowInstanceIDPromises\").getOrSet(win, (function() {\n return sayHello(win, {\n send: send\n }).then((function(_ref7) {\n return _ref7.instanceID;\n }));\n }));\n }\n function markWindowKnown(win) {\n windowStore(\"knownWindows\").set(win, !0);\n }\n function isSerializedType(item) {\n return \"object\" == typeof item && null !== item && \"string\" == typeof item.__type__;\n }\n function determineType(val) {\n return void 0 === val ? \"undefined\" : null === val ? \"null\" : Array.isArray(val) ? \"array\" : \"function\" == typeof val ? \"function\" : \"object\" == typeof val ? val instanceof Error ? \"error\" : \"function\" == typeof val.then ? \"promise\" : \"[object RegExp]\" === {}.toString.call(val) ? \"regex\" : \"[object Date]\" === {}.toString.call(val) ? \"date\" : \"object\" : \"string\" == typeof val ? \"string\" : \"number\" == typeof val ? \"number\" : \"boolean\" == typeof val ? \"boolean\" : void 0;\n }\n function serializeType(type, val) {\n return {\n __type__: type,\n __val__: val\n };\n }\n var _SERIALIZER;\n var SERIALIZER = ((_SERIALIZER = {}).function = function() {}, _SERIALIZER.error = function(_ref) {\n return serializeType(\"error\", {\n message: _ref.message,\n stack: _ref.stack,\n code: _ref.code,\n data: _ref.data\n });\n }, _SERIALIZER.promise = function() {}, _SERIALIZER.regex = function(val) {\n return serializeType(\"regex\", val.source);\n }, _SERIALIZER.date = function(val) {\n return serializeType(\"date\", val.toJSON());\n }, _SERIALIZER.array = function(val) {\n return val;\n }, _SERIALIZER.object = function(val) {\n return val;\n }, _SERIALIZER.string = function(val) {\n return val;\n }, _SERIALIZER.number = function(val) {\n return val;\n }, _SERIALIZER.boolean = function(val) {\n return val;\n }, _SERIALIZER.null = function(val) {\n return val;\n }, _SERIALIZER[void 0] = function(val) {\n return serializeType(\"undefined\", val);\n }, _SERIALIZER);\n var defaultSerializers = {};\n var _DESERIALIZER;\n var DESERIALIZER = ((_DESERIALIZER = {}).function = function() {\n throw new Error(\"Function serialization is not implemented; nothing to deserialize\");\n }, _DESERIALIZER.error = function(_ref2) {\n var stack = _ref2.stack, code = _ref2.code, data = _ref2.data;\n var error = new Error(_ref2.message);\n error.code = code;\n data && (error.data = data);\n error.stack = stack + \"\\n\\n\" + error.stack;\n return error;\n }, _DESERIALIZER.promise = function() {\n throw new Error(\"Promise serialization is not implemented; nothing to deserialize\");\n }, _DESERIALIZER.regex = function(val) {\n return new RegExp(val);\n }, _DESERIALIZER.date = function(val) {\n return new Date(val);\n }, _DESERIALIZER.array = function(val) {\n return val;\n }, _DESERIALIZER.object = function(val) {\n return val;\n }, _DESERIALIZER.string = function(val) {\n return val;\n }, _DESERIALIZER.number = function(val) {\n return val;\n }, _DESERIALIZER.boolean = function(val) {\n return val;\n }, _DESERIALIZER.null = function(val) {\n return val;\n }, _DESERIALIZER[void 0] = function() {}, _DESERIALIZER);\n var defaultDeserializers = {};\n new promise_ZalgoPromise((function(resolve) {\n if (window.document && window.document.body) return resolve(window.document.body);\n var interval = setInterval((function() {\n if (window.document && window.document.body) {\n clearInterval(interval);\n return resolve(window.document.body);\n }\n }), 10);\n }));\n function cleanupProxyWindows() {\n var idToProxyWindow = globalStore(\"idToProxyWindow\");\n for (var _i2 = 0, _idToProxyWindow$keys2 = idToProxyWindow.keys(); _i2 < _idToProxyWindow$keys2.length; _i2++) {\n var id = _idToProxyWindow$keys2[_i2];\n idToProxyWindow.get(id).shouldClean() && idToProxyWindow.del(id);\n }\n }\n function getSerializedWindow(winPromise, _ref) {\n var send = _ref.send, _ref$id = _ref.id, id = void 0 === _ref$id ? uniqueID() : _ref$id;\n var windowNamePromise = winPromise.then((function(win) {\n if (isSameDomain(win)) return assertSameDomain(win).name;\n }));\n var windowTypePromise = winPromise.then((function(window) {\n if (isWindowClosed(window)) throw new Error(\"Window is closed, can not determine type\");\n return getOpener(window) ? \"popup\" : \"iframe\";\n }));\n windowNamePromise.catch(src_util_noop);\n windowTypePromise.catch(src_util_noop);\n var getName = function() {\n return winPromise.then((function(win) {\n if (!isWindowClosed(win)) return isSameDomain(win) ? assertSameDomain(win).name : windowNamePromise;\n }));\n };\n return {\n id: id,\n getType: function() {\n return windowTypePromise;\n },\n getInstanceID: memoizePromise((function() {\n return winPromise.then((function(win) {\n return getWindowInstanceID(win, {\n send: send\n });\n }));\n })),\n close: function() {\n return winPromise.then(closeWindow);\n },\n getName: getName,\n focus: function() {\n return winPromise.then((function(win) {\n win.focus();\n }));\n },\n isClosed: function() {\n return winPromise.then((function(win) {\n return isWindowClosed(win);\n }));\n },\n setLocation: function(href, opts) {\n void 0 === opts && (opts = {});\n return winPromise.then((function(win) {\n var domain = window.location.protocol + \"//\" + window.location.host;\n var _opts$method = opts.method, method = void 0 === _opts$method ? \"get\" : _opts$method, body = opts.body;\n if (0 === href.indexOf(\"/\")) href = \"\" + domain + href; else if (!href.match(/^https?:\\/\\//) && 0 !== href.indexOf(domain)) throw new Error(\"Expected url to be http or https url, or absolute path, got \" + JSON.stringify(href));\n if (\"post\" === method) return getName().then((function(name) {\n if (!name) throw new Error(\"Can not post to window without target name\");\n !function(_ref3) {\n var url = _ref3.url, target = _ref3.target, body = _ref3.body, _ref3$method = _ref3.method, method = void 0 === _ref3$method ? \"post\" : _ref3$method;\n var form = document.createElement(\"form\");\n form.setAttribute(\"target\", target);\n form.setAttribute(\"method\", method);\n form.setAttribute(\"action\", url);\n form.style.display = \"none\";\n if (body) for (var _i24 = 0, _Object$keys4 = Object.keys(body); _i24 < _Object$keys4.length; _i24++) {\n var _body$key;\n var key = _Object$keys4[_i24];\n var input = document.createElement(\"input\");\n input.setAttribute(\"name\", key);\n input.setAttribute(\"value\", null == (_body$key = body[key]) ? void 0 : _body$key.toString());\n form.appendChild(input);\n }\n getBody().appendChild(form);\n form.submit();\n getBody().removeChild(form);\n }({\n url: href,\n target: name,\n method: method,\n body: body\n });\n }));\n if (\"get\" !== method) throw new Error(\"Unsupported method: \" + method);\n if (isSameDomain(win)) try {\n if (win.location && \"function\" == typeof win.location.replace) {\n win.location.replace(href);\n return;\n }\n } catch (err) {}\n win.location = href;\n }));\n },\n setName: function(name) {\n return winPromise.then((function(win) {\n var sameDomain = isSameDomain(win);\n var frame = getFrameForWindow(win);\n if (!sameDomain) throw new Error(\"Can not set name for cross-domain window: \" + name);\n assertSameDomain(win).name = name;\n frame && frame.setAttribute(\"name\", name);\n windowNamePromise = promise_ZalgoPromise.resolve(name);\n }));\n }\n };\n }\n var window_ProxyWindow = function() {\n function ProxyWindow(_ref2) {\n var send = _ref2.send, win = _ref2.win, serializedWindow = _ref2.serializedWindow;\n this.id = void 0;\n this.isProxyWindow = !0;\n this.serializedWindow = void 0;\n this.actualWindow = void 0;\n this.actualWindowPromise = void 0;\n this.send = void 0;\n this.name = void 0;\n this.actualWindowPromise = new promise_ZalgoPromise;\n this.serializedWindow = serializedWindow || getSerializedWindow(this.actualWindowPromise, {\n send: send\n });\n globalStore(\"idToProxyWindow\").set(this.getID(), this);\n win && this.setWindow(win, {\n send: send\n });\n }\n var _proto = ProxyWindow.prototype;\n _proto.getID = function() {\n return this.serializedWindow.id;\n };\n _proto.getType = function() {\n return this.serializedWindow.getType();\n };\n _proto.isPopup = function() {\n return this.getType().then((function(type) {\n return \"popup\" === type;\n }));\n };\n _proto.setLocation = function(href, opts) {\n var _this = this;\n return this.serializedWindow.setLocation(href, opts).then((function() {\n return _this;\n }));\n };\n _proto.getName = function() {\n return this.serializedWindow.getName();\n };\n _proto.setName = function(name) {\n var _this2 = this;\n return this.serializedWindow.setName(name).then((function() {\n return _this2;\n }));\n };\n _proto.close = function() {\n var _this3 = this;\n return this.serializedWindow.close().then((function() {\n return _this3;\n }));\n };\n _proto.focus = function() {\n var _this4 = this;\n var isPopupPromise = this.isPopup();\n var getNamePromise = this.getName();\n var reopenPromise = promise_ZalgoPromise.hash({\n isPopup: isPopupPromise,\n name: getNamePromise\n }).then((function(_ref3) {\n var name = _ref3.name;\n _ref3.isPopup && name && window.open(\"\", name, \"noopener\");\n }));\n var focusPromise = this.serializedWindow.focus();\n return promise_ZalgoPromise.all([ reopenPromise, focusPromise ]).then((function() {\n return _this4;\n }));\n };\n _proto.isClosed = function() {\n return this.serializedWindow.isClosed();\n };\n _proto.getWindow = function() {\n return this.actualWindow;\n };\n _proto.setWindow = function(win, _ref4) {\n var send = _ref4.send;\n this.actualWindow = win;\n this.actualWindowPromise.resolve(this.actualWindow);\n this.serializedWindow = getSerializedWindow(this.actualWindowPromise, {\n send: send,\n id: this.getID()\n });\n windowStore(\"winToProxyWindow\").set(win, this);\n };\n _proto.awaitWindow = function() {\n return this.actualWindowPromise;\n };\n _proto.matchWindow = function(win, _ref5) {\n var _this5 = this;\n var send = _ref5.send;\n return promise_ZalgoPromise.try((function() {\n return _this5.actualWindow ? win === _this5.actualWindow : promise_ZalgoPromise.hash({\n proxyInstanceID: _this5.getInstanceID(),\n knownWindowInstanceID: getWindowInstanceID(win, {\n send: send\n })\n }).then((function(_ref6) {\n var match = _ref6.proxyInstanceID === _ref6.knownWindowInstanceID;\n match && _this5.setWindow(win, {\n send: send\n });\n return match;\n }));\n }));\n };\n _proto.unwrap = function() {\n return this.actualWindow || this;\n };\n _proto.getInstanceID = function() {\n return this.serializedWindow.getInstanceID();\n };\n _proto.shouldClean = function() {\n return Boolean(this.actualWindow && isWindowClosed(this.actualWindow));\n };\n _proto.serialize = function() {\n return this.serializedWindow;\n };\n ProxyWindow.unwrap = function(win) {\n return ProxyWindow.isProxyWindow(win) ? win.unwrap() : win;\n };\n ProxyWindow.serialize = function(win, _ref7) {\n var send = _ref7.send;\n cleanupProxyWindows();\n return ProxyWindow.toProxyWindow(win, {\n send: send\n }).serialize();\n };\n ProxyWindow.deserialize = function(serializedWindow, _ref8) {\n var send = _ref8.send;\n cleanupProxyWindows();\n return globalStore(\"idToProxyWindow\").get(serializedWindow.id) || new ProxyWindow({\n serializedWindow: serializedWindow,\n send: send\n });\n };\n ProxyWindow.isProxyWindow = function(obj) {\n return Boolean(obj && !isWindow(obj) && obj.isProxyWindow);\n };\n ProxyWindow.toProxyWindow = function(win, _ref9) {\n var send = _ref9.send;\n cleanupProxyWindows();\n if (ProxyWindow.isProxyWindow(win)) return win;\n var actualWindow = win;\n return windowStore(\"winToProxyWindow\").get(actualWindow) || new ProxyWindow({\n win: actualWindow,\n send: send\n });\n };\n return ProxyWindow;\n }();\n function addMethod(id, val, name, source, domain) {\n var methodStore = windowStore(\"methodStore\");\n var proxyWindowMethods = globalStore(\"proxyWindowMethods\");\n if (window_ProxyWindow.isProxyWindow(source)) proxyWindowMethods.set(id, {\n val: val,\n name: name,\n domain: domain,\n source: source\n }); else {\n proxyWindowMethods.del(id);\n methodStore.getOrSet(source, (function() {\n return {};\n }))[id] = {\n domain: domain,\n name: name,\n val: val,\n source: source\n };\n }\n }\n function lookupMethod(source, id) {\n var methodStore = windowStore(\"methodStore\");\n var proxyWindowMethods = globalStore(\"proxyWindowMethods\");\n return methodStore.getOrSet(source, (function() {\n return {};\n }))[id] || proxyWindowMethods.get(id);\n }\n function function_serializeFunction(destination, domain, val, key, _ref3) {\n on = (_ref = {\n on: _ref3.on,\n send: _ref3.send\n }).on, send = _ref.send, globalStore(\"builtinListeners\").getOrSet(\"functionCalls\", (function() {\n return on(\"postrobot_method\", {\n domain: \"*\"\n }, (function(_ref2) {\n var source = _ref2.source, origin = _ref2.origin, data = _ref2.data;\n var id = data.id, name = data.name;\n var meth = lookupMethod(source, id);\n if (!meth) throw new Error(\"Could not find method '\" + name + \"' with id: \" + data.id + \" in \" + getDomain(window));\n var methodSource = meth.source, domain = meth.domain, val = meth.val;\n return promise_ZalgoPromise.try((function() {\n if (!matchDomain(domain, origin)) throw new Error(\"Method '\" + data.name + \"' domain \" + JSON.stringify(util_isRegex(meth.domain) ? meth.domain.source : meth.domain) + \" does not match origin \" + origin + \" in \" + getDomain(window));\n if (window_ProxyWindow.isProxyWindow(methodSource)) return methodSource.matchWindow(source, {\n send: send\n }).then((function(match) {\n if (!match) throw new Error(\"Method call '\" + data.name + \"' failed - proxy window does not match source in \" + getDomain(window));\n }));\n })).then((function() {\n return val.apply({\n source: source,\n origin: origin\n }, data.args);\n }), (function(err) {\n return promise_ZalgoPromise.try((function() {\n if (val.onError) return val.onError(err);\n })).then((function() {\n err.stack && (err.stack = \"Remote call to \" + name + \"(\" + function(args) {\n void 0 === args && (args = []);\n return (item = args, [].slice.call(item)).map((function(arg) {\n return \"string\" == typeof arg ? \"'\" + arg + \"'\" : void 0 === arg ? \"undefined\" : null === arg ? \"null\" : \"boolean\" == typeof arg ? arg.toString() : Array.isArray(arg) ? \"[ ... ]\" : \"object\" == typeof arg ? \"{ ... }\" : \"function\" == typeof arg ? \"() => { ... }\" : \"<\" + typeof arg + \">\";\n })).join(\", \");\n var item;\n }(data.args) + \") failed\\n\\n\" + err.stack);\n throw err;\n }));\n })).then((function(result) {\n return {\n result: result,\n id: id,\n name: name\n };\n }));\n }));\n }));\n var _ref, on, send;\n var id = val.__id__ || uniqueID();\n destination = window_ProxyWindow.unwrap(destination);\n var name = val.__name__ || val.name || key;\n \"string\" == typeof name && \"function\" == typeof name.indexOf && 0 === name.indexOf(\"anonymous::\") && (name = name.replace(\"anonymous::\", key + \"::\"));\n if (window_ProxyWindow.isProxyWindow(destination)) {\n addMethod(id, val, name, destination, domain);\n destination.awaitWindow().then((function(win) {\n addMethod(id, val, name, win, domain);\n }));\n } else addMethod(id, val, name, destination, domain);\n return serializeType(\"cross_domain_function\", {\n id: id,\n name: name\n });\n }\n function serializeMessage(destination, domain, obj, _ref) {\n var _serialize;\n var on = _ref.on, send = _ref.send;\n return function(obj, serializers) {\n void 0 === serializers && (serializers = defaultSerializers);\n var result = JSON.stringify(obj, (function(key) {\n var val = this[key];\n if (isSerializedType(this)) return val;\n var type = determineType(val);\n if (!type) return val;\n var serializer = serializers[type] || SERIALIZER[type];\n return serializer ? serializer(val, key) : val;\n }));\n return void 0 === result ? \"undefined\" : result;\n }(obj, ((_serialize = {}).promise = function(val, key) {\n return function(destination, domain, val, key, _ref) {\n return serializeType(\"cross_domain_zalgo_promise\", {\n then: function_serializeFunction(destination, domain, (function(resolve, reject) {\n return val.then(resolve, reject);\n }), key, {\n on: _ref.on,\n send: _ref.send\n })\n });\n }(destination, domain, val, key, {\n on: on,\n send: send\n });\n }, _serialize.function = function(val, key) {\n return function_serializeFunction(destination, domain, val, key, {\n on: on,\n send: send\n });\n }, _serialize.object = function(val) {\n return isWindow(val) || window_ProxyWindow.isProxyWindow(val) ? serializeType(\"cross_domain_window\", window_ProxyWindow.serialize(val, {\n send: send\n })) : val;\n }, _serialize));\n }\n function deserializeMessage(source, origin, message, _ref2) {\n var _deserialize;\n var send = _ref2.send;\n return function(str, deserializers) {\n void 0 === deserializers && (deserializers = defaultDeserializers);\n if (\"undefined\" !== str) return JSON.parse(str, (function(key, val) {\n if (isSerializedType(this)) return val;\n var type;\n var value;\n if (isSerializedType(val)) {\n type = val.__type__;\n value = val.__val__;\n } else {\n type = determineType(val);\n value = val;\n }\n if (!type) return value;\n var deserializer = deserializers[type] || DESERIALIZER[type];\n return deserializer ? deserializer(value, key) : value;\n }));\n }(message, ((_deserialize = {}).cross_domain_zalgo_promise = function(serializedPromise) {\n return function(source, origin, _ref2) {\n return new promise_ZalgoPromise(_ref2.then);\n }(0, 0, serializedPromise);\n }, _deserialize.cross_domain_function = function(serializedFunction) {\n return function(source, origin, _ref4, _ref5) {\n var id = _ref4.id, name = _ref4.name;\n var send = _ref5.send;\n var getDeserializedFunction = function(opts) {\n void 0 === opts && (opts = {});\n function crossDomainFunctionWrapper() {\n var _arguments = arguments;\n return window_ProxyWindow.toProxyWindow(source, {\n send: send\n }).awaitWindow().then((function(win) {\n var meth = lookupMethod(win, id);\n if (meth && meth.val !== crossDomainFunctionWrapper) return meth.val.apply({\n source: window,\n origin: getDomain()\n }, _arguments);\n var _args = [].slice.call(_arguments);\n return opts.fireAndForget ? send(win, \"postrobot_method\", {\n id: id,\n name: name,\n args: _args\n }, {\n domain: origin,\n fireAndForget: !0\n }) : send(win, \"postrobot_method\", {\n id: id,\n name: name,\n args: _args\n }, {\n domain: origin,\n fireAndForget: !1\n }).then((function(res) {\n return res.data.result;\n }));\n })).catch((function(err) {\n throw err;\n }));\n }\n crossDomainFunctionWrapper.__name__ = name;\n crossDomainFunctionWrapper.__origin__ = origin;\n crossDomainFunctionWrapper.__source__ = source;\n crossDomainFunctionWrapper.__id__ = id;\n crossDomainFunctionWrapper.origin = origin;\n return crossDomainFunctionWrapper;\n };\n var crossDomainFunctionWrapper = getDeserializedFunction();\n crossDomainFunctionWrapper.fireAndForget = getDeserializedFunction({\n fireAndForget: !0\n });\n return crossDomainFunctionWrapper;\n }(source, origin, serializedFunction, {\n send: send\n });\n }, _deserialize.cross_domain_window = function(serializedWindow) {\n return window_ProxyWindow.deserialize(serializedWindow, {\n send: send\n });\n }, _deserialize));\n }\n var SEND_MESSAGE_STRATEGIES = {};\n SEND_MESSAGE_STRATEGIES.postrobot_post_message = function(win, serializedMessage, domain) {\n 0 === domain.indexOf(\"file:\") && (domain = \"*\");\n win.postMessage(serializedMessage, domain);\n };\n function send_sendMessage(win, domain, message, _ref2) {\n var on = _ref2.on, send = _ref2.send;\n return promise_ZalgoPromise.try((function() {\n var domainBuffer = windowStore().getOrSet(win, (function() {\n return {};\n }));\n domainBuffer.buffer = domainBuffer.buffer || [];\n domainBuffer.buffer.push(message);\n domainBuffer.flush = domainBuffer.flush || promise_ZalgoPromise.flush().then((function() {\n if (isWindowClosed(win)) throw new Error(\"Window is closed\");\n var serializedMessage = serializeMessage(win, domain, ((_ref = {}).__post_robot_10_0_46__ = domainBuffer.buffer || [], \n _ref), {\n on: on,\n send: send\n });\n var _ref;\n delete domainBuffer.buffer;\n var strategies = Object.keys(SEND_MESSAGE_STRATEGIES);\n var errors = [];\n for (var _i2 = 0; _i2 < strategies.length; _i2++) {\n var strategyName = strategies[_i2];\n try {\n SEND_MESSAGE_STRATEGIES[strategyName](win, serializedMessage, domain);\n } catch (err) {\n errors.push(err);\n }\n }\n if (errors.length === strategies.length) throw new Error(\"All post-robot messaging strategies failed:\\n\\n\" + errors.map((function(err, i) {\n return i + \". \" + stringifyError(err);\n })).join(\"\\n\\n\"));\n }));\n return domainBuffer.flush.then((function() {\n delete domainBuffer.flush;\n }));\n })).then(src_util_noop);\n }\n function getResponseListener(hash) {\n return globalStore(\"responseListeners\").get(hash);\n }\n function deleteResponseListener(hash) {\n globalStore(\"responseListeners\").del(hash);\n }\n function isResponseListenerErrored(hash) {\n return globalStore(\"erroredResponseListeners\").has(hash);\n }\n function getRequestListener(_ref) {\n var name = _ref.name, win = _ref.win, domain = _ref.domain;\n var requestListeners = windowStore(\"requestListeners\");\n \"*\" === win && (win = null);\n \"*\" === domain && (domain = null);\n if (!name) throw new Error(\"Name required to get request listener\");\n for (var _i4 = 0, _ref3 = [ win, getWildcard() ]; _i4 < _ref3.length; _i4++) {\n var winQualifier = _ref3[_i4];\n if (winQualifier) {\n var nameListeners = requestListeners.get(winQualifier);\n if (nameListeners) {\n var domainListeners = nameListeners[name];\n if (domainListeners) {\n if (domain && \"string\" == typeof domain) {\n if (domainListeners[domain]) return domainListeners[domain];\n if (domainListeners.__domain_regex__) for (var _i6 = 0, _domainListeners$__DO2 = domainListeners.__domain_regex__; _i6 < _domainListeners$__DO2.length; _i6++) {\n var _domainListeners$__DO3 = _domainListeners$__DO2[_i6], listener = _domainListeners$__DO3.listener;\n if (matchDomain(_domainListeners$__DO3.regex, domain)) return listener;\n }\n }\n if (domainListeners[\"*\"]) return domainListeners[\"*\"];\n }\n }\n }\n }\n }\n function handleRequest(source, origin, message, _ref) {\n var on = _ref.on, send = _ref.send;\n var options = getRequestListener({\n name: message.name,\n win: source,\n domain: origin\n });\n var logName = \"postrobot_method\" === message.name && message.data && \"string\" == typeof message.data.name ? message.data.name + \"()\" : message.name;\n function sendResponse(ack, data, error) {\n return promise_ZalgoPromise.flush().then((function() {\n if (!message.fireAndForget && !isWindowClosed(source)) try {\n return send_sendMessage(source, origin, {\n id: uniqueID(),\n origin: getDomain(window),\n type: \"postrobot_message_response\",\n hash: message.hash,\n name: message.name,\n ack: ack,\n data: data,\n error: error\n }, {\n on: on,\n send: send\n });\n } catch (err) {\n throw new Error(\"Send response message failed for \" + logName + \" in \" + getDomain() + \"\\n\\n\" + stringifyError(err));\n }\n }));\n }\n return promise_ZalgoPromise.all([ promise_ZalgoPromise.flush().then((function() {\n if (!message.fireAndForget && !isWindowClosed(source)) try {\n return send_sendMessage(source, origin, {\n id: uniqueID(),\n origin: getDomain(window),\n type: \"postrobot_message_ack\",\n hash: message.hash,\n name: message.name\n }, {\n on: on,\n send: send\n });\n } catch (err) {\n throw new Error(\"Send ack message failed for \" + logName + \" in \" + getDomain() + \"\\n\\n\" + stringifyError(err));\n }\n })), promise_ZalgoPromise.try((function() {\n if (!options) throw new Error(\"No handler found for post message: \" + message.name + \" from \" + origin + \" in \" + window.location.protocol + \"//\" + window.location.host + window.location.pathname);\n return options.handler({\n source: source,\n origin: origin,\n data: message.data\n });\n })).then((function(data) {\n return sendResponse(\"success\", data);\n }), (function(error) {\n return sendResponse(\"error\", null, error);\n })) ]).then(src_util_noop).catch((function(err) {\n if (options && options.handleError) return options.handleError(err);\n throw err;\n }));\n }\n function handleAck(source, origin, message) {\n if (!isResponseListenerErrored(message.hash)) {\n var options = getResponseListener(message.hash);\n if (!options) throw new Error(\"No handler found for post message ack for message: \" + message.name + \" from \" + origin + \" in \" + window.location.protocol + \"//\" + window.location.host + window.location.pathname);\n try {\n if (!matchDomain(options.domain, origin)) throw new Error(\"Ack origin \" + origin + \" does not match domain \" + options.domain.toString());\n if (source !== options.win) throw new Error(\"Ack source does not match registered window\");\n } catch (err) {\n options.promise.reject(err);\n }\n options.ack = !0;\n }\n }\n function handleResponse(source, origin, message) {\n if (!isResponseListenerErrored(message.hash)) {\n var options = getResponseListener(message.hash);\n if (!options) throw new Error(\"No handler found for post message response for message: \" + message.name + \" from \" + origin + \" in \" + window.location.protocol + \"//\" + window.location.host + window.location.pathname);\n if (!matchDomain(options.domain, origin)) throw new Error(\"Response origin \" + origin + \" does not match domain \" + (pattern = options.domain, \n Array.isArray(pattern) ? \"(\" + pattern.join(\" | \") + \")\" : isRegex(pattern) ? \"RegExp(\" + pattern.toString() + \")\" : pattern.toString()));\n var pattern;\n if (source !== options.win) throw new Error(\"Response source does not match registered window\");\n deleteResponseListener(message.hash);\n \"error\" === message.ack ? options.promise.reject(message.error) : \"success\" === message.ack && options.promise.resolve({\n source: source,\n origin: origin,\n data: message.data\n });\n }\n }\n function receive_receiveMessage(event, _ref2) {\n var on = _ref2.on, send = _ref2.send;\n var receivedMessages = globalStore(\"receivedMessages\");\n try {\n if (!window || window.closed || !event.source) return;\n } catch (err) {\n return;\n }\n var source = event.source, origin = event.origin;\n var messages = function(message, source, origin, _ref) {\n var on = _ref.on, send = _ref.send;\n var parsedMessage;\n try {\n parsedMessage = deserializeMessage(source, origin, message, {\n on: on,\n send: send\n });\n } catch (err) {\n return;\n }\n if (parsedMessage && \"object\" == typeof parsedMessage && null !== parsedMessage) {\n var parseMessages = parsedMessage.__post_robot_10_0_46__;\n if (Array.isArray(parseMessages)) return parseMessages;\n }\n }(event.data, source, origin, {\n on: on,\n send: send\n });\n if (messages) {\n markWindowKnown(source);\n for (var _i2 = 0; _i2 < messages.length; _i2++) {\n var message = messages[_i2];\n if (receivedMessages.has(message.id)) return;\n receivedMessages.set(message.id, !0);\n if (isWindowClosed(source) && !message.fireAndForget) return;\n 0 === message.origin.indexOf(\"file:\") && (origin = \"file://\");\n try {\n \"postrobot_message_request\" === message.type ? handleRequest(source, origin, message, {\n on: on,\n send: send\n }) : \"postrobot_message_response\" === message.type ? handleResponse(source, origin, message) : \"postrobot_message_ack\" === message.type && handleAck(source, origin, message);\n } catch (err) {\n setTimeout((function() {\n throw err;\n }), 0);\n }\n }\n }\n }\n function on_on(name, options, handler) {\n if (!name) throw new Error(\"Expected name\");\n if (\"function\" == typeof (options = options || {})) {\n handler = options;\n options = {};\n }\n if (!handler) throw new Error(\"Expected handler\");\n var requestListener = function addRequestListener(_ref4, listener) {\n var name = _ref4.name, winCandidate = _ref4.win, domain = _ref4.domain;\n var requestListeners = windowStore(\"requestListeners\");\n if (!name || \"string\" != typeof name) throw new Error(\"Name required to add request listener\");\n if (winCandidate && \"*\" !== winCandidate && window_ProxyWindow.isProxyWindow(winCandidate)) {\n var requestListenerPromise = winCandidate.awaitWindow().then((function(actualWin) {\n return addRequestListener({\n name: name,\n win: actualWin,\n domain: domain\n }, listener);\n }));\n return {\n cancel: function() {\n requestListenerPromise.then((function(requestListener) {\n return requestListener.cancel();\n }), src_util_noop);\n }\n };\n }\n var win = winCandidate;\n if (Array.isArray(win)) {\n var listenersCollection = [];\n for (var _i8 = 0, _win2 = win; _i8 < _win2.length; _i8++) listenersCollection.push(addRequestListener({\n name: name,\n domain: domain,\n win: _win2[_i8]\n }, listener));\n return {\n cancel: function() {\n for (var _i10 = 0; _i10 < listenersCollection.length; _i10++) listenersCollection[_i10].cancel();\n }\n };\n }\n if (Array.isArray(domain)) {\n var _listenersCollection = [];\n for (var _i12 = 0, _domain2 = domain; _i12 < _domain2.length; _i12++) _listenersCollection.push(addRequestListener({\n name: name,\n win: win,\n domain: _domain2[_i12]\n }, listener));\n return {\n cancel: function() {\n for (var _i14 = 0; _i14 < _listenersCollection.length; _i14++) _listenersCollection[_i14].cancel();\n }\n };\n }\n var existingListener = getRequestListener({\n name: name,\n win: win,\n domain: domain\n });\n win && \"*\" !== win || (win = getWildcard());\n var strDomain = (domain = domain || \"*\").toString();\n if (existingListener) throw win && domain ? new Error(\"Request listener already exists for \" + name + \" on domain \" + domain.toString() + \" for \" + (win === getWildcard() ? \"wildcard\" : \"specified\") + \" window\") : win ? new Error(\"Request listener already exists for \" + name + \" for \" + (win === getWildcard() ? \"wildcard\" : \"specified\") + \" window\") : domain ? new Error(\"Request listener already exists for \" + name + \" on domain \" + domain.toString()) : new Error(\"Request listener already exists for \" + name);\n var winNameListeners = requestListeners.getOrSet(win, (function() {\n return {};\n }));\n var winNameDomainListeners = util_getOrSet(winNameListeners, name, (function() {\n return {};\n }));\n var winNameDomainRegexListeners;\n var winNameDomainRegexListener;\n util_isRegex(domain) ? (winNameDomainRegexListeners = util_getOrSet(winNameDomainListeners, \"__domain_regex__\", (function() {\n return [];\n }))).push(winNameDomainRegexListener = {\n regex: domain,\n listener: listener\n }) : winNameDomainListeners[strDomain] = listener;\n return {\n cancel: function() {\n delete winNameDomainListeners[strDomain];\n if (winNameDomainRegexListener) {\n winNameDomainRegexListeners.splice(winNameDomainRegexListeners.indexOf(winNameDomainRegexListener, 1));\n winNameDomainRegexListeners.length || delete winNameDomainListeners.__domain_regex__;\n }\n Object.keys(winNameDomainListeners).length || delete winNameListeners[name];\n win && !Object.keys(winNameListeners).length && requestListeners.del(win);\n }\n };\n }({\n name: name,\n win: options.window,\n domain: options.domain || \"*\"\n }, {\n handler: handler || options.handler,\n handleError: options.errorHandler || function(err) {\n throw err;\n }\n });\n return {\n cancel: function() {\n requestListener.cancel();\n }\n };\n }\n function on_once(name, options, handler) {\n if (\"function\" == typeof (options = options || {})) {\n handler = options;\n options = {};\n }\n var promise = new promise_ZalgoPromise;\n var listener;\n options.errorHandler = function(err) {\n listener.cancel();\n promise.reject(err);\n };\n listener = on_on(name, options, (function(event) {\n listener.cancel();\n promise.resolve(event);\n if (handler) return handler(event);\n }));\n promise.cancel = listener.cancel;\n return promise;\n }\n var send_send = function send(winOrProxyWin, name, data, options) {\n var domainMatcher = (options = options || {}).domain || \"*\";\n var responseTimeout = options.timeout || -1;\n var childTimeout = options.timeout || 5e3;\n var fireAndForget = options.fireAndForget || !1;\n return window_ProxyWindow.toProxyWindow(winOrProxyWin, {\n send: send\n }).awaitWindow().then((function(win) {\n return promise_ZalgoPromise.try((function() {\n !function(name, win, domain) {\n if (!name) throw new Error(\"Expected name\");\n if (domain && \"string\" != typeof domain && !Array.isArray(domain) && !util_isRegex(domain)) throw new TypeError(\"Can not send \" + name + \". Expected domain \" + JSON.stringify(domain) + \" to be a string, array, or regex\");\n if (isWindowClosed(win)) throw new Error(\"Can not send \" + name + \". Target window is closed\");\n }(name, win, domainMatcher);\n if (function(parent, child) {\n var actualParent = getAncestor(child);\n if (actualParent) return actualParent === parent;\n if (child === parent) return !1;\n if (function(win) {\n void 0 === win && (win = window);\n try {\n if (win.top) return win.top;\n } catch (err) {}\n if (getParent(win) === win) return win;\n try {\n if (isAncestorParent(window, win) && window.top) return window.top;\n } catch (err) {}\n try {\n if (isAncestorParent(win, window) && window.top) return window.top;\n } catch (err) {}\n for (var _i7 = 0, _getAllChildFrames4 = function getAllChildFrames(win) {\n var result = [];\n for (var _i3 = 0, _getFrames2 = getFrames(win); _i3 < _getFrames2.length; _i3++) {\n var frame = _getFrames2[_i3];\n result.push(frame);\n for (var _i5 = 0, _getAllChildFrames2 = getAllChildFrames(frame); _i5 < _getAllChildFrames2.length; _i5++) result.push(_getAllChildFrames2[_i5]);\n }\n return result;\n }(win); _i7 < _getAllChildFrames4.length; _i7++) {\n var frame = _getAllChildFrames4[_i7];\n try {\n if (frame.top) return frame.top;\n } catch (err) {}\n if (getParent(frame) === frame) return frame;\n }\n }(child) === child) return !1;\n for (var _i15 = 0, _getFrames8 = getFrames(parent); _i15 < _getFrames8.length; _i15++) if (_getFrames8[_i15] === child) return !0;\n return !1;\n }(window, win)) return function(win, timeout, name) {\n void 0 === timeout && (timeout = 5e3);\n void 0 === name && (name = \"Window\");\n var promise = function(win) {\n return windowStore(\"helloPromises\").getOrSet(win, (function() {\n return new promise_ZalgoPromise;\n }));\n }(win);\n -1 !== timeout && (promise = promise.timeout(timeout, new Error(name + \" did not load after \" + timeout + \"ms\")));\n return promise;\n }(win, childTimeout);\n })).then((function(_temp) {\n return function(win, targetDomain, actualDomain, _ref) {\n var send = _ref.send;\n return promise_ZalgoPromise.try((function() {\n return \"string\" == typeof targetDomain ? targetDomain : promise_ZalgoPromise.try((function() {\n return actualDomain || sayHello(win, {\n send: send\n }).then((function(_ref2) {\n return _ref2.domain;\n }));\n })).then((function(normalizedDomain) {\n if (!matchDomain(targetDomain, targetDomain)) throw new Error(\"Domain \" + stringify(targetDomain) + \" does not match \" + stringify(targetDomain));\n return normalizedDomain;\n }));\n }));\n }(win, domainMatcher, (void 0 === _temp ? {} : _temp).domain, {\n send: send\n });\n })).then((function(targetDomain) {\n var domain = targetDomain;\n var logName = \"postrobot_method\" === name && data && \"string\" == typeof data.name ? data.name + \"()\" : name;\n var promise = new promise_ZalgoPromise;\n var hash = name + \"_\" + uniqueID();\n if (!fireAndForget) {\n var responseListener = {\n name: name,\n win: win,\n domain: domain,\n promise: promise\n };\n !function(hash, listener) {\n globalStore(\"responseListeners\").set(hash, listener);\n }(hash, responseListener);\n var reqPromises = windowStore(\"requestPromises\").getOrSet(win, (function() {\n return [];\n }));\n reqPromises.push(promise);\n promise.catch((function() {\n !function(hash) {\n globalStore(\"erroredResponseListeners\").set(hash, !0);\n }(hash);\n deleteResponseListener(hash);\n }));\n var totalAckTimeout = function(win) {\n return windowStore(\"knownWindows\").get(win, !1);\n }(win) ? 1e4 : 2e3;\n var totalResTimeout = responseTimeout;\n var ackTimeout = totalAckTimeout;\n var resTimeout = totalResTimeout;\n var interval = function(method, time) {\n var timeout;\n !function loop() {\n timeout = setTimeout((function() {\n !function() {\n if (isWindowClosed(win)) return promise.reject(new Error(\"Window closed for \" + name + \" before \" + (responseListener.ack ? \"response\" : \"ack\")));\n if (responseListener.cancelled) return promise.reject(new Error(\"Response listener was cancelled for \" + name));\n ackTimeout = Math.max(ackTimeout - 500, 0);\n -1 !== resTimeout && (resTimeout = Math.max(resTimeout - 500, 0));\n responseListener.ack || 0 !== ackTimeout ? 0 === resTimeout && promise.reject(new Error(\"No response for postMessage \" + logName + \" in \" + getDomain() + \" in \" + totalResTimeout + \"ms\")) : promise.reject(new Error(\"No ack for postMessage \" + logName + \" in \" + getDomain() + \" in \" + totalAckTimeout + \"ms\"));\n }();\n loop();\n }), 500);\n }();\n return {\n cancel: function() {\n clearTimeout(timeout);\n }\n };\n }();\n promise.finally((function() {\n interval.cancel();\n reqPromises.splice(reqPromises.indexOf(promise, 1));\n })).catch(src_util_noop);\n }\n return send_sendMessage(win, domain, {\n id: uniqueID(),\n origin: getDomain(window),\n type: \"postrobot_message_request\",\n hash: hash,\n name: name,\n data: data,\n fireAndForget: fireAndForget\n }, {\n on: on_on,\n send: send\n }).then((function() {\n return fireAndForget ? promise.resolve() : promise;\n }), (function(err) {\n throw new Error(\"Send request message failed for \" + logName + \" in \" + getDomain() + \"\\n\\n\" + stringifyError(err));\n }));\n }));\n }));\n };\n function setup_serializeMessage(destination, domain, obj) {\n return serializeMessage(destination, domain, obj, {\n on: on_on,\n send: send_send\n });\n }\n function setup_deserializeMessage(source, origin, message) {\n return deserializeMessage(source, origin, message, {\n on: on_on,\n send: send_send\n });\n }\n function createProxyWindow(win) {\n return new window_ProxyWindow({\n send: send_send,\n win: win\n });\n }\n function setup_toProxyWindow(win) {\n return window_ProxyWindow.toProxyWindow(win, {\n send: send_send\n });\n }\n function setup() {\n if (!global_getGlobal().initialized) {\n global_getGlobal().initialized = !0;\n on = (_ref3 = {\n on: on_on,\n send: send_send\n }).on, send = _ref3.send, (global = global_getGlobal()).receiveMessage = global.receiveMessage || function(message) {\n return receive_receiveMessage(message, {\n on: on,\n send: send\n });\n };\n !function(_ref5) {\n var on = _ref5.on, send = _ref5.send;\n globalStore().getOrSet(\"postMessageListener\", (function() {\n return function(obj, event, handler) {\n obj.addEventListener(\"message\", handler);\n return {\n cancel: function() {\n obj.removeEventListener(\"message\", handler);\n }\n };\n }(window, 0, (function(event) {\n !function(event, _ref4) {\n var on = _ref4.on, send = _ref4.send;\n promise_ZalgoPromise.try((function() {\n var source = event.source || event.sourceElement;\n var origin = event.origin || event.originalEvent && event.originalEvent.origin;\n var data = event.data;\n \"null\" === origin && (origin = \"file://\");\n if (source) {\n if (!origin) throw new Error(\"Post message did not have origin domain\");\n receive_receiveMessage({\n source: source,\n origin: origin,\n data: data\n }, {\n on: on,\n send: send\n });\n }\n }));\n }(event, {\n on: on,\n send: send\n });\n }));\n }));\n }({\n on: on_on,\n send: send_send\n });\n !function(_ref8) {\n var on = _ref8.on, send = _ref8.send;\n globalStore(\"builtinListeners\").getOrSet(\"helloListener\", (function() {\n var listener = on(\"postrobot_hello\", {\n domain: \"*\"\n }, (function(_ref3) {\n resolveHelloPromise(_ref3.source, {\n domain: _ref3.origin\n });\n return {\n instanceID: getInstanceID()\n };\n }));\n var parent = getAncestor();\n parent && sayHello(parent, {\n send: send\n }).catch((function(err) {}));\n return listener;\n }));\n }({\n on: on_on,\n send: send_send\n });\n }\n var _ref3, on, send, global;\n }\n function destroy() {\n !function() {\n var responseListeners = globalStore(\"responseListeners\");\n for (var _i2 = 0, _responseListeners$ke2 = responseListeners.keys(); _i2 < _responseListeners$ke2.length; _i2++) {\n var hash = _responseListeners$ke2[_i2];\n var listener = responseListeners.get(hash);\n listener && (listener.cancelled = !0);\n responseListeners.del(hash);\n }\n }();\n (listener = globalStore().get(\"postMessageListener\")) && listener.cancel();\n var listener;\n delete window.__post_robot_10_0_46__;\n }\n var src_types_TYPES_0 = !0;\n function cleanUpWindow(win) {\n for (var _i2 = 0, _requestPromises$get2 = windowStore(\"requestPromises\").get(win, []); _i2 < _requestPromises$get2.length; _i2++) _requestPromises$get2[_i2].reject(new Error(\"Window \" + (isWindowClosed(win) ? \"closed\" : \"cleaned up\") + \" before response\")).catch(src_util_noop);\n }\n setup();\n } ]);\n}));","/*\n * JS Storage Plugin\n *\n * Copyright (c) 2016 Julien Maurel\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/mit-license.php\n *\n * Project home:\n * https://github.com/julien-maurel/js-storage\n *\n * Version: 1.0.4\n */\n(function (factory) {\n var registeredInModuleLoader = false;\n if (typeof define === 'function' && define.amd) {\n define(factory);\n registeredInModuleLoader = true;\n }\n if (typeof exports === 'object') {\n module.exports = factory();\n registeredInModuleLoader = true;\n }\n if (!registeredInModuleLoader) {\n var OldStorages = window.Storages;\n var api = window.Storages = factory();\n api.noConflict = function () {\n window.Storages = OldStorages;\n return api;\n };\n }\n}(function () {\n // Variables used by utilities functions (like isPlainObject...)\n var class2type = {};\n var toString = class2type.toString;\n var hasOwn = class2type.hasOwnProperty;\n var fnToString = hasOwn.toString;\n var ObjectFunctionString = fnToString.call(Object);\n var getProto = Object.getPrototypeOf;\n var apis = {};\n\n // Prefix to use with cookie fallback\n var cookie_local_prefix = \"ls_\";\n var cookie_session_prefix = \"ss_\";\n\n // Get items from a storage\n function _get() {\n var storage = this._type, l = arguments.length, s = window[storage], a = arguments, a0 = a[0], vi, ret, tmp, i, j;\n if (l < 1) {\n throw new Error('Minimum 1 argument must be given');\n } else if (Array.isArray(a0)) {\n // If second argument is an array, return an object with value of storage for each item in this array\n ret = {};\n for (i in a0) {\n if (a0.hasOwnProperty(i)) {\n vi = a0[i];\n try {\n ret[vi] = JSON.parse(s.getItem(vi));\n } catch (e) {\n ret[vi] = s.getItem(vi);\n }\n }\n }\n return ret;\n } else if (l == 1) {\n // If only 1 argument, return value directly\n try {\n return JSON.parse(s.getItem(a0));\n } catch (e) {\n return s.getItem(a0);\n }\n } else {\n // If more than 1 argument, parse storage to retrieve final value to return it\n // Get first level\n try {\n ret = JSON.parse(s.getItem(a0));\n } catch (e) {\n throw new ReferenceError(a0 + ' is not defined in this storage');\n }\n // Parse next levels\n for (i = 1; i < l - 1; i++) {\n ret = ret[a[i]];\n if (ret === undefined) {\n throw new ReferenceError([].slice.call(a, 1, i + 1).join('.') + ' is not defined in this storage');\n }\n }\n // If last argument is an array, return an object with value for each item in this array\n // Else return value normally\n if (Array.isArray(a[i])) {\n tmp = ret;\n ret = {};\n for (j in a[i]) {\n if (a[i].hasOwnProperty(j)) {\n ret[a[i][j]] = tmp[a[i][j]];\n }\n }\n return ret;\n } else {\n return ret[a[i]];\n }\n }\n }\n\n // Set items of a storage\n function _set() {\n var storage = this._type, l = arguments.length, s = window[storage], a = arguments, a0 = a[0], a1 = a[1], vi, to_store = isNaN(a1) ? {} : [], type, tmp, i;\n if (l < 1 || !_isPlainObject(a0) && l < 2) {\n throw new Error('Minimum 2 arguments must be given or first parameter must be an object');\n } else if (_isPlainObject(a0)) {\n // If first argument is an object, set values of storage for each property of this object\n for (i in a0) {\n if (a0.hasOwnProperty(i)) {\n vi = a0[i];\n if (!_isPlainObject(vi) && !this.alwaysUseJson) {\n s.setItem(i, vi);\n } else {\n s.setItem(i, JSON.stringify(vi));\n }\n }\n }\n return a0;\n } else if (l == 2) {\n // If only 2 arguments, set value of storage directly\n if (typeof a1 === 'object' || this.alwaysUseJson) {\n s.setItem(a0, JSON.stringify(a1));\n } else {\n s.setItem(a0, a1);\n }\n return a1;\n } else {\n // If more than 3 arguments, parse storage to retrieve final node and set value\n // Get first level\n try {\n tmp = s.getItem(a0);\n if (tmp != null) {\n to_store = JSON.parse(tmp);\n }\n } catch (e) {\n }\n tmp = to_store;\n // Parse next levels and set value\n for (i = 1; i < l - 2; i++) {\n vi = a[i];\n type = isNaN(a[i + 1]) ? \"object\" : \"array\";\n if (!tmp[vi] || type == \"object\" && !_isPlainObject(tmp[vi]) || type == \"array\" && !Array.isArray(tmp[vi])) {\n if (type == \"array\") tmp[vi] = [];\n else tmp[vi] = {};\n }\n tmp = tmp[vi];\n }\n tmp[a[i]] = a[i + 1];\n s.setItem(a0, JSON.stringify(to_store));\n return to_store;\n }\n }\n\n // Remove items from a storage\n function _remove() {\n var storage = this._type, l = arguments.length, s = window[storage], a = arguments, a0 = a[0], to_store, tmp, i, j;\n if (l < 1) {\n throw new Error('Minimum 1 argument must be given');\n } else if (Array.isArray(a0)) {\n // If first argument is an array, remove values from storage for each item of this array\n for (i in a0) {\n if (a0.hasOwnProperty(i)) {\n s.removeItem(a0[i]);\n }\n }\n return true;\n } else if (l == 1) {\n // If only 2 arguments, remove value from storage directly\n s.removeItem(a0);\n return true;\n } else {\n // If more than 2 arguments, parse storage to retrieve final node and remove value\n // Get first level\n try {\n to_store = tmp = JSON.parse(s.getItem(a0));\n } catch (e) {\n throw new ReferenceError(a0 + ' is not defined in this storage');\n }\n // Parse next levels and remove value\n for (i = 1; i < l - 1; i++) {\n tmp = tmp[a[i]];\n if (tmp === undefined) {\n throw new ReferenceError([].slice.call(a, 1, i).join('.') + ' is not defined in this storage');\n }\n }\n // If last argument is an array,remove value for each item in this array\n // Else remove value normally\n if (Array.isArray(a[i])) {\n for (j in a[i]) {\n if (a[i].hasOwnProperty(j)) {\n delete tmp[a[i][j]];\n }\n }\n } else {\n delete tmp[a[i]];\n }\n s.setItem(a0, JSON.stringify(to_store));\n return true;\n }\n }\n\n // Remove all items from a storage\n function _removeAll(reinit_ns) {\n var keys = _keys.call(this), i;\n for (i in keys) {\n if (keys.hasOwnProperty(i)) {\n _remove.call(this, keys[i]);\n }\n }\n // Reinitialize all namespace storages\n if (reinit_ns) {\n for (i in apis.namespaceStorages) {\n if (apis.namespaceStorages.hasOwnProperty(i)) {\n _createNamespace(i);\n }\n }\n }\n }\n\n // Check if items of a storage are empty\n function _isEmpty() {\n var l = arguments.length, a = arguments, a0 = a[0], i;\n if (l == 0) {\n // If no argument, test if storage is empty\n return (_keys.call(this).length == 0);\n } else if (Array.isArray(a0)) {\n // If first argument is an array, test each item of this array and return true only if all items are empty\n for (i = 0; i < a0.length; i++) {\n if (!_isEmpty.call(this, a0[i])) {\n return false;\n }\n }\n return true;\n } else {\n // If at least 1 argument, try to get value and test it\n try {\n var v = _get.apply(this, arguments);\n // Convert result to an object (if last argument is an array, _get return already an object) and test each item\n if (!Array.isArray(a[l - 1])) {\n v = {'totest': v};\n }\n for (i in v) {\n if (v.hasOwnProperty(i) && !(\n (_isPlainObject(v[i]) && _isEmptyObject(v[i])) ||\n (Array.isArray(v[i]) && !v[i].length) ||\n (typeof v[i] !== 'boolean' && !v[i])\n )) {\n return false;\n }\n }\n return true;\n } catch (e) {\n return true;\n }\n }\n }\n\n // Check if items of a storage exist\n function _isSet() {\n var l = arguments.length, a = arguments, a0 = a[0], i;\n if (l < 1) {\n throw new Error('Minimum 1 argument must be given');\n }\n if (Array.isArray(a0)) {\n // If first argument is an array, test each item of this array and return true only if all items exist\n for (i = 0; i < a0.length; i++) {\n if (!_isSet.call(this, a0[i])) {\n return false;\n }\n }\n return true;\n } else {\n // For other case, try to get value and test it\n try {\n var v = _get.apply(this, arguments);\n // Convert result to an object (if last argument is an array, _get return already an object) and test each item\n if (!Array.isArray(a[l - 1])) {\n v = {'totest': v};\n }\n for (i in v) {\n if (v.hasOwnProperty(i) && !(v[i] !== undefined && v[i] !== null)) {\n return false;\n }\n }\n return true;\n } catch (e) {\n return false;\n }\n }\n }\n\n // Get keys of a storage or of an item of the storage\n function _keys() {\n var storage = this._type, l = arguments.length, s = window[storage], keys = [], o = {};\n // If at least 1 argument, get value from storage to retrieve keys\n // Else, use storage to retrieve keys\n if (l > 0) {\n o = _get.apply(this, arguments);\n } else {\n o = s;\n }\n if (o && o._cookie) {\n // If storage is a cookie, use js-cookie to retrieve keys\n var cookies = Cookies.get();\n for (var key in cookies) {\n if (cookies.hasOwnProperty(key) && key != '') {\n keys.push(key.replace(o._prefix, ''));\n }\n }\n } else {\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n keys.push(i);\n }\n }\n }\n return keys;\n }\n\n // Create new namespace storage\n function _createNamespace(name) {\n if (!name || typeof name != \"string\") {\n throw new Error('First parameter must be a string');\n }\n if (storage_available) {\n if (window.localStorage && !window.localStorage.getItem(name)) {\n window.localStorage.setItem(name, '{}');\n }\n if (window.sessionStorage && !window.sessionStorage.getItem(name)) {\n window.sessionStorage.setItem(name, '{}');\n }\n } else {\n if (window.localCookieStorage && !window.localCookieStorage.getItem(name)) {\n window.localCookieStorage.setItem(name, '{}');\n }\n if (window.sessionCookieStorage && !window.sessionCookieStorage.getItem(name)) {\n window.sessionCookieStorage.setItem(name, '{}');\n }\n }\n var ns = {};\n if (window.localStorage) {\n ns.localStorage = _extend({}, apis.localStorage, {_ns: name});\n }\n if (window.sessionStorage) {\n ns.sessionStorage = _extend({}, apis.sessionStorage, {_ns: name});\n }\n if (cookies_available && window.cookieStorage) {\n if (!window.cookieStorage.getItem(name)) {\n window.cookieStorage.setItem(name, '{}');\n }\n ns.cookieStorage = _extend({}, apis.cookieStorage, {_ns: name});\n }\n apis.namespaceStorages[name] = ns;\n return ns;\n }\n\n // Test if storage is natively available on browser\n function _testStorage(name) {\n var foo = 'jsapi';\n try {\n if (!window[name]) {\n return false;\n }\n window[name].setItem(foo, foo);\n window[name].removeItem(foo);\n return true;\n } catch (e) {\n return false;\n }\n }\n\n // Test if a variable is a plain object (from jQuery)\n function _isPlainObject(obj) {\n var proto, Ctor;\n\n // Detect obvious negatives\n // Use toString instead of jQuery.type to catch host objects\n if (!obj || toString.call(obj) !== \"[object Object]\") {\n return false;\n }\n\n proto = getProto(obj);\n\n // Objects with no prototype (e.g., `Object.create( null )`) are plain\n if (!proto) {\n return true;\n }\n\n // Objects with prototype are plain iff they were constructed by a global Object function\n Ctor = hasOwn.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\n }\n\n // Test if a variable is an empty object (from jQuery)\n function _isEmptyObject(obj) {\n var name;\n\n for (name in obj) {\n return false;\n }\n return true;\n }\n\n // Merge objects\n function _extend() {\n var i = 1;\n var result = arguments[0];\n for (; i < arguments.length; i++) {\n var attributes = arguments[i];\n for (var key in attributes) {\n if (attributes.hasOwnProperty(key)) {\n result[key] = attributes[key];\n }\n }\n }\n return result;\n }\n\n // Check if storages are natively available on browser and check is js-cookie is present\n var storage_available = _testStorage('localStorage');\n var cookies_available = typeof Cookies !== 'undefined';\n\n // Namespace object\n var storage = {\n _type: '',\n _ns: '',\n _callMethod: function (f, a) {\n a = Array.prototype.slice.call(a);\n var p = [], a0 = a[0];\n if (this._ns) {\n p.push(this._ns);\n }\n if (typeof a0 === 'string' && a0.indexOf('.') !== -1) {\n a.shift();\n [].unshift.apply(a, a0.split('.'));\n }\n [].push.apply(p, a);\n return f.apply(this, p);\n },\n // Define if plugin always use JSON to store values (even to store simple values like string, int...) or not\n alwaysUseJson: false,\n // Get items. If no parameters and storage have a namespace, return all namespace\n get: function () {\n if (!storage_available && !cookies_available){\n return null;\n }\n return this._callMethod(_get, arguments);\n },\n // Set items\n set: function () {\n var l = arguments.length, a = arguments, a0 = a[0];\n if (l < 1 || !_isPlainObject(a0) && l < 2) {\n throw new Error('Minimum 2 arguments must be given or first parameter must be an object');\n }\n if (!storage_available && !cookies_available){\n return null;\n }\n // If first argument is an object and storage is a namespace storage, set values individually\n if (_isPlainObject(a0) && this._ns) {\n for (var i in a0) {\n if (a0.hasOwnProperty(i)) {\n this._callMethod(_set, [i, a0[i]]);\n }\n }\n return a0;\n } else {\n var r = this._callMethod(_set, a);\n if (this._ns) {\n return r[a0.split('.')[0]];\n } else {\n return r;\n }\n }\n },\n // Delete items\n remove: function () {\n if (arguments.length < 1) {\n throw new Error('Minimum 1 argument must be given');\n }\n if (!storage_available && !cookies_available){\n return null;\n }\n return this._callMethod(_remove, arguments);\n },\n // Delete all items\n removeAll: function (reinit_ns) {\n if (!storage_available && !cookies_available){\n return null;\n }\n if (this._ns) {\n this._callMethod(_set, [{}]);\n return true;\n } else {\n return this._callMethod(_removeAll, [reinit_ns]);\n }\n },\n // Items empty\n isEmpty: function () {\n if (!storage_available && !cookies_available){\n return null;\n }\n return this._callMethod(_isEmpty, arguments);\n },\n // Items exists\n isSet: function () {\n if (arguments.length < 1) {\n throw new Error('Minimum 1 argument must be given');\n }\n if (!storage_available && !cookies_available){\n return null;\n }\n return this._callMethod(_isSet, arguments);\n },\n // Get keys of items\n keys: function () {\n if (!storage_available && !cookies_available){\n return null;\n }\n return this._callMethod(_keys, arguments);\n }\n };\n\n // Use js-cookie for compatibility with old browsers and give access to cookieStorage\n if (cookies_available) {\n // sessionStorage is valid for one window/tab. To simulate that with cookie, we set a name for the window and use it for the name of the cookie\n if (!window.name) {\n window.name = Math.floor(Math.random() * 100000000);\n }\n var cookie_storage = {\n _cookie: true,\n _prefix: '',\n _expires: null,\n _path: null,\n _domain: null,\n setItem: function (n, v) {\n Cookies.set(this._prefix + n, v, {expires: this._expires, path: this._path, domain: this._domain});\n },\n getItem: function (n) {\n return Cookies.get(this._prefix + n);\n },\n removeItem: function (n) {\n return Cookies.remove(this._prefix + n, {path: this._path});\n },\n clear: function () {\n var cookies = Cookies.get();\n for (var key in cookies) {\n if (cookies.hasOwnProperty(key) && key != '') {\n if (!this._prefix && key.indexOf(cookie_local_prefix) === -1 && key.indexOf(cookie_session_prefix) === -1 || this._prefix && key.indexOf(this._prefix) === 0) {\n Cookies.remove(key);\n }\n }\n }\n },\n setExpires: function (e) {\n this._expires = e;\n return this;\n },\n setPath: function (p) {\n this._path = p;\n return this;\n },\n setDomain: function (d) {\n this._domain = d;\n return this;\n },\n setConf: function (c) {\n if (c.path) {\n this._path = c.path;\n }\n if (c.domain) {\n this._domain = c.domain;\n }\n if (c.expires) {\n this._expires = c.expires;\n }\n return this;\n },\n setDefaultConf: function () {\n this._path = this._domain = this._expires = null;\n }\n };\n if (!storage_available) {\n window.localCookieStorage = _extend({}, cookie_storage, {\n _prefix: cookie_local_prefix,\n _expires: 365 * 10\n });\n window.sessionCookieStorage = _extend({}, cookie_storage, {_prefix: cookie_session_prefix + window.name + '_'});\n }\n window.cookieStorage = _extend({}, cookie_storage);\n // cookieStorage API\n apis.cookieStorage = _extend({}, storage, {\n _type: 'cookieStorage',\n setExpires: function (e) {\n window.cookieStorage.setExpires(e);\n return this;\n },\n setPath: function (p) {\n window.cookieStorage.setPath(p);\n return this;\n },\n setDomain: function (d) {\n window.cookieStorage.setDomain(d);\n return this;\n },\n setConf: function (c) {\n window.cookieStorage.setConf(c);\n return this;\n },\n setDefaultConf: function () {\n window.cookieStorage.setDefaultConf();\n return this;\n }\n });\n }\n\n // Get a new API on a namespace\n apis.initNamespaceStorage = function (ns) {\n return _createNamespace(ns);\n };\n if (storage_available) {\n // localStorage API\n apis.localStorage = _extend({}, storage, {_type: 'localStorage'});\n // sessionStorage API\n apis.sessionStorage = _extend({}, storage, {_type: 'sessionStorage'});\n } else {\n // localStorage API\n apis.localStorage = _extend({}, storage, {_type: 'localCookieStorage'});\n // sessionStorage API\n apis.sessionStorage = _extend({}, storage, {_type: 'sessionCookieStorage'});\n }\n // List of all namespace storage\n apis.namespaceStorages = {};\n // Remove all items in all storages\n apis.removeAllStorages = function (reinit_ns) {\n apis.localStorage.removeAll(reinit_ns);\n apis.sessionStorage.removeAll(reinit_ns);\n if (apis.cookieStorage) {\n apis.cookieStorage.removeAll(reinit_ns);\n }\n if (!reinit_ns) {\n apis.namespaceStorages = {};\n }\n };\n // About alwaysUseJson\n // By default, all values are string on html storages and the plugin don't use json to store simple values (strings, int, float...)\n // So by default, if you do storage.setItem('test',2), value in storage will be \"2\", not 2\n // If you set this property to true, all values set with the plugin will be stored as json to have typed values in any cases\n apis.alwaysUseJsonInStorage = function (value) {\n storage.alwaysUseJson = value;\n apis.localStorage.alwaysUseJson = value;\n apis.sessionStorage.alwaysUseJson = value;\n if (apis.cookieStorage) {\n apis.cookieStorage.alwaysUseJson = value;\n }\n };\n\n return apis;\n}));\n"],"sourceRoot":""}