{"version":3,"sources":["webpack:///./node_modules/auth0-js/dist/auth0.min.esm.js"],"names":["commonjsGlobal","globalThis","window","global","self","createCommonjsModule","fn","module","exports","urlJoin","context","definition","normalize","strArray","resultArray","length","TypeError","match","first","shift","replace","i","component","push","str","join","parts","split","arguments","slice","call","urljoin","has","Object","prototype","hasOwnProperty","isArray","Array","hexTable","array","toString","toUpperCase","arrayToObject","source","options","obj","plainObjects","create","utils","assign","target","keys","reduce","acc","key","combine","a","b","concat","compact","value","queue","o","prop","refs","item","j","val","indexOf","pop","compacted","decode","decoder","charset","strWithoutPlus","unescape","decodeURIComponent","e","encode","defaultEncoder","string","Symbol","String","escape","$0","parseInt","out","c","charCodeAt","charAt","isBuffer","constructor","isRegExp","merge","allowPrototypes","mergeTarget","forEach","targetItem","percentTwenties","Format","RFC1738","RFC3986","formats","formatters","has$1","arrayPrefixGenerators","brackets","prefix","comma","indices","repeat","isArray$1","pushToArray","arr","valueOrArray","apply","toISO","Date","toISOString","defaultFormat","defaults","addQueryPrefix","allowDots","charsetSentinel","delimiter","encoder","encodeValuesOnly","format","formatter","serializeDate","date","skipNulls","strictNullHandling","stringify","object","generateArrayPrefix","filter","sort","v","objKeys","values","has$2","defaults$1","arrayLimit","depth","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","parseArrays","numberStr","fromCharCode","parseKeys","givenKey","child","segment","exec","parent","index","chain","leaf","root","cleanRoot","isNaN","0","lib_stringify","opts","arrayFormat","joined","componentEmitter","Emitter","on","addEventListener","event","this","_callbacks","once","off","removeListener","removeAllListeners","removeEventListener","cb","callbacks","splice","emit","args","len","listeners","hasListeners","isObject_1","requestBase","RequestBase","clearTimeout","_timer","_responseTimeoutTimer","parse","_parser","responseType","_responseType","serialize","_serializer","timeout","_timeout","_responseTimeout","option","deadline","response","console","warn","retry","count","_maxRetries","_retries","_retryCallback","ERROR_CODES","_shouldRetry","err","res","override","error","status","code","crossDomain","_retry","req","request","_aborted","timedout","_end","then","resolve","reject","_fullfilledPromise","_endCalled","Promise","innerResolve","innerReject","end","use","ok","Error","_okCallback","_isResponseOK","get","field","_header","toLowerCase","getHeader","set","header","unset","name","_data","_getFormData","append","abort","xhr","_auth","user","pass","base64Encoder","type","username","password","withCredentials","_withCredentials","redirects","n","_maxRedirects","maxResponseSize","_maxResponseSize","toJSON","method","url","data","headers","send","isObj","_formData","_isHost","sortQuery","_sort","_finalizeQueryString","query","_query","queryArr","substring","_appendQueryString","trace","_timeoutError","reason","errno","callback","_setTimeouts","setTimeout","responseBase","ResponseBase","Agent","_defaults","_setHeaderProperties","ct","params","utils$1_params","links","link","utils$1_parseLinks","_setStatusProperties","statusCode","statusType","info","redirect","clientError","serverError","toError","created","accepted","noContent","badRequest","unauthorized","notAcceptable","forbidden","notFound","unprocessableEntity","_setDefaults","def","agentBase","client","noop","Request","getXHR","XMLHttpRequest","location","protocol","ActiveXObject","trim","s","pairs","pushEncodedKeyValuePair","subkey","encodeURIComponent","parseString","pair","pos","isJSON","mime","test","Response","text","responseText","statusText","line","lines","fields","getAllResponseHeaders","getResponseHeader","body","_parseBody","new_err","original","rawResponse","custom_err","del","serializeObject","types","html","json","xml","urlencoded","form","JSON","msg","accept","auth","btoa","attach","file","FormData","_callback","retries","crossDomainError","buffer","ca","agent","pipe","write","onreadystatechange","readyState","handleProgress","direction","total","percent","loaded","onprogress","bind","upload","open","contentType","setRequestHeader","head","patch","post","put","lookup","revLookup","Uint8Array","getLens","b64","validLen","encodeChunk","uint8","start","tmp","num","output","base64Js","extraBytes","len2","base64Url","version","raw","attribute","attr","variable","assert","check","config","attributes","optional","message","condition","value_message","supportsIsArray","objectAssignPolyfill","to","nextSource","keysArray","nextIndex","nextKey","desc","getOwnPropertyDescriptor","enumerable","objectAssign","pick","prev","extend","unshift","getLocationFromUrl","href","host","hostname","port","pathname","search","hash","trimmed","objectHelper","toSnakeCase","exceptions","p","newKey","wasPrevNumber","wasPrevUppercase","toCamelCase","keepOriginal","blacklist","blacklistedKeys","base","object2","keys2","getKeysNotIn","allowedKeys","notAllowed","getOriginFromUrl","parsed","origin","trimUserDetails","updatePropertyOn","path","next","RequestWrapper","RequestObj","RequestBuilder","_sendTelemetry","_telemetryInfo","_timesToRetryFailedRequests","_universalLoginPage","universalLoginPage","getWindow","getMethod","getBody","getUrl","getHeaders","setCommonConfiguration","ongoingRequest","noHeaders","getTelemetryData","telemetryName","clientInfo","env","jsonClientInfo","windowHelper","getDocument","document","getOrigin","DummyStorage","getItem","removeItem","setItem","js_cookie","factory","result","init","converter","api","expires","toUTCString","stringifiedAttributes","attributeName","cookie","jar","cookies","read","getJSON","remove","withConverter","CookieStorage","Warn","disableWarnings","StorageHandler","storage","__tryLocalStorageFirst","localStorage","warning","Storage","handler","SSODataStorage","buildResponse","description","errorDescription","failover","_","connection","sub","ssodata","lastUsedConnection","lastUsedSub","invalidToken","wrapCallback","ignoreCasing","errObj","error_code","error_description","details","forceLegacyError","error_codes","error_details","errorDetails","codes","policy","keepOriginalCasing","tokenParams","authorizeParams","parametersWhitelist","t","r","lib","Base","mixIn","$super","clone","WordArray","words","sigBytes","clamp","ceil","random","h","enc","Hex","substr","u","Latin1","f","Utf8","BufferedBlockAlgorithm","reset","_nDataBytes","_append","_process","blockSize","max","_minBufferSize","min","_doProcessBlock","Hasher","cfg","_doReset","update","finalize","_doFinalize","_createHelper","_createHmacHelper","HMAC","algo","Math","i$1","sqrt","pow","SHA256","_hash","l","d","m","y","floor","HmacSHA256","Base64","_map","_reverseMap","fromNumber","fromString","navigator","appName","am","DB","DM","DV","FV","F1","F2","fromInt","mp","invDigit","mpl","mph","um","mt2","g","w","T","A","r2","q3","ONE","dlShiftTo","mu","divide","convert","compareTo","mod","revert","divRemTo","mulTo","multiplyTo","sqrTo","squareTo","abs","ZERO","subTo","copyTo","drShiftTo","fromRadix","lShiftTo","rShiftTo","isEven","exp","negate","toRadix","bitLength","modPowInt","multiplyUpperTo","multiplyLowerTo","dAddOffset","S","D","B","x","k","E","getTime","N","chunkSize","LN2","log","signum","intValue","dMultiply","testBit","bitwiseTo","shiftLeft","isProbablePrime","nextBytes","changeBit","addTo","modInt","millerRabin","subtract","getLowestSetBit","shiftRight","modPow","byteValue","shortValue","toByteArray","equals","and","or","xor","andNot","not","bitCount","setBit","clearBit","flipBit","add","multiply","remainder","divideAndRemainder","modInverse","gcd","square","Barrett","M","crypto","getRandomValues","I","appVersion","C","R","O","BigInteger","SecureRandom","sha1","sha224","sha256","sha384","sha512","md2","md5","ripemd160","verify","alg","map","MutationObserver","WebKitMutationObserver","process","Uint8ClampedArray","importScripts","MessageChannel","_state","_result","nextTick","createTextNode","observe","characterData","port1","onmessage","port2","postMessage","Function","require","runOnLoop","runOnContext","_onerror","_subscribers","P","_instanceConstructor","promise","_remaining","_enumerate","_eachEntry","_settledAt","V","_willSettleAt","all","race","_setScheduler","_setAsap","_asap","polyfill","cast","jwksCache","expectedAlg","issuer","audience","leeway","jwksURI","maxAge","__clock","PluginHandler","webAuth","plugins","pluginName","setWebAuth","encoded","payload","signature","kid","aud","iss","nbf","iat","azp","auth_time","nonce","getRsaVerifier","includes","setUTCSeconds","modulus","fetch","onload","responseURL","blob","Blob","entries","onerror","credentials","validateAccessToken","extensibilityPoint","supports","bytes","cryptoObj","msCrypto","TransactionManager","transaction","namespace","keyLength","IframeHandler","timeoutCallback","eventListenerType","iframe","timeoutHandle","_destroyTimeout","transientMessageEventListener","proxyEventListener","eventValidator","isValid","WebMessageHandler","baseOptions","CrossOriginAuthentication","webMessageHandler","createKey","coId","Redirect","auth0","crossOriginAuthentication","_disableDeprecationWarnings","realm","responseTypeIncludesIdToken","generateTransaction","appState","state","generateNonce","domain","getStoredTransaction","transactionData","clearTransaction","_this","_window","createElement","style","display","eventListener","eventSourceObject","appendChild","src","timeoutHandler","eventData","sourceObject","destroy","parentNode","removeChild","run","responseMode","prompt","currentOrigin","redirectUriOrigin","redirectUri","authorizeUrl","buildAuthorizeUrl","parsedHash","validateAuthenticationResponse","transactionManager","login","rootUrl","email","authenticateBody","client_id","clientID","otp","credentialType","credential_type","errorObject","popupMode","popup","authorizeOptions","loginTicket","login_ticket","co_id","co_verifier","authorize","targetOrigin","theWindow","evt","id","verifier","loginWithCredentials","signupAndLogin","dbConnection","signup","winchan","WinChan","addListener","attachEvent","detachEvent","extractOrigin","isIE","rv","ua","userAgent","RegExp","parseFloat","$1","relay_url","window_name","window_features","messageTarget","setAttribute","contentWindow","closeInterval","setInterval","closed","cleanup","clearInterval","onMessage","close","securityViolation","originalPopup","focus","onOpen","msgTarget","frames","opener","doPost","onDie","o_O","onUnload","ohWell","detach","winopts","arg","urlHelper","PopupHandler","_current_popup","Popup","popupOrigin","SilentAuthenticationHandler","authenticationUrl","postMessageDataType","postMessageOrigin","UsernamePassword","HostedPages","defaultClock","WebAuth","scope","overrides","__tenant","__token_issuer","__jwks_uri","tenant","token_issuer","Authentication","_universalLogin","ssodataStorage","PasswordlessAuthentication","DBConnection","passwordless","Management","token","Authorization","calculatePosition","width","height","screenX","screenLeft","screenY","screenTop","outerWidth","clientWidth","outerHeight","clientHeight","left","top","preload","popupPosition","popupOptions","windowFeatures","kill","load","relayUrl","winchanOptions","buildPopupHandler","pluginHandler","getPopupHandler","popupHandler","originUrl","parseHash","popOpts","owp","processParams","passwordlessVerify","phoneNumber","verificationCode","loginWithResourceOwner","usePostMessage","getCallbackHandler","getEventValidator","callbackValue","formHtml","div","_document","innerHTML","children","submit","usernamePassword","getSSOData","withActiveDirectories","ldaps","parsedQs","hashStr","tempObj","cleanStr","limit","skipIndex","part","bracketEqualsPos","newObj","lib_parse","responseTypes","__enableIdPInitiatedLogin","__enableImpersonation","transactionState","transactionStateMatchesState","transactionNonce","qsParams","accessToken","access_token","idToken","id_token","idTokenPayload","refreshToken","refresh_token","expiresIn","expires_in","tokenType","token_type","validateToken","validationError","at_hash","decodedToken","userInfo","errUserInfo","profile","renewAuth","checkSession","changePassword","passwordlessStart","authParams","signupAndAuthorize","passwordlessLogin","crossOriginOptions","crossOriginAuthenticationCallback","crossOriginVerification","logout","buildLogoutUrl","buildVerifyUrl","qString","auth0Client","redirect_uri","response_type","cleanOption","metadata","user_metadata","userMetadata","connection_scope","federated","loginWithDefaultDirectory","grantType","oauthToken","grant_type","clientId","ssodataInformation","sso","lastUsedUserID","lastUsedUsername","lastUsedClientID","sessionClients","getChallenge","delegation","getUserCountry","getUser","userId","patchUserMetadata","patchUserAttributes","linkUser","secondaryUserToken","link_with"],"mappings":"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","file":"9e82d048-be6cea7c0967cad28e81.js","sourcesContent":["import \"core-js/modules/es6.regexp.constructor\";\nimport \"core-js/modules/es7.array.includes\";\nimport \"core-js/modules/es6.string.includes\";\nimport \"core-js/modules/es6.string.sub\";\nimport \"core-js/modules/es7.promise.finally\";\nimport \"core-js/modules/es6.typed.uint8-clamped-array\";\nimport \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.object.assign\";\nimport \"core-js/modules/es6.typed.uint8-array\";\nimport \"core-js/modules/es6.function.bind\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.string.trim\";\nimport \"core-js/modules/es6.string.link\";\nimport \"core-js/modules/es6.date.to-json\";\nimport \"core-js/modules/es6.promise\";\nimport \"core-js/modules/es6.array.filter\";\nimport \"core-js/modules/es6.array.sort\";\nimport \"core-js/modules/es6.date.to-iso-string\";\nimport \"core-js/modules/es6.array.for-each\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.array.index-of\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.array.iterator\";\nimport \"core-js/modules/es6.object.keys\";\nimport \"core-js/modules/es6.array.reduce\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.date.to-string\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.array.is-array\";\nimport \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport \"core-js/modules/es6.regexp.match\";\n\n/**\n * auth0-js v9.13.2\n * Author: Auth0\n * Date: 2020-04-09\n * License: MIT\n */\nvar commonjsGlobal = \"undefined\" != typeof globalThis ? globalThis : \"undefined\" != typeof window ? window : \"undefined\" != typeof global ? global : \"undefined\" != typeof self ? self : {};\n\nfunction createCommonjsModule(fn, module) {\n return fn(module = {\n exports: {}\n }, module.exports), module.exports;\n}\n\nvar urlJoin = createCommonjsModule(function (module) {\n var context, definition;\n context = commonjsGlobal, definition = function definition() {\n function normalize(strArray) {\n var resultArray = [];\n if (0 === strArray.length) return \"\";\n if (\"string\" != typeof strArray[0]) throw new TypeError(\"Url must be a string. Received \" + strArray[0]);\n\n if (strArray[0].match(/^[^\\/:]+:\\/*$/) && strArray.length > 1) {\n var first = strArray.shift();\n strArray[0] = first + strArray[0];\n }\n\n strArray[0].match(/^file:\\/\\/\\//) ? strArray[0] = strArray[0].replace(/^([^\\/:]+):\\/*/, \"$1:///\") : strArray[0] = strArray[0].replace(/^([^\\/:]+):\\/*/, \"$1://\");\n\n for (var i = 0; i < strArray.length; i++) {\n var component = strArray[i];\n if (\"string\" != typeof component) throw new TypeError(\"Url must be a string. Received \" + component);\n \"\" !== component && (i > 0 && (component = component.replace(/^[\\/]+/, \"\")), component = i < strArray.length - 1 ? component.replace(/[\\/]+$/, \"\") : component.replace(/[\\/]+$/, \"/\"), resultArray.push(component));\n }\n\n var str = resultArray.join(\"/\"),\n parts = (str = str.replace(/\\/(\\?|&|#[^!])/g, \"$1\")).split(\"?\");\n return str = parts.shift() + (parts.length > 0 ? \"?\" : \"\") + parts.join(\"&\");\n }\n\n return function () {\n return normalize(\"object\" == typeof arguments[0] ? arguments[0] : [].slice.call(arguments));\n };\n }, module.exports ? module.exports = definition() : context.urljoin = definition();\n}),\n has = Object.prototype.hasOwnProperty,\n isArray = Array.isArray,\n hexTable = function () {\n for (var array = [], i = 0; i < 256; ++i) {\n array.push(\"%\" + ((i < 16 ? \"0\" : \"\") + i.toString(16)).toUpperCase());\n }\n\n return array;\n}(),\n arrayToObject = function arrayToObject(source, options) {\n for (var obj = options && options.plainObjects ? Object.create(null) : {}, i = 0; i < source.length; ++i) {\n void 0 !== source[i] && (obj[i] = source[i]);\n }\n\n return obj;\n},\n utils = {\n arrayToObject: arrayToObject,\n assign: function assign(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n return acc[key] = source[key], acc;\n }, target);\n },\n combine: function combine(a, b) {\n return [].concat(a, b);\n },\n compact: function compact(value) {\n for (var queue = [{\n obj: {\n o: value\n },\n prop: \"o\"\n }], refs = [], i = 0; i < queue.length; ++i) {\n for (var item = queue[i], obj = item.obj[item.prop], keys = Object.keys(obj), j = 0; j < keys.length; ++j) {\n var key = keys[j],\n val = obj[key];\n \"object\" == typeof val && null !== val && -1 === refs.indexOf(val) && (queue.push({\n obj: obj,\n prop: key\n }), refs.push(val));\n }\n }\n\n return function (queue) {\n for (; queue.length > 1;) {\n var item = queue.pop(),\n obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n for (var compacted = [], j = 0; j < obj.length; ++j) {\n void 0 !== obj[j] && compacted.push(obj[j]);\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n }(queue), value;\n },\n decode: function decode(str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, \" \");\n if (\"iso-8859-1\" === charset) return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n },\n encode: function encode(str, defaultEncoder, charset) {\n if (0 === str.length) return str;\n var string = str;\n if (\"symbol\" == typeof str ? string = Symbol.prototype.toString.call(str) : \"string\" != typeof str && (string = String(str)), \"iso-8859-1\" === charset) return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return \"%26%23\" + parseInt($0.slice(2), 16) + \"%3B\";\n });\n\n for (var out = \"\", i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n 45 === c || 46 === c || 95 === c || 126 === c || c >= 48 && c <= 57 || c >= 65 && c <= 90 || c >= 97 && c <= 122 ? out += string.charAt(i) : c < 128 ? out += hexTable[c] : c < 2048 ? out += hexTable[192 | c >> 6] + hexTable[128 | 63 & c] : c < 55296 || c >= 57344 ? out += hexTable[224 | c >> 12] + hexTable[128 | c >> 6 & 63] + hexTable[128 | 63 & c] : (i += 1, c = 65536 + ((1023 & c) << 10 | 1023 & string.charCodeAt(i)), out += hexTable[240 | c >> 18] + hexTable[128 | c >> 12 & 63] + hexTable[128 | c >> 6 & 63] + hexTable[128 | 63 & c]);\n }\n\n return out;\n },\n isBuffer: function isBuffer(obj) {\n return !(!obj || \"object\" != typeof obj || !(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj)));\n },\n isRegExp: function isRegExp(obj) {\n return \"[object RegExp]\" === Object.prototype.toString.call(obj);\n },\n merge: function merge(target, source, options) {\n if (!source) return target;\n\n if (\"object\" != typeof source) {\n if (isArray(target)) target.push(source);else {\n if (!target || \"object\" != typeof target) return [target, source];\n (options && (options.plainObjects || options.allowPrototypes) || !has.call(Object.prototype, source)) && (target[source] = !0);\n }\n return target;\n }\n\n if (!target || \"object\" != typeof target) return [target].concat(source);\n var mergeTarget = target;\n return isArray(target) && !isArray(source) && (mergeTarget = arrayToObject(target, options)), isArray(target) && isArray(source) ? (source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n targetItem && \"object\" == typeof targetItem && item && \"object\" == typeof item ? target[i] = merge(targetItem, item, options) : target.push(item);\n } else target[i] = item;\n }), target) : Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n return has.call(acc, key) ? acc[key] = merge(acc[key], value, options) : acc[key] = value, acc;\n }, mergeTarget);\n }\n},\n replace = String.prototype.replace,\n percentTwenties = /%20/g,\n Format = {\n RFC1738: \"RFC1738\",\n RFC3986: \"RFC3986\"\n},\n formats = utils.assign({\n \"default\": Format.RFC3986,\n formatters: {\n RFC1738: function RFC1738(value) {\n return replace.call(value, percentTwenties, \"+\");\n },\n RFC3986: function RFC3986(value) {\n return String(value);\n }\n }\n}, Format),\n has$1 = Object.prototype.hasOwnProperty,\n arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + \"[]\";\n },\n comma: \"comma\",\n indices: function indices(prefix, key) {\n return prefix + \"[\" + key + \"]\";\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n},\n isArray$1 = Array.isArray,\n push = Array.prototype.push,\n pushToArray = function pushToArray(arr, valueOrArray) {\n push.apply(arr, isArray$1(valueOrArray) ? valueOrArray : [valueOrArray]);\n},\n toISO = Date.prototype.toISOString,\n defaultFormat = formats[\"default\"],\n defaults = {\n addQueryPrefix: !1,\n allowDots: !1,\n charset: \"utf-8\",\n charsetSentinel: !1,\n delimiter: \"&\",\n encode: !0,\n encoder: utils.encode,\n encodeValuesOnly: !1,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n indices: !1,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: !1,\n strictNullHandling: !1\n},\n stringify = function stringify(object, prefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, formatter, encodeValuesOnly, charset) {\n var obj = object;\n\n if (\"function\" == typeof filter ? obj = filter(prefix, obj) : obj instanceof Date ? obj = serializeDate(obj) : \"comma\" === generateArrayPrefix && isArray$1(obj) && (obj = obj.join(\",\")), null === obj) {\n if (strictNullHandling) return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset) : prefix;\n obj = \"\";\n }\n\n if (function (v) {\n return \"string\" == typeof v || \"number\" == typeof v || \"boolean\" == typeof v || \"symbol\" == typeof v || \"bigint\" == typeof v;\n }(obj) || utils.isBuffer(obj)) return encoder ? [formatter(encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset)) + \"=\" + formatter(encoder(obj, defaults.encoder, charset))] : [formatter(prefix) + \"=\" + formatter(String(obj))];\n var objKeys,\n values = [];\n if (void 0 === obj) return values;\n if (isArray$1(filter)) objKeys = filter;else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n skipNulls && null === obj[key] || (isArray$1(obj) ? pushToArray(values, stringify(obj[key], \"function\" == typeof generateArrayPrefix ? generateArrayPrefix(prefix, key) : prefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, formatter, encodeValuesOnly, charset)) : pushToArray(values, stringify(obj[key], prefix + (allowDots ? \".\" + key : \"[\" + key + \"]\"), generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, formatter, encodeValuesOnly, charset)));\n }\n\n return values;\n},\n has$2 = Object.prototype.hasOwnProperty,\n defaults$1 = {\n allowDots: !1,\n allowPrototypes: !1,\n arrayLimit: 20,\n charset: \"utf-8\",\n charsetSentinel: !1,\n comma: !1,\n decoder: utils.decode,\n delimiter: \"&\",\n depth: 5,\n ignoreQueryPrefix: !1,\n interpretNumericEntities: !1,\n parameterLimit: 1e3,\n parseArrays: !0,\n plainObjects: !1,\n strictNullHandling: !1\n},\n interpretNumericEntities = function interpretNumericEntities(str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n},\n parseKeys = function parseKeys(givenKey, val, options) {\n if (givenKey) {\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, \"[$1]\") : givenKey,\n child = /(\\[[^[\\]]*])/g,\n segment = options.depth > 0 && /(\\[[^[\\]]*])/.exec(key),\n parent = segment ? key.slice(0, segment.index) : key,\n keys = [];\n\n if (parent) {\n if (!options.plainObjects && has$2.call(Object.prototype, parent) && !options.allowPrototypes) return;\n keys.push(parent);\n }\n\n for (var i = 0; options.depth > 0 && null !== (segment = child.exec(key)) && i < options.depth;) {\n if (i += 1, !options.plainObjects && has$2.call(Object.prototype, segment[1].slice(1, -1)) && !options.allowPrototypes) return;\n keys.push(segment[1]);\n }\n\n return segment && keys.push(\"[\" + key.slice(segment.index) + \"]\"), function (chain, val, options) {\n for (var leaf = val, i = chain.length - 1; i >= 0; --i) {\n var obj,\n root = chain[i];\n if (\"[]\" === root && options.parseArrays) obj = [].concat(leaf);else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = \"[\" === root.charAt(0) && \"]\" === root.charAt(root.length - 1) ? root.slice(1, -1) : root,\n index = parseInt(cleanRoot, 10);\n options.parseArrays || \"\" !== cleanRoot ? !isNaN(index) && root !== cleanRoot && String(index) === cleanRoot && index >= 0 && options.parseArrays && index <= options.arrayLimit ? (obj = [])[index] = leaf : obj[cleanRoot] = leaf : obj = {\n 0: leaf\n };\n }\n leaf = obj;\n }\n\n return leaf;\n }(keys, val, options);\n }\n},\n lib_parse = function lib_parse(str, opts) {\n var options = function (opts) {\n if (!opts) return defaults$1;\n if (null !== opts.decoder && void 0 !== opts.decoder && \"function\" != typeof opts.decoder) throw new TypeError(\"Decoder has to be a function.\");\n if (void 0 !== opts.charset && \"utf-8\" !== opts.charset && \"iso-8859-1\" !== opts.charset) throw new Error(\"The charset option must be either utf-8, iso-8859-1, or undefined\");\n var charset = void 0 === opts.charset ? defaults$1.charset : opts.charset;\n return {\n allowDots: void 0 === opts.allowDots ? defaults$1.allowDots : !!opts.allowDots,\n allowPrototypes: \"boolean\" == typeof opts.allowPrototypes ? opts.allowPrototypes : defaults$1.allowPrototypes,\n arrayLimit: \"number\" == typeof opts.arrayLimit ? opts.arrayLimit : defaults$1.arrayLimit,\n charset: charset,\n charsetSentinel: \"boolean\" == typeof opts.charsetSentinel ? opts.charsetSentinel : defaults$1.charsetSentinel,\n comma: \"boolean\" == typeof opts.comma ? opts.comma : defaults$1.comma,\n decoder: \"function\" == typeof opts.decoder ? opts.decoder : defaults$1.decoder,\n delimiter: \"string\" == typeof opts.delimiter || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults$1.delimiter,\n depth: \"number\" == typeof opts.depth || !1 === opts.depth ? +opts.depth : defaults$1.depth,\n ignoreQueryPrefix: !0 === opts.ignoreQueryPrefix,\n interpretNumericEntities: \"boolean\" == typeof opts.interpretNumericEntities ? opts.interpretNumericEntities : defaults$1.interpretNumericEntities,\n parameterLimit: \"number\" == typeof opts.parameterLimit ? opts.parameterLimit : defaults$1.parameterLimit,\n parseArrays: !1 !== opts.parseArrays,\n plainObjects: \"boolean\" == typeof opts.plainObjects ? opts.plainObjects : defaults$1.plainObjects,\n strictNullHandling: \"boolean\" == typeof opts.strictNullHandling ? opts.strictNullHandling : defaults$1.strictNullHandling\n };\n }(opts);\n\n if (\"\" === str || null == str) return options.plainObjects ? Object.create(null) : {};\n\n for (var tempObj = \"string\" == typeof str ? function (str, options) {\n var i,\n obj = {},\n cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, \"\") : str,\n limit = options.parameterLimit === 1 / 0 ? void 0 : options.parameterLimit,\n parts = cleanStr.split(options.delimiter, limit),\n skipIndex = -1,\n charset = options.charset;\n if (options.charsetSentinel) for (i = 0; i < parts.length; ++i) {\n 0 === parts[i].indexOf(\"utf8=\") && (\"utf8=%E2%9C%93\" === parts[i] ? charset = \"utf-8\" : \"utf8=%26%2310003%3B\" === parts[i] && (charset = \"iso-8859-1\"), skipIndex = i, i = parts.length);\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i !== skipIndex) {\n var key,\n val,\n part = parts[i],\n bracketEqualsPos = part.indexOf(\"]=\"),\n pos = -1 === bracketEqualsPos ? part.indexOf(\"=\") : bracketEqualsPos + 1;\n -1 === pos ? (key = options.decoder(part, defaults$1.decoder, charset), val = options.strictNullHandling ? null : \"\") : (key = options.decoder(part.slice(0, pos), defaults$1.decoder, charset), val = options.decoder(part.slice(pos + 1), defaults$1.decoder, charset)), val && options.interpretNumericEntities && \"iso-8859-1\" === charset && (val = interpretNumericEntities(val)), val && options.comma && val.indexOf(\",\") > -1 && (val = val.split(\",\")), has$2.call(obj, key) ? obj[key] = utils.combine(obj[key], val) : obj[key] = val;\n }\n }\n\n return obj;\n }(str, options) : str, obj = options.plainObjects ? Object.create(null) : {}, keys = Object.keys(tempObj), i = 0; i < keys.length; ++i) {\n var key = keys[i],\n newObj = parseKeys(key, tempObj[key], options);\n obj = utils.merge(obj, newObj, options);\n }\n\n return utils.compact(obj);\n},\n lib_stringify = function lib_stringify(object, opts) {\n var objKeys,\n obj = object,\n options = function (opts) {\n if (!opts) return defaults;\n if (null !== opts.encoder && void 0 !== opts.encoder && \"function\" != typeof opts.encoder) throw new TypeError(\"Encoder has to be a function.\");\n var charset = opts.charset || defaults.charset;\n if (void 0 !== opts.charset && \"utf-8\" !== opts.charset && \"iso-8859-1\" !== opts.charset) throw new TypeError(\"The charset option must be either utf-8, iso-8859-1, or undefined\");\n var format = formats[\"default\"];\n\n if (void 0 !== opts.format) {\n if (!has$1.call(formats.formatters, opts.format)) throw new TypeError(\"Unknown format option provided.\");\n format = opts.format;\n }\n\n var formatter = formats.formatters[format],\n filter = defaults.filter;\n return (\"function\" == typeof opts.filter || isArray$1(opts.filter)) && (filter = opts.filter), {\n addQueryPrefix: \"boolean\" == typeof opts.addQueryPrefix ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: void 0 === opts.allowDots ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: \"boolean\" == typeof opts.charsetSentinel ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: void 0 === opts.delimiter ? defaults.delimiter : opts.delimiter,\n encode: \"boolean\" == typeof opts.encode ? opts.encode : defaults.encode,\n encoder: \"function\" == typeof opts.encoder ? opts.encoder : defaults.encoder,\n encodeValuesOnly: \"boolean\" == typeof opts.encodeValuesOnly ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n formatter: formatter,\n serializeDate: \"function\" == typeof opts.serializeDate ? opts.serializeDate : defaults.serializeDate,\n skipNulls: \"boolean\" == typeof opts.skipNulls ? opts.skipNulls : defaults.skipNulls,\n sort: \"function\" == typeof opts.sort ? opts.sort : null,\n strictNullHandling: \"boolean\" == typeof opts.strictNullHandling ? opts.strictNullHandling : defaults.strictNullHandling\n };\n }(opts);\n\n \"function\" == typeof options.filter ? obj = (0, options.filter)(\"\", obj) : isArray$1(options.filter) && (objKeys = options.filter);\n var arrayFormat,\n keys = [];\n if (\"object\" != typeof obj || null === obj) return \"\";\n arrayFormat = opts && opts.arrayFormat in arrayPrefixGenerators ? opts.arrayFormat : opts && \"indices\" in opts ? opts.indices ? \"indices\" : \"repeat\" : \"indices\";\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n objKeys || (objKeys = Object.keys(obj)), options.sort && objKeys.sort(options.sort);\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n options.skipNulls && null === obj[key] || pushToArray(keys, stringify(obj[key], key, generateArrayPrefix, options.strictNullHandling, options.skipNulls, options.encode ? options.encoder : null, options.filter, options.sort, options.allowDots, options.serializeDate, options.formatter, options.encodeValuesOnly, options.charset));\n }\n\n var joined = keys.join(options.delimiter),\n prefix = !0 === options.addQueryPrefix ? \"?\" : \"\";\n return options.charsetSentinel && (\"iso-8859-1\" === options.charset ? prefix += \"utf8=%26%2310003%3B&\" : prefix += \"utf8=%E2%9C%93&\"), joined.length > 0 ? prefix + joined : \"\";\n},\n componentEmitter = createCommonjsModule(function (module) {\n function Emitter(obj) {\n if (obj) return function (obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n\n return obj;\n }(obj);\n }\n\n module.exports = Emitter, Emitter.prototype.on = Emitter.prototype.addEventListener = function (event, fn) {\n return this._callbacks = this._callbacks || {}, (this._callbacks[\"$\" + event] = this._callbacks[\"$\" + event] || []).push(fn), this;\n }, Emitter.prototype.once = function (event, fn) {\n function on() {\n this.off(event, on), fn.apply(this, arguments);\n }\n\n return on.fn = fn, this.on(event, on), this;\n }, Emitter.prototype.off = Emitter.prototype.removeListener = Emitter.prototype.removeAllListeners = Emitter.prototype.removeEventListener = function (event, fn) {\n if (this._callbacks = this._callbacks || {}, 0 == arguments.length) return this._callbacks = {}, this;\n var cb,\n callbacks = this._callbacks[\"$\" + event];\n if (!callbacks) return this;\n if (1 == arguments.length) return delete this._callbacks[\"$\" + event], this;\n\n for (var i = 0; i < callbacks.length; i++) {\n if ((cb = callbacks[i]) === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n return 0 === callbacks.length && delete this._callbacks[\"$\" + event], this;\n }, Emitter.prototype.emit = function (event) {\n this._callbacks = this._callbacks || {};\n\n for (var args = new Array(arguments.length - 1), callbacks = this._callbacks[\"$\" + event], i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n i = 0;\n\n for (var len = (callbacks = callbacks.slice(0)).length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n }, Emitter.prototype.listeners = function (event) {\n return this._callbacks = this._callbacks || {}, this._callbacks[\"$\" + event] || [];\n }, Emitter.prototype.hasListeners = function (event) {\n return !!this.listeners(event).length;\n };\n});\n\nvar isObject_1 = function isObject_1(obj) {\n return null !== obj && \"object\" == typeof obj;\n},\n requestBase = RequestBase;\n\nfunction RequestBase(obj) {\n if (obj) return function (obj) {\n for (var key in RequestBase.prototype) {\n obj[key] = RequestBase.prototype[key];\n }\n\n return obj;\n }(obj);\n}\n\nRequestBase.prototype.clearTimeout = function () {\n return clearTimeout(this._timer), clearTimeout(this._responseTimeoutTimer), delete this._timer, delete this._responseTimeoutTimer, this;\n}, RequestBase.prototype.parse = function (fn) {\n return this._parser = fn, this;\n}, RequestBase.prototype.responseType = function (val) {\n return this._responseType = val, this;\n}, RequestBase.prototype.serialize = function (fn) {\n return this._serializer = fn, this;\n}, RequestBase.prototype.timeout = function (options) {\n if (!options || \"object\" != typeof options) return this._timeout = options, this._responseTimeout = 0, this;\n\n for (var option in options) {\n switch (option) {\n case \"deadline\":\n this._timeout = options.deadline;\n break;\n\n case \"response\":\n this._responseTimeout = options.response;\n break;\n\n default:\n console.warn(\"Unknown timeout option\", option);\n }\n }\n\n return this;\n}, RequestBase.prototype.retry = function (count, fn) {\n return 0 !== arguments.length && !0 !== count || (count = 1), count <= 0 && (count = 0), this._maxRetries = count, this._retries = 0, this._retryCallback = fn, this;\n};\nvar ERROR_CODES = [\"ECONNRESET\", \"ETIMEDOUT\", \"EADDRINFO\", \"ESOCKETTIMEDOUT\"];\nRequestBase.prototype._shouldRetry = function (err, res) {\n if (!this._maxRetries || this._retries++ >= this._maxRetries) return !1;\n if (this._retryCallback) try {\n var override = this._retryCallback(err, res);\n\n if (!0 === override) return !0;\n if (!1 === override) return !1;\n } catch (e) {\n console.error(e);\n }\n if (res && res.status && res.status >= 500 && 501 != res.status) return !0;\n\n if (err) {\n if (err.code && ~ERROR_CODES.indexOf(err.code)) return !0;\n if (err.timeout && \"ECONNABORTED\" == err.code) return !0;\n if (err.crossDomain) return !0;\n }\n\n return !1;\n}, RequestBase.prototype._retry = function () {\n return this.clearTimeout(), this.req && (this.req = null, this.req = this.request()), this._aborted = !1, this.timedout = !1, this._end();\n}, RequestBase.prototype.then = function (resolve, reject) {\n if (!this._fullfilledPromise) {\n var self = this;\n this._endCalled && console.warn(\"Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises\"), this._fullfilledPromise = new Promise(function (innerResolve, innerReject) {\n self.end(function (err, res) {\n err ? innerReject(err) : innerResolve(res);\n });\n });\n }\n\n return this._fullfilledPromise.then(resolve, reject);\n}, RequestBase.prototype[\"catch\"] = function (cb) {\n return this.then(void 0, cb);\n}, RequestBase.prototype.use = function (fn) {\n return fn(this), this;\n}, RequestBase.prototype.ok = function (cb) {\n if (\"function\" != typeof cb) throw Error(\"Callback required\");\n return this._okCallback = cb, this;\n}, RequestBase.prototype._isResponseOK = function (res) {\n return !!res && (this._okCallback ? this._okCallback(res) : res.status >= 200 && res.status < 300);\n}, RequestBase.prototype.get = function (field) {\n return this._header[field.toLowerCase()];\n}, RequestBase.prototype.getHeader = RequestBase.prototype.get, RequestBase.prototype.set = function (field, val) {\n if (isObject_1(field)) {\n for (var key in field) {\n this.set(key, field[key]);\n }\n\n return this;\n }\n\n return this._header[field.toLowerCase()] = val, this.header[field] = val, this;\n}, RequestBase.prototype.unset = function (field) {\n return delete this._header[field.toLowerCase()], delete this.header[field], this;\n}, RequestBase.prototype.field = function (name, val) {\n if (null == name) throw new Error(\".field(name, val) name can not be empty\");\n\n if (this._data && console.error(\".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()\"), isObject_1(name)) {\n for (var key in name) {\n this.field(key, name[key]);\n }\n\n return this;\n }\n\n if (Array.isArray(val)) {\n for (var i in val) {\n this.field(name, val[i]);\n }\n\n return this;\n }\n\n if (null == val) throw new Error(\".field(name, val) val can not be empty\");\n return \"boolean\" == typeof val && (val = \"\" + val), this._getFormData().append(name, val), this;\n}, RequestBase.prototype.abort = function () {\n return this._aborted ? this : (this._aborted = !0, this.xhr && this.xhr.abort(), this.req && this.req.abort(), this.clearTimeout(), this.emit(\"abort\"), this);\n}, RequestBase.prototype._auth = function (user, pass, options, base64Encoder) {\n switch (options.type) {\n case \"basic\":\n this.set(\"Authorization\", \"Basic \" + base64Encoder(user + \":\" + pass));\n break;\n\n case \"auto\":\n this.username = user, this.password = pass;\n break;\n\n case \"bearer\":\n this.set(\"Authorization\", \"Bearer \" + user);\n }\n\n return this;\n}, RequestBase.prototype.withCredentials = function (on) {\n return null == on && (on = !0), this._withCredentials = on, this;\n}, RequestBase.prototype.redirects = function (n) {\n return this._maxRedirects = n, this;\n}, RequestBase.prototype.maxResponseSize = function (n) {\n if (\"number\" != typeof n) throw TypeError(\"Invalid argument\");\n return this._maxResponseSize = n, this;\n}, RequestBase.prototype.toJSON = function () {\n return {\n method: this.method,\n url: this.url,\n data: this._data,\n headers: this._header\n };\n}, RequestBase.prototype.send = function (data) {\n var isObj = isObject_1(data),\n type = this._header[\"content-type\"];\n if (this._formData && console.error(\".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()\"), isObj && !this._data) Array.isArray(data) ? this._data = [] : this._isHost(data) || (this._data = {});else if (data && this._data && this._isHost(this._data)) throw Error(\"Can't merge these send calls\");\n if (isObj && isObject_1(this._data)) for (var key in data) {\n this._data[key] = data[key];\n } else \"string\" == typeof data ? (type || this.type(\"form\"), type = this._header[\"content-type\"], this._data = \"application/x-www-form-urlencoded\" == type ? this._data ? this._data + \"&\" + data : data : (this._data || \"\") + data) : this._data = data;\n return !isObj || this._isHost(data) ? this : (type || this.type(\"json\"), this);\n}, RequestBase.prototype.sortQuery = function (sort) {\n return this._sort = void 0 === sort || sort, this;\n}, RequestBase.prototype._finalizeQueryString = function () {\n var query = this._query.join(\"&\");\n\n if (query && (this.url += (this.url.indexOf(\"?\") >= 0 ? \"&\" : \"?\") + query), this._query.length = 0, this._sort) {\n var index = this.url.indexOf(\"?\");\n\n if (index >= 0) {\n var queryArr = this.url.substring(index + 1).split(\"&\");\n \"function\" == typeof this._sort ? queryArr.sort(this._sort) : queryArr.sort(), this.url = this.url.substring(0, index) + \"?\" + queryArr.join(\"&\");\n }\n }\n}, RequestBase.prototype._appendQueryString = function () {\n console.trace(\"Unsupported\");\n}, RequestBase.prototype._timeoutError = function (reason, timeout, errno) {\n if (!this._aborted) {\n var err = new Error(reason + timeout + \"ms exceeded\");\n err.timeout = timeout, err.code = \"ECONNABORTED\", err.errno = errno, this.timedout = !0, this.abort(), this.callback(err);\n }\n}, RequestBase.prototype._setTimeouts = function () {\n var self = this;\n this._timeout && !this._timer && (this._timer = setTimeout(function () {\n self._timeoutError(\"Timeout of \", self._timeout, \"ETIME\");\n }, this._timeout)), this._responseTimeout && !this._responseTimeoutTimer && (this._responseTimeoutTimer = setTimeout(function () {\n self._timeoutError(\"Response timeout of \", self._responseTimeout, \"ETIMEDOUT\");\n }, this._responseTimeout));\n};\n\nvar utils$1_type = function utils$1_type(str) {\n return str.split(/ *; */).shift();\n},\n utils$1_params = function utils$1_params(str) {\n return str.split(/ *; */).reduce(function (obj, str) {\n var parts = str.split(/ *= */),\n key = parts.shift(),\n val = parts.shift();\n return key && val && (obj[key] = val), obj;\n }, {});\n},\n utils$1_parseLinks = function utils$1_parseLinks(str) {\n return str.split(/ *, */).reduce(function (obj, str) {\n var parts = str.split(/ *; */),\n url = parts[0].slice(1, -1);\n return obj[parts[1].split(/ *= */)[1].slice(1, -1)] = url, obj;\n }, {});\n},\n responseBase = ResponseBase;\n\nfunction ResponseBase(obj) {\n if (obj) return function (obj) {\n for (var key in ResponseBase.prototype) {\n obj[key] = ResponseBase.prototype[key];\n }\n\n return obj;\n }(obj);\n}\n\nfunction Agent() {\n this._defaults = [];\n}\n\nResponseBase.prototype.get = function (field) {\n return this.header[field.toLowerCase()];\n}, ResponseBase.prototype._setHeaderProperties = function (header) {\n var ct = header[\"content-type\"] || \"\";\n this.type = utils$1_type(ct);\n var params = utils$1_params(ct);\n\n for (var key in params) {\n this[key] = params[key];\n }\n\n this.links = {};\n\n try {\n header.link && (this.links = utils$1_parseLinks(header.link));\n } catch (err) {}\n}, ResponseBase.prototype._setStatusProperties = function (status) {\n var type = status / 100 | 0;\n this.status = this.statusCode = status, this.statusType = type, this.info = 1 == type, this.ok = 2 == type, this.redirect = 3 == type, this.clientError = 4 == type, this.serverError = 5 == type, this.error = (4 == type || 5 == type) && this.toError(), this.created = 201 == status, this.accepted = 202 == status, this.noContent = 204 == status, this.badRequest = 400 == status, this.unauthorized = 401 == status, this.notAcceptable = 406 == status, this.forbidden = 403 == status, this.notFound = 404 == status, this.unprocessableEntity = 422 == status;\n}, [\"use\", \"on\", \"once\", \"set\", \"query\", \"type\", \"accept\", \"auth\", \"withCredentials\", \"sortQuery\", \"retry\", \"ok\", \"redirects\", \"timeout\", \"buffer\", \"serialize\", \"parse\", \"ca\", \"key\", \"pfx\", \"cert\"].forEach(function (fn) {\n Agent.prototype[fn] = function () {\n return this._defaults.push({\n fn: fn,\n arguments: arguments\n }), this;\n };\n}), Agent.prototype._setDefaults = function (req) {\n this._defaults.forEach(function (def) {\n req[def.fn].apply(req, def.arguments);\n });\n};\n\nfor (var agentBase = Agent, client = createCommonjsModule(function (module, exports) {\n var root;\n\n function noop() {}\n\n \"undefined\" != typeof window ? root = window : \"undefined\" != typeof self ? root = self : (console.warn(\"Using browser-only version of superagent in non-browser environment\"), root = commonjsGlobal);\n\n var request = exports = module.exports = function (method, url) {\n return \"function\" == typeof url ? new exports.Request(\"GET\", method).end(url) : 1 == arguments.length ? new exports.Request(\"GET\", method) : new exports.Request(method, url);\n };\n\n exports.Request = Request, request.getXHR = function () {\n if (!(!root.XMLHttpRequest || root.location && \"file:\" == root.location.protocol && root.ActiveXObject)) return new XMLHttpRequest();\n\n try {\n return new ActiveXObject(\"Microsoft.XMLHTTP\");\n } catch (e) {}\n\n try {\n return new ActiveXObject(\"Msxml2.XMLHTTP.6.0\");\n } catch (e) {}\n\n try {\n return new ActiveXObject(\"Msxml2.XMLHTTP.3.0\");\n } catch (e) {}\n\n try {\n return new ActiveXObject(\"Msxml2.XMLHTTP\");\n } catch (e) {}\n\n throw Error(\"Browser-only version of superagent could not find XHR\");\n };\n var trim = \"\".trim ? function (s) {\n return s.trim();\n } : function (s) {\n return s.replace(/(^\\s*|\\s*$)/g, \"\");\n };\n\n function serialize(obj) {\n if (!isObject_1(obj)) return obj;\n var pairs = [];\n\n for (var key in obj) {\n pushEncodedKeyValuePair(pairs, key, obj[key]);\n }\n\n return pairs.join(\"&\");\n }\n\n function pushEncodedKeyValuePair(pairs, key, val) {\n if (null != val) {\n if (Array.isArray(val)) val.forEach(function (v) {\n pushEncodedKeyValuePair(pairs, key, v);\n });else if (isObject_1(val)) for (var subkey in val) {\n pushEncodedKeyValuePair(pairs, key + \"[\" + subkey + \"]\", val[subkey]);\n } else pairs.push(encodeURIComponent(key) + \"=\" + encodeURIComponent(val));\n } else null === val && pairs.push(encodeURIComponent(key));\n }\n\n function parseString(str) {\n for (var pair, pos, obj = {}, pairs = str.split(\"&\"), i = 0, len = pairs.length; i < len; ++i) {\n -1 == (pos = (pair = pairs[i]).indexOf(\"=\")) ? obj[decodeURIComponent(pair)] = \"\" : obj[decodeURIComponent(pair.slice(0, pos))] = decodeURIComponent(pair.slice(pos + 1));\n }\n\n return obj;\n }\n\n function isJSON(mime) {\n return /[\\/+]json($|[^-\\w])/.test(mime);\n }\n\n function Response(req) {\n this.req = req, this.xhr = this.req.xhr, this.text = \"HEAD\" != this.req.method && (\"\" === this.xhr.responseType || \"text\" === this.xhr.responseType) || void 0 === this.xhr.responseType ? this.xhr.responseText : null, this.statusText = this.req.xhr.statusText;\n var status = this.xhr.status;\n 1223 === status && (status = 204), this._setStatusProperties(status), this.header = this.headers = function (str) {\n for (var index, line, field, val, lines = str.split(/\\r?\\n/), fields = {}, i = 0, len = lines.length; i < len; ++i) {\n -1 !== (index = (line = lines[i]).indexOf(\":\")) && (field = line.slice(0, index).toLowerCase(), val = trim(line.slice(index + 1)), fields[field] = val);\n }\n\n return fields;\n }(this.xhr.getAllResponseHeaders()), this.header[\"content-type\"] = this.xhr.getResponseHeader(\"content-type\"), this._setHeaderProperties(this.header), null === this.text && req._responseType ? this.body = this.xhr.response : this.body = \"HEAD\" != this.req.method ? this._parseBody(this.text ? this.text : this.xhr.response) : null;\n }\n\n function Request(method, url) {\n var self = this;\n this._query = this._query || [], this.method = method, this.url = url, this.header = {}, this._header = {}, this.on(\"end\", function () {\n var new_err,\n err = null,\n res = null;\n\n try {\n res = new Response(self);\n } catch (e) {\n return (err = new Error(\"Parser is unable to parse the response\")).parse = !0, err.original = e, self.xhr ? (err.rawResponse = void 0 === self.xhr.responseType ? self.xhr.responseText : self.xhr.response, err.status = self.xhr.status ? self.xhr.status : null, err.statusCode = err.status) : (err.rawResponse = null, err.status = null), self.callback(err);\n }\n\n self.emit(\"response\", res);\n\n try {\n self._isResponseOK(res) || (new_err = new Error(res.statusText || \"Unsuccessful HTTP response\"));\n } catch (custom_err) {\n new_err = custom_err;\n }\n\n new_err ? (new_err.original = err, new_err.response = res, new_err.status = res.status, self.callback(new_err, res)) : self.callback(null, res);\n });\n }\n\n function del(url, data, fn) {\n var req = request(\"DELETE\", url);\n return \"function\" == typeof data && (fn = data, data = null), data && req.send(data), fn && req.end(fn), req;\n }\n\n request.serializeObject = serialize, request.parseString = parseString, request.types = {\n html: \"text/html\",\n json: \"application/json\",\n xml: \"text/xml\",\n urlencoded: \"application/x-www-form-urlencoded\",\n form: \"application/x-www-form-urlencoded\",\n \"form-data\": \"application/x-www-form-urlencoded\"\n }, request.serialize = {\n \"application/x-www-form-urlencoded\": serialize,\n \"application/json\": JSON.stringify\n }, request.parse = {\n \"application/x-www-form-urlencoded\": parseString,\n \"application/json\": JSON.parse\n }, responseBase(Response.prototype), Response.prototype._parseBody = function (str) {\n var parse = request.parse[this.type];\n return this.req._parser ? this.req._parser(this, str) : (!parse && isJSON(this.type) && (parse = request.parse[\"application/json\"]), parse && str && (str.length || str instanceof Object) ? parse(str) : null);\n }, Response.prototype.toError = function () {\n var req = this.req,\n method = req.method,\n url = req.url,\n msg = \"cannot \" + method + \" \" + url + \" (\" + this.status + \")\",\n err = new Error(msg);\n return err.status = this.status, err.method = method, err.url = url, err;\n }, request.Response = Response, componentEmitter(Request.prototype), requestBase(Request.prototype), Request.prototype.type = function (type) {\n return this.set(\"Content-Type\", request.types[type] || type), this;\n }, Request.prototype.accept = function (type) {\n return this.set(\"Accept\", request.types[type] || type), this;\n }, Request.prototype.auth = function (user, pass, options) {\n 1 === arguments.length && (pass = \"\"), \"object\" == typeof pass && null !== pass && (options = pass, pass = \"\"), options || (options = {\n type: \"function\" == typeof btoa ? \"basic\" : \"auto\"\n });\n\n var encoder = function encoder(string) {\n if (\"function\" == typeof btoa) return btoa(string);\n throw new Error(\"Cannot use basic auth, btoa is not a function\");\n };\n\n return this._auth(user, pass, options, encoder);\n }, Request.prototype.query = function (val) {\n return \"string\" != typeof val && (val = serialize(val)), val && this._query.push(val), this;\n }, Request.prototype.attach = function (field, file, options) {\n if (file) {\n if (this._data) throw Error(\"superagent can't mix .send() and .attach()\");\n\n this._getFormData().append(field, file, options || file.name);\n }\n\n return this;\n }, Request.prototype._getFormData = function () {\n return this._formData || (this._formData = new root.FormData()), this._formData;\n }, Request.prototype.callback = function (err, res) {\n if (this._shouldRetry(err, res)) return this._retry();\n var fn = this._callback;\n this.clearTimeout(), err && (this._maxRetries && (err.retries = this._retries - 1), this.emit(\"error\", err)), fn(err, res);\n }, Request.prototype.crossDomainError = function () {\n var err = new Error(\"Request has been terminated\\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.\");\n err.crossDomain = !0, err.status = this.status, err.method = this.method, err.url = this.url, this.callback(err);\n }, Request.prototype.buffer = Request.prototype.ca = Request.prototype.agent = function () {\n return console.warn(\"This is not supported in browser version of superagent\"), this;\n }, Request.prototype.pipe = Request.prototype.write = function () {\n throw Error(\"Streaming is not supported in browser version of superagent\");\n }, Request.prototype._isHost = function (obj) {\n return obj && \"object\" == typeof obj && !Array.isArray(obj) && \"[object Object]\" !== Object.prototype.toString.call(obj);\n }, Request.prototype.end = function (fn) {\n return this._endCalled && console.warn(\"Warning: .end() was called twice. This is not supported in superagent\"), this._endCalled = !0, this._callback = fn || noop, this._finalizeQueryString(), this._end();\n }, Request.prototype._end = function () {\n var self = this,\n xhr = this.xhr = request.getXHR(),\n data = this._formData || this._data;\n this._setTimeouts(), xhr.onreadystatechange = function () {\n var readyState = xhr.readyState;\n\n if (readyState >= 2 && self._responseTimeoutTimer && clearTimeout(self._responseTimeoutTimer), 4 == readyState) {\n var status;\n\n try {\n status = xhr.status;\n } catch (e) {\n status = 0;\n }\n\n if (!status) {\n if (self.timedout || self._aborted) return;\n return self.crossDomainError();\n }\n\n self.emit(\"end\");\n }\n };\n\n var handleProgress = function handleProgress(direction, e) {\n e.total > 0 && (e.percent = e.loaded / e.total * 100), e.direction = direction, self.emit(\"progress\", e);\n };\n\n if (this.hasListeners(\"progress\")) try {\n xhr.onprogress = handleProgress.bind(null, \"download\"), xhr.upload && (xhr.upload.onprogress = handleProgress.bind(null, \"upload\"));\n } catch (e) {}\n\n try {\n this.username && this.password ? xhr.open(this.method, this.url, !0, this.username, this.password) : xhr.open(this.method, this.url, !0);\n } catch (err) {\n return this.callback(err);\n }\n\n if (this._withCredentials && (xhr.withCredentials = !0), !this._formData && \"GET\" != this.method && \"HEAD\" != this.method && \"string\" != typeof data && !this._isHost(data)) {\n var contentType = this._header[\"content-type\"],\n serialize = this._serializer || request.serialize[contentType ? contentType.split(\";\")[0] : \"\"];\n !serialize && isJSON(contentType) && (serialize = request.serialize[\"application/json\"]), serialize && (data = serialize(data));\n }\n\n for (var field in this.header) {\n null != this.header[field] && this.header.hasOwnProperty(field) && xhr.setRequestHeader(field, this.header[field]);\n }\n\n return this._responseType && (xhr.responseType = this._responseType), this.emit(\"request\", this), xhr.send(void 0 !== data ? data : null), this;\n }, request.agent = function () {\n return new agentBase();\n }, [\"GET\", \"POST\", \"OPTIONS\", \"PATCH\", \"PUT\", \"DELETE\"].forEach(function (method) {\n agentBase.prototype[method.toLowerCase()] = function (url, fn) {\n var req = new request.Request(method, url);\n return this._setDefaults(req), fn && req.end(fn), req;\n };\n }), agentBase.prototype.del = agentBase.prototype[\"delete\"], request.get = function (url, data, fn) {\n var req = request(\"GET\", url);\n return \"function\" == typeof data && (fn = data, data = null), data && req.query(data), fn && req.end(fn), req;\n }, request.head = function (url, data, fn) {\n var req = request(\"HEAD\", url);\n return \"function\" == typeof data && (fn = data, data = null), data && req.query(data), fn && req.end(fn), req;\n }, request.options = function (url, data, fn) {\n var req = request(\"OPTIONS\", url);\n return \"function\" == typeof data && (fn = data, data = null), data && req.send(data), fn && req.end(fn), req;\n }, request.del = del, request[\"delete\"] = del, request.patch = function (url, data, fn) {\n var req = request(\"PATCH\", url);\n return \"function\" == typeof data && (fn = data, data = null), data && req.send(data), fn && req.end(fn), req;\n }, request.post = function (url, data, fn) {\n var req = request(\"POST\", url);\n return \"function\" == typeof data && (fn = data, data = null), data && req.send(data), fn && req.end(fn), req;\n }, request.put = function (url, data, fn) {\n var req = request(\"PUT\", url);\n return \"function\" == typeof data && (fn = data, data = null), data && req.send(data), fn && req.end(fn), req;\n };\n}), byteLength_1 = (client.Request, function (b64) {\n var lens = getLens(b64),\n validLen = lens[0],\n placeHoldersLen = lens[1];\n return 3 * (validLen + placeHoldersLen) / 4 - placeHoldersLen;\n}), toByteArray_1 = function toByteArray_1(b64) {\n var tmp,\n i,\n lens = getLens(b64),\n validLen = lens[0],\n placeHoldersLen = lens[1],\n arr = new Arr(function (b64, validLen, placeHoldersLen) {\n return 3 * (validLen + placeHoldersLen) / 4 - placeHoldersLen;\n }(0, validLen, placeHoldersLen)),\n curByte = 0,\n len = placeHoldersLen > 0 ? validLen - 4 : validLen;\n\n for (i = 0; i < len; i += 4) {\n tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)], arr[curByte++] = tmp >> 16 & 255, arr[curByte++] = tmp >> 8 & 255, arr[curByte++] = 255 & tmp;\n }\n\n 2 === placeHoldersLen && (tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4, arr[curByte++] = 255 & tmp);\n 1 === placeHoldersLen && (tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2, arr[curByte++] = tmp >> 8 & 255, arr[curByte++] = 255 & tmp);\n return arr;\n}, fromByteArray_1 = function fromByteArray_1(uint8) {\n for (var tmp, len = uint8.length, extraBytes = len % 3, parts = [], i = 0, len2 = len - extraBytes; i < len2; i += 16383) {\n parts.push(encodeChunk(uint8, i, i + 16383 > len2 ? len2 : i + 16383));\n }\n\n 1 === extraBytes ? (tmp = uint8[len - 1], parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 63] + \"==\")) : 2 === extraBytes && (tmp = (uint8[len - 2] << 8) + uint8[len - 1], parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + \"=\"));\n return parts.join(\"\");\n}, lookup = [], revLookup = [], Arr = \"undefined\" != typeof Uint8Array ? Uint8Array : Array, code = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\", i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i], revLookup[code.charCodeAt(i)] = i;\n}\n\nfunction getLens(b64) {\n var len = b64.length;\n if (len % 4 > 0) throw new Error(\"Invalid string. Length must be a multiple of 4\");\n var validLen = b64.indexOf(\"=\");\n return -1 === validLen && (validLen = len), [validLen, validLen === len ? 0 : 4 - validLen % 4];\n}\n\nfunction encodeChunk(uint8, start, end) {\n for (var tmp, num, output = [], i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16 & 16711680) + (uint8[i + 1] << 8 & 65280) + (255 & uint8[i + 2]), output.push(lookup[(num = tmp) >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[63 & num]);\n }\n\n return output.join(\"\");\n}\n\nrevLookup[\"-\".charCodeAt(0)] = 62, revLookup[\"_\".charCodeAt(0)] = 63;\nvar base64Js = {\n byteLength: byteLength_1,\n toByteArray: toByteArray_1,\n fromByteArray: fromByteArray_1\n};\nvar base64Url = {\n encode: function encode(str) {\n return base64Js.fromByteArray(function (str) {\n for (var arr = new Array(str.length), a = 0; a < str.length; a++) {\n arr[a] = str.charCodeAt(a);\n }\n\n return arr;\n }(str)).replace(/\\+/g, \"-\").replace(/\\//g, \"_\");\n },\n decode: function decode(str) {\n return str = function (str) {\n var mod = str.length % 4;\n return 0 === mod ? str : str + new Array(4 - mod + 1).join(\"=\");\n }(str).replace(/-/g, \"+\").replace(/_/g, \"/\"), function (array) {\n for (var result = \"\", i = 0; i < array.length; i++) {\n result += String.fromCharCode(array[i]);\n }\n\n return result;\n }(base64Js.toByteArray(str));\n }\n},\n version = {\n raw: \"9.13.2\"\n},\n toString = Object.prototype.toString;\n\nfunction attribute(o, attr, type, text) {\n if (type = \"array\" === type ? \"object\" : type, o && typeof o[attr] !== type) throw new Error(text);\n}\n\nfunction variable(o, type, text) {\n if (typeof o !== type) throw new Error(text);\n}\n\nfunction value(o, values, text) {\n if (-1 === values.indexOf(o)) throw new Error(text);\n}\n\nvar assert = {\n check: function check(o, config, attributes) {\n if (config.optional && !o || variable(o, config.type, config.message), \"object\" === config.type && attributes) for (var keys = Object.keys(attributes), index = 0; index < keys.length; index++) {\n var a = keys[index];\n attributes[a].optional && !o[a] || attributes[a].condition && !attributes[a].condition(o) || (attribute(o, a, attributes[a].type, attributes[a].message), attributes[a].values && value(o[a], attributes[a].values, attributes[a].value_message));\n }\n },\n attribute: attribute,\n variable: variable,\n value: value,\n isArray: function isArray(array) {\n return this.supportsIsArray() ? Array.isArray(array) : \"[object Array]\" === toString.call(array);\n },\n supportsIsArray: function supportsIsArray() {\n return null != Array.isArray;\n }\n};\n\nfunction objectAssignPolyfill(target) {\n if (null == target) throw new TypeError(\"Cannot convert first argument to object\");\n\n for (var to = Object(target), i = 1; i < arguments.length; i++) {\n var nextSource = arguments[i];\n if (null != nextSource) for (var keysArray = Object.keys(Object(nextSource)), nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {\n var nextKey = keysArray[nextIndex],\n desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n void 0 !== desc && desc.enumerable && (to[nextKey] = nextSource[nextKey]);\n }\n }\n\n return to;\n}\n\nvar objectAssign = {\n get: function get() {\n return Object.assign ? Object.assign : objectAssignPolyfill;\n },\n objectAssignPolyfill: objectAssignPolyfill\n};\n\nfunction pick(object, keys) {\n return keys.reduce(function (prev, key) {\n return object[key] && (prev[key] = object[key]), prev;\n }, {});\n}\n\nfunction extend() {\n var params = function (obj) {\n var values = [];\n\n for (var key in obj) {\n values.push(obj[key]);\n }\n\n return values;\n }(arguments);\n\n return params.unshift({}), objectAssign.get().apply(void 0, params);\n}\n\nfunction getLocationFromUrl(href) {\n var match = href.match(/^(https?:|file:|chrome-extension:)\\/\\/(([^:\\/?#]*)(?::([0-9]+))?)([\\/]{0,1}[^?#]*)(\\?[^#]*|)(#.*|)$/);\n return match && {\n href: href,\n protocol: match[1],\n host: match[2],\n hostname: match[3],\n port: match[4],\n pathname: match[5],\n search: match[6],\n hash: match[7]\n };\n}\n\nfunction trim(options, key) {\n var trimmed = extend(options);\n return options[key] && (trimmed[key] = options[key].trim()), trimmed;\n}\n\nvar objectHelper = {\n toSnakeCase: function toSnakeCase(object, exceptions) {\n return \"object\" != typeof object || assert.isArray(object) || null === object ? object : (exceptions = exceptions || [], Object.keys(object).reduce(function (p, key) {\n return p[-1 === exceptions.indexOf(key) ? function (str) {\n for (var code, newKey = \"\", index = 0, wasPrevNumber = !0, wasPrevUppercase = !0; index < str.length;) {\n code = str.charCodeAt(index), !wasPrevUppercase && code >= 65 && code <= 90 || !wasPrevNumber && code >= 48 && code <= 57 ? (newKey += \"_\", newKey += str[index].toLowerCase()) : newKey += str[index].toLowerCase(), wasPrevNumber = code >= 48 && code <= 57, wasPrevUppercase = code >= 65 && code <= 90, index++;\n }\n\n return newKey;\n }(key) : key] = toSnakeCase(object[key]), p;\n }, {}));\n },\n toCamelCase: function toCamelCase(object, exceptions, options) {\n return \"object\" != typeof object || assert.isArray(object) || null === object ? object : (exceptions = exceptions || [], options = options || {}, Object.keys(object).reduce(function (p, key) {\n var parts,\n newKey = -1 === exceptions.indexOf(key) ? (parts = key.split(\"_\")).reduce(function (p, c) {\n return p + c.charAt(0).toUpperCase() + c.slice(1);\n }, parts.shift()) : key;\n return p[newKey] = toCamelCase(object[newKey] || object[key], [], options), options.keepOriginal && (p[key] = toCamelCase(object[key], [], options)), p;\n }, {}));\n },\n blacklist: function blacklist(object, blacklistedKeys) {\n return Object.keys(object).reduce(function (p, key) {\n return -1 === blacklistedKeys.indexOf(key) && (p[key] = object[key]), p;\n }, {});\n },\n merge: function merge(object, keys) {\n return {\n base: keys ? pick(object, keys) : object,\n \"with\": function _with(object2, keys2) {\n return object2 = keys2 ? pick(object2, keys2) : object2, extend(this.base, object2);\n }\n };\n },\n pick: pick,\n getKeysNotIn: function getKeysNotIn(obj, allowedKeys) {\n var notAllowed = [];\n\n for (var key in obj) {\n -1 === allowedKeys.indexOf(key) && notAllowed.push(key);\n }\n\n return notAllowed;\n },\n extend: extend,\n getOriginFromUrl: function getOriginFromUrl(url) {\n if (url) {\n var parsed = getLocationFromUrl(url),\n origin = parsed.protocol + \"//\" + parsed.hostname;\n return parsed.port && (origin += \":\" + parsed.port), origin;\n }\n },\n getLocationFromUrl: getLocationFromUrl,\n trimUserDetails: function trimUserDetails(options) {\n return function (options, keys) {\n return keys.reduce(trim, options);\n }(options, [\"username\", \"email\", \"phoneNumber\"]);\n },\n updatePropertyOn: function updatePropertyOn(obj, path, value) {\n \"string\" == typeof path && (path = path.split(\".\"));\n var next = path[0];\n obj.hasOwnProperty(next) && (1 === path.length ? obj[next] = value : updatePropertyOn(obj[next], path.slice(1), value));\n }\n};\n\nfunction RequestWrapper(req) {\n this.request = req, this.method = req.method, this.url = req.url, this.body = req._data, this.headers = req._header;\n}\n\nfunction RequestObj(req) {\n this.request = req;\n}\n\nfunction RequestBuilder(options) {\n this._sendTelemetry = !1 !== options._sendTelemetry || options._sendTelemetry, this._telemetryInfo = options._telemetryInfo || null, this._timesToRetryFailedRequests = options._timesToRetryFailedRequests, this.headers = options.headers || {}, this._universalLoginPage = options.universalLoginPage;\n}\n\nfunction getWindow() {\n return window;\n}\n\nRequestWrapper.prototype.abort = function () {\n this.request.abort();\n}, RequestWrapper.prototype.getMethod = function () {\n return this.method;\n}, RequestWrapper.prototype.getBody = function () {\n return this.body;\n}, RequestWrapper.prototype.getUrl = function () {\n return this.url;\n}, RequestWrapper.prototype.getHeaders = function () {\n return this.headers;\n}, RequestObj.prototype.set = function (key, value) {\n return this.request = this.request.set(key, value), this;\n}, RequestObj.prototype.send = function (body) {\n return this.request = this.request.send(objectHelper.trimUserDetails(body)), this;\n}, RequestObj.prototype.withCredentials = function () {\n return this.request = this.request.withCredentials(), this;\n}, RequestObj.prototype.end = function (cb) {\n return this.request = this.request.end(cb), new RequestWrapper(this.request);\n}, RequestBuilder.prototype.setCommonConfiguration = function (ongoingRequest, options) {\n if (options = options || {}, this._timesToRetryFailedRequests > 0 && (ongoingRequest = ongoingRequest.retry(this._timesToRetryFailedRequests)), options.noHeaders) return ongoingRequest;\n var headers = this.headers;\n ongoingRequest = ongoingRequest.set(\"Content-Type\", \"application/json\");\n\n for (var keys = Object.keys(this.headers), a = 0; a < keys.length; a++) {\n ongoingRequest = ongoingRequest.set(keys[a], headers[keys[a]]);\n }\n\n return this._sendTelemetry && (ongoingRequest = ongoingRequest.set(\"Auth0-Client\", this.getTelemetryData())), ongoingRequest;\n}, RequestBuilder.prototype.getTelemetryData = function () {\n var telemetryName = this._universalLoginPage ? \"auth0.js-ulp\" : \"auth0.js\",\n clientInfo = {\n name: telemetryName,\n version: version.raw\n };\n this._telemetryInfo && ((clientInfo = objectHelper.extend({}, this._telemetryInfo)).env = objectHelper.extend({}, this._telemetryInfo.env), clientInfo.env[telemetryName] = version.raw);\n var jsonClientInfo = JSON.stringify(clientInfo);\n return base64Url.encode(jsonClientInfo);\n}, RequestBuilder.prototype.get = function (url, options) {\n return new RequestObj(this.setCommonConfiguration(client.get(url), options));\n}, RequestBuilder.prototype.post = function (url, options) {\n return new RequestObj(this.setCommonConfiguration(client.post(url), options));\n}, RequestBuilder.prototype.patch = function (url, options) {\n return new RequestObj(this.setCommonConfiguration(client.patch(url), options));\n};\nvar windowHelper = {\n redirect: function redirect(url) {\n getWindow().location = url;\n },\n getDocument: function getDocument() {\n return getWindow().document;\n },\n getWindow: getWindow,\n getOrigin: function getOrigin() {\n var location = getWindow().location,\n origin = location.origin;\n return origin || (origin = objectHelper.getOriginFromUrl(location.href)), origin;\n }\n};\n\nfunction DummyStorage() {}\n\nDummyStorage.prototype.getItem = function () {\n return null;\n}, DummyStorage.prototype.removeItem = function () {}, DummyStorage.prototype.setItem = function () {};\nvar js_cookie = createCommonjsModule(function (module, exports) {\n var factory;\n factory = function factory() {\n function extend() {\n for (var i = 0, result = {}; i < arguments.length; i++) {\n var attributes = arguments[i];\n\n for (var key in attributes) {\n result[key] = attributes[key];\n }\n }\n\n return result;\n }\n\n function decode(s) {\n return s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n }\n\n return function init(converter) {\n function api() {}\n\n function set(key, value, attributes) {\n if (\"undefined\" != typeof document) {\n \"number\" == typeof (attributes = extend({\n path: \"/\"\n }, api.defaults, attributes)).expires && (attributes.expires = new Date(1 * new Date() + 864e5 * attributes.expires)), attributes.expires = attributes.expires ? attributes.expires.toUTCString() : \"\";\n\n try {\n var result = JSON.stringify(value);\n /^[\\{\\[]/.test(result) && (value = result);\n } catch (e) {}\n\n value = converter.write ? converter.write(value, key) : encodeURIComponent(String(value)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent), key = encodeURIComponent(String(key)).replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent).replace(/[\\(\\)]/g, escape);\n var stringifiedAttributes = \"\";\n\n for (var attributeName in attributes) {\n attributes[attributeName] && (stringifiedAttributes += \"; \" + attributeName, !0 !== attributes[attributeName] && (stringifiedAttributes += \"=\" + attributes[attributeName].split(\";\")[0]));\n }\n\n return document.cookie = key + \"=\" + value + stringifiedAttributes;\n }\n }\n\n function get(key, json) {\n if (\"undefined\" != typeof document) {\n for (var jar = {}, cookies = document.cookie ? document.cookie.split(\"; \") : [], i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split(\"=\"),\n cookie = parts.slice(1).join(\"=\");\n json || '\"' !== cookie.charAt(0) || (cookie = cookie.slice(1, -1));\n\n try {\n var name = decode(parts[0]);\n if (cookie = (converter.read || converter)(cookie, name) || decode(cookie), json) try {\n cookie = JSON.parse(cookie);\n } catch (e) {}\n if (jar[name] = cookie, key === name) break;\n } catch (e) {}\n }\n\n return key ? jar[key] : jar;\n }\n }\n\n return api.set = set, api.get = function (key) {\n return get(key, !1);\n }, api.getJSON = function (key) {\n return get(key, !0);\n }, api.remove = function (key, attributes) {\n set(key, \"\", extend(attributes, {\n expires: -1\n }));\n }, api.defaults = {}, api.withConverter = init, api;\n }(function () {});\n }, module.exports = factory();\n});\n\nfunction CookieStorage() {}\n\nfunction Warn(options) {\n this.disableWarnings = options.disableWarnings;\n}\n\nfunction StorageHandler(options) {\n if (this.warn = new Warn({}), this.storage = new CookieStorage(), !0 === options.__tryLocalStorageFirst) try {\n var localStorage = windowHelper.getWindow().localStorage;\n localStorage && (this.storage = localStorage);\n } catch (e) {\n this.warn.warning(e), this.warn.warning(\"Can't use localStorage. Using CookieStorage instead.\");\n }\n}\n\nfunction Storage(options) {\n this.handler = new StorageHandler(options);\n}\n\nfunction SSODataStorage(options) {\n this.storage = new Storage(options);\n}\n\nfunction buildResponse(error, description) {\n return {\n error: error,\n errorDescription: description\n };\n}\n\nCookieStorage.prototype.getItem = function (key) {\n return js_cookie.get(key);\n}, CookieStorage.prototype.removeItem = function (key) {\n js_cookie.remove(key);\n}, CookieStorage.prototype.setItem = function (key, value, options) {\n var params = objectHelper.extend({\n expires: 1\n }, options);\n js_cookie.set(key, value, params);\n}, Warn.prototype.warning = function (message) {\n this.disableWarnings || console.warn(message);\n}, StorageHandler.prototype.failover = function () {\n this.storage instanceof DummyStorage ? this.warn.warning(\"DummyStorage: ignore failover\") : this.storage instanceof CookieStorage ? (this.warn.warning(\"CookieStorage: failing over DummyStorage\"), this.storage = new DummyStorage()) : (this.warn.warning(\"LocalStorage: failing over CookieStorage\"), this.storage = new CookieStorage());\n}, StorageHandler.prototype.getItem = function (key) {\n try {\n return this.storage.getItem(key);\n } catch (e) {\n return this.warn.warning(e), this.failover(), this.getItem(key);\n }\n}, StorageHandler.prototype.removeItem = function (key) {\n try {\n return this.storage.removeItem(key);\n } catch (e) {\n return this.warn.warning(e), this.failover(), this.removeItem(key);\n }\n}, StorageHandler.prototype.setItem = function (key, value, options) {\n try {\n return this.storage.setItem(key, value, options);\n } catch (e) {\n return this.warn.warning(e), this.failover(), this.setItem(key, value, options);\n }\n}, Storage.prototype.getItem = function (key) {\n var value = this.handler.getItem(key);\n\n try {\n return JSON.parse(value);\n } catch (_) {\n return value;\n }\n}, Storage.prototype.removeItem = function (key) {\n return this.handler.removeItem(key);\n}, Storage.prototype.setItem = function (key, value, options) {\n var json = JSON.stringify(value);\n return this.handler.setItem(key, json, options);\n}, SSODataStorage.prototype.set = function (connection, sub) {\n var ssodata = {\n lastUsedConnection: connection,\n lastUsedSub: sub\n };\n this.storage.setItem(\"auth0.ssodata\", JSON.stringify(ssodata));\n}, SSODataStorage.prototype.get = function () {\n var ssodata = this.storage.getItem(\"auth0.ssodata\");\n if (ssodata) return JSON.parse(ssodata);\n};\nvar error = {\n buildResponse: buildResponse,\n invalidToken: function invalidToken(description) {\n return buildResponse(\"invalid_token\", description);\n }\n};\n\nfunction wrapCallback(cb, options) {\n return (options = options || {}).ignoreCasing = !!options.ignoreCasing && options.ignoreCasing, function (err, data) {\n var errObj;\n return err || data ? (!err && data.err && (err = data.err, data = null), !err && data.error && (err = data, data = null), err ? (errObj = {\n original: err\n }, objectHelper.updatePropertyOn(errObj, \"original.response.req._data.password\", \"*****\"), err.response && err.response.statusCode && (errObj.statusCode = err.response.statusCode), err.response && err.response.statusText && (errObj.statusText = err.response.statusText), err.response && err.response.body && (err = err.response.body), err.err && (err = err.err), errObj.code = err.code || err.error || err.error_code || err.status || null, errObj.description = err.errorDescription || err.error_description || err.description || err.error || err.details || err.err || null, options.forceLegacyError && (errObj.error = errObj.code, errObj.error_description = errObj.description), err.error_codes && err.error_details && (errObj.errorDetails = {\n codes: err.error_codes,\n details: err.error_details\n }), err.name && (errObj.name = err.name), err.policy && (errObj.policy = err.policy), cb(errObj)) : !data.type || \"text/html\" !== data.type && \"text/plain\" !== data.type ? options.ignoreCasing ? cb(null, data.body || data) : cb(null, objectHelper.toCamelCase(data.body || data, [], {\n keepOriginal: options.keepOriginalCasing\n })) : cb(null, data.text)) : cb(error.buildResponse(\"generic_error\", \"Something went wrong\"));\n };\n}\n\nvar tokenParams = [\"realm\", \"audience\", \"client_id\", \"client_secret\", \"redirect_uri\", \"scope\", \"code\", \"grant_type\", \"username\", \"password\", \"refresh_token\", \"assertion\", \"client_assertion\", \"client_assertion_type\", \"code_verifier\"],\n authorizeParams = [\"connection\", \"connection_scope\", \"auth0Client\", \"owp\", \"device\", \"realm\", \"protocol\", \"_csrf\", \"_intstate\", \"login_ticket\", \"client_id\", \"response_type\", \"response_mode\", \"redirect_uri\", \"audience\", \"scope\", \"state\", \"nonce\", \"display\", \"prompt\", \"screen_hint\", \"max_age\", \"ui_locales\", \"claims_locales\", \"id_token_hint\", \"login_hint\", \"acr_values\", \"claims\", \"registration\", \"request\", \"request_uri\", \"code_challenge\", \"code_challenge_method\", \"access_type\", \"display\"];\nvar parametersWhitelist = {\n oauthTokenParams: function oauthTokenParams(warn, params) {\n return objectHelper.pick(params, tokenParams);\n },\n oauthAuthorizeParams: function oauthAuthorizeParams(warn, params) {\n var notAllowed = objectHelper.getKeysNotIn(params, authorizeParams);\n return notAllowed.length > 0 && warn.warning(\"Following parameters are not allowed on the `/authorize` endpoint: [\" + notAllowed.join(\",\") + \"]\"), params;\n }\n},\n t = \"undefined\" != typeof globalThis ? globalThis : \"undefined\" != typeof window ? window : \"undefined\" != typeof global ? global : \"undefined\" != typeof self ? self : {};\n\nfunction e(t, e) {\n return t(e = {\n exports: {}\n }, e.exports), e.exports;\n}\n\nvar r = e(function (t, e) {\n var r;\n\n t.exports = r = r || function (t, e) {\n var r = Object.create || function () {\n function t() {}\n\n return function (e) {\n var r;\n return t.prototype = e, r = new t(), t.prototype = null, r;\n };\n }(),\n i = {},\n n = i.lib = {},\n o = n.Base = {\n extend: function extend(t) {\n var e = r(this);\n return t && e.mixIn(t), e.hasOwnProperty(\"init\") && this.init !== e.init || (e.init = function () {\n e.$super.init.apply(this, arguments);\n }), e.init.prototype = e, e.$super = this, e;\n },\n create: function create() {\n var t = this.extend();\n return t.init.apply(t, arguments), t;\n },\n init: function init() {},\n mixIn: function mixIn(t) {\n for (var e in t) {\n t.hasOwnProperty(e) && (this[e] = t[e]);\n }\n\n t.hasOwnProperty(\"toString\") && (this.toString = t.toString);\n },\n clone: function clone() {\n return this.init.prototype.extend(this);\n }\n },\n s = n.WordArray = o.extend({\n init: function init(t, e) {\n t = this.words = t || [], this.sigBytes = null != e ? e : 4 * t.length;\n },\n toString: function toString(t) {\n return (t || a).stringify(this);\n },\n concat: function concat(t) {\n var e = this.words,\n r = t.words,\n i = this.sigBytes,\n n = t.sigBytes;\n if (this.clamp(), i % 4) for (var o = 0; o < n; o++) {\n e[i + o >>> 2] |= (r[o >>> 2] >>> 24 - o % 4 * 8 & 255) << 24 - (i + o) % 4 * 8;\n } else for (o = 0; o < n; o += 4) {\n e[i + o >>> 2] = r[o >>> 2];\n }\n return this.sigBytes += n, this;\n },\n clamp: function clamp() {\n var e = this.words,\n r = this.sigBytes;\n e[r >>> 2] &= 4294967295 << 32 - r % 4 * 8, e.length = t.ceil(r / 4);\n },\n clone: function clone() {\n var t = o.clone.call(this);\n return t.words = this.words.slice(0), t;\n },\n random: function random(e) {\n for (var r, i = [], n = function n(e) {\n e = e;\n var r = 987654321,\n i = 4294967295;\n return function () {\n var n = ((r = 36969 * (65535 & r) + (r >> 16) & i) << 16) + (e = 18e3 * (65535 & e) + (e >> 16) & i) & i;\n return n /= 4294967296, (n += .5) * (t.random() > .5 ? 1 : -1);\n };\n }, o = 0; o < e; o += 4) {\n var h = n(4294967296 * (r || t.random()));\n r = 987654071 * h(), i.push(4294967296 * h() | 0);\n }\n\n return new s.init(i, e);\n }\n }),\n h = i.enc = {},\n a = h.Hex = {\n stringify: function stringify(t) {\n for (var e = t.words, r = t.sigBytes, i = [], n = 0; n < r; n++) {\n var o = e[n >>> 2] >>> 24 - n % 4 * 8 & 255;\n i.push((o >>> 4).toString(16)), i.push((15 & o).toString(16));\n }\n\n return i.join(\"\");\n },\n parse: function parse(t) {\n for (var e = t.length, r = [], i = 0; i < e; i += 2) {\n r[i >>> 3] |= parseInt(t.substr(i, 2), 16) << 24 - i % 8 * 4;\n }\n\n return new s.init(r, e / 2);\n }\n },\n u = h.Latin1 = {\n stringify: function stringify(t) {\n for (var e = t.words, r = t.sigBytes, i = [], n = 0; n < r; n++) {\n i.push(String.fromCharCode(e[n >>> 2] >>> 24 - n % 4 * 8 & 255));\n }\n\n return i.join(\"\");\n },\n parse: function parse(t) {\n for (var e = t.length, r = [], i = 0; i < e; i++) {\n r[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - i % 4 * 8;\n }\n\n return new s.init(r, e);\n }\n },\n f = h.Utf8 = {\n stringify: function stringify(t) {\n try {\n return decodeURIComponent(escape(u.stringify(t)));\n } catch (t) {\n throw new Error(\"Malformed UTF-8 data\");\n }\n },\n parse: function parse(t) {\n return u.parse(unescape(encodeURIComponent(t)));\n }\n },\n c = n.BufferedBlockAlgorithm = o.extend({\n reset: function reset() {\n this._data = new s.init(), this._nDataBytes = 0;\n },\n _append: function _append(t) {\n \"string\" == typeof t && (t = f.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes;\n },\n _process: function _process(e) {\n var r = this._data,\n i = r.words,\n n = r.sigBytes,\n o = this.blockSize,\n h = n / (4 * o),\n a = (h = e ? t.ceil(h) : t.max((0 | h) - this._minBufferSize, 0)) * o,\n u = t.min(4 * a, n);\n\n if (a) {\n for (var f = 0; f < a; f += o) {\n this._doProcessBlock(i, f);\n }\n\n var c = i.splice(0, a);\n r.sigBytes -= u;\n }\n\n return new s.init(c, u);\n },\n clone: function clone() {\n var t = o.clone.call(this);\n return t._data = this._data.clone(), t;\n },\n _minBufferSize: 0\n }),\n p = (n.Hasher = c.extend({\n cfg: o.extend(),\n init: function init(t) {\n this.cfg = this.cfg.extend(t), this.reset();\n },\n reset: function reset() {\n c.reset.call(this), this._doReset();\n },\n update: function update(t) {\n return this._append(t), this._process(), this;\n },\n finalize: function finalize(t) {\n return t && this._append(t), this._doFinalize();\n },\n blockSize: 16,\n _createHelper: function _createHelper(t) {\n return function (e, r) {\n return new t.init(r).finalize(e);\n };\n },\n _createHmacHelper: function _createHmacHelper(t) {\n return function (e, r) {\n return new p.HMAC.init(t, r).finalize(e);\n };\n }\n }), i.algo = {});\n\n return i;\n }(Math);\n}),\n i$1 = e(function (t, e) {\n var i;\n t.exports = (i = r, function (t) {\n var e = i,\n r = e.lib,\n n = r.WordArray,\n o = r.Hasher,\n s = e.algo,\n h = [],\n a = [];\n !function () {\n function e(e) {\n for (var r = t.sqrt(e), i = 2; i <= r; i++) {\n if (!(e % i)) return !1;\n }\n\n return !0;\n }\n\n function r(t) {\n return 4294967296 * (t - (0 | t)) | 0;\n }\n\n for (var i = 2, n = 0; n < 64;) {\n e(i) && (n < 8 && (h[n] = r(t.pow(i, .5))), a[n] = r(t.pow(i, 1 / 3)), n++), i++;\n }\n }();\n var u = [],\n f = s.SHA256 = o.extend({\n _doReset: function _doReset() {\n this._hash = new n.init(h.slice(0));\n },\n _doProcessBlock: function _doProcessBlock(t, e) {\n for (var r = this._hash.words, i = r[0], n = r[1], o = r[2], s = r[3], h = r[4], f = r[5], c = r[6], p = r[7], l = 0; l < 64; l++) {\n if (l < 16) u[l] = 0 | t[e + l];else {\n var d = u[l - 15],\n m = u[l - 2];\n u[l] = ((d << 25 | d >>> 7) ^ (d << 14 | d >>> 18) ^ d >>> 3) + u[l - 7] + ((m << 15 | m >>> 17) ^ (m << 13 | m >>> 19) ^ m >>> 10) + u[l - 16];\n }\n var v = i & n ^ i & o ^ n & o,\n y = p + ((h << 26 | h >>> 6) ^ (h << 21 | h >>> 11) ^ (h << 7 | h >>> 25)) + (h & f ^ ~h & c) + a[l] + u[l];\n p = c, c = f, f = h, h = s + y | 0, s = o, o = n, n = i, i = y + (((i << 30 | i >>> 2) ^ (i << 19 | i >>> 13) ^ (i << 10 | i >>> 22)) + v) | 0;\n }\n\n r[0] = r[0] + i | 0, r[1] = r[1] + n | 0, r[2] = r[2] + o | 0, r[3] = r[3] + s | 0, r[4] = r[4] + h | 0, r[5] = r[5] + f | 0, r[6] = r[6] + c | 0, r[7] = r[7] + p | 0;\n },\n _doFinalize: function _doFinalize() {\n var e = this._data,\n r = e.words,\n i = 8 * this._nDataBytes,\n n = 8 * e.sigBytes;\n return r[n >>> 5] |= 128 << 24 - n % 32, r[14 + (n + 64 >>> 9 << 4)] = t.floor(i / 4294967296), r[15 + (n + 64 >>> 9 << 4)] = i, e.sigBytes = 4 * r.length, this._process(), this._hash;\n },\n clone: function clone() {\n var t = o.clone.call(this);\n return t._hash = this._hash.clone(), t;\n }\n });\n e.SHA256 = o._createHelper(f), e.HmacSHA256 = o._createHmacHelper(f);\n }(Math), i.SHA256);\n}),\n n = e(function (t, e) {\n var i, n;\n t.exports = (n = (i = r).lib.WordArray, i.enc.Base64 = {\n stringify: function stringify(t) {\n var e = t.words,\n r = t.sigBytes,\n i = this._map;\n t.clamp();\n\n for (var n = [], o = 0; o < r; o += 3) {\n for (var s = (e[o >>> 2] >>> 24 - o % 4 * 8 & 255) << 16 | (e[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255) << 8 | e[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, h = 0; h < 4 && o + .75 * h < r; h++) {\n n.push(i.charAt(s >>> 6 * (3 - h) & 63));\n }\n }\n\n var a = i.charAt(64);\n if (a) for (; n.length % 4;) {\n n.push(a);\n }\n return n.join(\"\");\n },\n parse: function parse(t) {\n var e = t.length,\n r = this._map,\n i = this._reverseMap;\n\n if (!i) {\n i = this._reverseMap = [];\n\n for (var o = 0; o < r.length; o++) {\n i[r.charCodeAt(o)] = o;\n }\n }\n\n var s = r.charAt(64);\n\n if (s) {\n var h = t.indexOf(s);\n -1 !== h && (e = h);\n }\n\n return function (t, e, r) {\n for (var i = [], o = 0, s = 0; s < e; s++) {\n if (s % 4) {\n var h = r[t.charCodeAt(s - 1)] << s % 4 * 2,\n a = r[t.charCodeAt(s)] >>> 6 - s % 4 * 2;\n i[o >>> 2] |= (h | a) << 24 - o % 4 * 8, o++;\n }\n }\n\n return n.create(i, o);\n }(t, e, i);\n },\n _map: \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\"\n }, i.enc.Base64);\n}),\n o = e(function (t, e) {\n t.exports = r.enc.Hex;\n}),\n s = e(function (e, r) {\n (function () {\n var t;\n\n function r(t, e, r) {\n null != t && (\"number\" == typeof t ? this.fromNumber(t, e, r) : this.fromString(t, null == e && \"string\" != typeof t ? 256 : e));\n }\n\n function i() {\n return new r(null);\n }\n\n var n = \"undefined\" != typeof navigator;\n n && \"Microsoft Internet Explorer\" == navigator.appName ? (r.prototype.am = function (t, e, r, i, n, o) {\n for (var s = 32767 & e, h = e >> 15; --o >= 0;) {\n var a = 32767 & this[t],\n u = this[t++] >> 15,\n f = h * a + u * s;\n n = ((a = s * a + ((32767 & f) << 15) + r[i] + (1073741823 & n)) >>> 30) + (f >>> 15) + h * u + (n >>> 30), r[i++] = 1073741823 & a;\n }\n\n return n;\n }, t = 30) : n && \"Netscape\" != navigator.appName ? (r.prototype.am = function (t, e, r, i, n, o) {\n for (; --o >= 0;) {\n var s = e * this[t++] + r[i] + n;\n n = Math.floor(s / 67108864), r[i++] = 67108863 & s;\n }\n\n return n;\n }, t = 26) : (r.prototype.am = function (t, e, r, i, n, o) {\n for (var s = 16383 & e, h = e >> 14; --o >= 0;) {\n var a = 16383 & this[t],\n u = this[t++] >> 14,\n f = h * a + u * s;\n n = ((a = s * a + ((16383 & f) << 14) + r[i] + n) >> 28) + (f >> 14) + h * u, r[i++] = 268435455 & a;\n }\n\n return n;\n }, t = 28), r.prototype.DB = t, r.prototype.DM = (1 << t) - 1, r.prototype.DV = 1 << t, r.prototype.FV = Math.pow(2, 52), r.prototype.F1 = 52 - t, r.prototype.F2 = 2 * t - 52;\n var o,\n s,\n h = \"0123456789abcdefghijklmnopqrstuvwxyz\",\n a = new Array();\n\n for (o = \"0\".charCodeAt(0), s = 0; s <= 9; ++s) {\n a[o++] = s;\n }\n\n for (o = \"a\".charCodeAt(0), s = 10; s < 36; ++s) {\n a[o++] = s;\n }\n\n for (o = \"A\".charCodeAt(0), s = 10; s < 36; ++s) {\n a[o++] = s;\n }\n\n function u(t) {\n return h.charAt(t);\n }\n\n function f(t, e) {\n var r = a[t.charCodeAt(e)];\n return null == r ? -1 : r;\n }\n\n function c(t) {\n var e = i();\n return e.fromInt(t), e;\n }\n\n function p(t) {\n var e,\n r = 1;\n return 0 != (e = t >>> 16) && (t = e, r += 16), 0 != (e = t >> 8) && (t = e, r += 8), 0 != (e = t >> 4) && (t = e, r += 4), 0 != (e = t >> 2) && (t = e, r += 2), 0 != (e = t >> 1) && (t = e, r += 1), r;\n }\n\n function l(t) {\n this.m = t;\n }\n\n function d(t) {\n this.m = t, this.mp = t.invDigit(), this.mpl = 32767 & this.mp, this.mph = this.mp >> 15, this.um = (1 << t.DB - 15) - 1, this.mt2 = 2 * t.t;\n }\n\n function m(t, e) {\n return t & e;\n }\n\n function v(t, e) {\n return t | e;\n }\n\n function y(t, e) {\n return t ^ e;\n }\n\n function g(t, e) {\n return t & ~e;\n }\n\n function w(t) {\n if (0 == t) return -1;\n var e = 0;\n return 0 == (65535 & t) && (t >>= 16, e += 16), 0 == (255 & t) && (t >>= 8, e += 8), 0 == (15 & t) && (t >>= 4, e += 4), 0 == (3 & t) && (t >>= 2, e += 2), 0 == (1 & t) && ++e, e;\n }\n\n function T(t) {\n for (var e = 0; 0 != t;) {\n t &= t - 1, ++e;\n }\n\n return e;\n }\n\n function b() {}\n\n function _(t) {\n return t;\n }\n\n function A(t) {\n this.r2 = i(), this.q3 = i(), r.ONE.dlShiftTo(2 * t.t, this.r2), this.mu = this.r2.divide(t), this.m = t;\n }\n\n l.prototype.convert = function (t) {\n return t.s < 0 || t.compareTo(this.m) >= 0 ? t.mod(this.m) : t;\n }, l.prototype.revert = function (t) {\n return t;\n }, l.prototype.reduce = function (t) {\n t.divRemTo(this.m, null, t);\n }, l.prototype.mulTo = function (t, e, r) {\n t.multiplyTo(e, r), this.reduce(r);\n }, l.prototype.sqrTo = function (t, e) {\n t.squareTo(e), this.reduce(e);\n }, d.prototype.convert = function (t) {\n var e = i();\n return t.abs().dlShiftTo(this.m.t, e), e.divRemTo(this.m, null, e), t.s < 0 && e.compareTo(r.ZERO) > 0 && this.m.subTo(e, e), e;\n }, d.prototype.revert = function (t) {\n var e = i();\n return t.copyTo(e), this.reduce(e), e;\n }, d.prototype.reduce = function (t) {\n for (; t.t <= this.mt2;) {\n t[t.t++] = 0;\n }\n\n for (var e = 0; e < this.m.t; ++e) {\n var r = 32767 & t[e],\n i = r * this.mpl + ((r * this.mph + (t[e] >> 15) * this.mpl & this.um) << 15) & t.DM;\n\n for (t[r = e + this.m.t] += this.m.am(0, i, t, e, 0, this.m.t); t[r] >= t.DV;) {\n t[r] -= t.DV, t[++r]++;\n }\n }\n\n t.clamp(), t.drShiftTo(this.m.t, t), t.compareTo(this.m) >= 0 && t.subTo(this.m, t);\n }, d.prototype.mulTo = function (t, e, r) {\n t.multiplyTo(e, r), this.reduce(r);\n }, d.prototype.sqrTo = function (t, e) {\n t.squareTo(e), this.reduce(e);\n }, r.prototype.copyTo = function (t) {\n for (var e = this.t - 1; e >= 0; --e) {\n t[e] = this[e];\n }\n\n t.t = this.t, t.s = this.s;\n }, r.prototype.fromInt = function (t) {\n this.t = 1, this.s = t < 0 ? -1 : 0, t > 0 ? this[0] = t : t < -1 ? this[0] = t + this.DV : this.t = 0;\n }, r.prototype.fromString = function (t, e) {\n var i;\n if (16 == e) i = 4;else if (8 == e) i = 3;else if (256 == e) i = 8;else if (2 == e) i = 1;else if (32 == e) i = 5;else {\n if (4 != e) return void this.fromRadix(t, e);\n i = 2;\n }\n this.t = 0, this.s = 0;\n\n for (var n = t.length, o = !1, s = 0; --n >= 0;) {\n var h = 8 == i ? 255 & t[n] : f(t, n);\n h < 0 ? \"-\" == t.charAt(n) && (o = !0) : (o = !1, 0 == s ? this[this.t++] = h : s + i > this.DB ? (this[this.t - 1] |= (h & (1 << this.DB - s) - 1) << s, this[this.t++] = h >> this.DB - s) : this[this.t - 1] |= h << s, (s += i) >= this.DB && (s -= this.DB));\n }\n\n 8 == i && 0 != (128 & t[0]) && (this.s = -1, s > 0 && (this[this.t - 1] |= (1 << this.DB - s) - 1 << s)), this.clamp(), o && r.ZERO.subTo(this, this);\n }, r.prototype.clamp = function () {\n for (var t = this.s & this.DM; this.t > 0 && this[this.t - 1] == t;) {\n --this.t;\n }\n }, r.prototype.dlShiftTo = function (t, e) {\n var r;\n\n for (r = this.t - 1; r >= 0; --r) {\n e[r + t] = this[r];\n }\n\n for (r = t - 1; r >= 0; --r) {\n e[r] = 0;\n }\n\n e.t = this.t + t, e.s = this.s;\n }, r.prototype.drShiftTo = function (t, e) {\n for (var r = t; r < this.t; ++r) {\n e[r - t] = this[r];\n }\n\n e.t = Math.max(this.t - t, 0), e.s = this.s;\n }, r.prototype.lShiftTo = function (t, e) {\n var r,\n i = t % this.DB,\n n = this.DB - i,\n o = (1 << n) - 1,\n s = Math.floor(t / this.DB),\n h = this.s << i & this.DM;\n\n for (r = this.t - 1; r >= 0; --r) {\n e[r + s + 1] = this[r] >> n | h, h = (this[r] & o) << i;\n }\n\n for (r = s - 1; r >= 0; --r) {\n e[r] = 0;\n }\n\n e[s] = h, e.t = this.t + s + 1, e.s = this.s, e.clamp();\n }, r.prototype.rShiftTo = function (t, e) {\n e.s = this.s;\n var r = Math.floor(t / this.DB);\n if (r >= this.t) e.t = 0;else {\n var i = t % this.DB,\n n = this.DB - i,\n o = (1 << i) - 1;\n e[0] = this[r] >> i;\n\n for (var s = r + 1; s < this.t; ++s) {\n e[s - r - 1] |= (this[s] & o) << n, e[s - r] = this[s] >> i;\n }\n\n i > 0 && (e[this.t - r - 1] |= (this.s & o) << n), e.t = this.t - r, e.clamp();\n }\n }, r.prototype.subTo = function (t, e) {\n for (var r = 0, i = 0, n = Math.min(t.t, this.t); r < n;) {\n i += this[r] - t[r], e[r++] = i & this.DM, i >>= this.DB;\n }\n\n if (t.t < this.t) {\n for (i -= t.s; r < this.t;) {\n i += this[r], e[r++] = i & this.DM, i >>= this.DB;\n }\n\n i += this.s;\n } else {\n for (i += this.s; r < t.t;) {\n i -= t[r], e[r++] = i & this.DM, i >>= this.DB;\n }\n\n i -= t.s;\n }\n\n e.s = i < 0 ? -1 : 0, i < -1 ? e[r++] = this.DV + i : i > 0 && (e[r++] = i), e.t = r, e.clamp();\n }, r.prototype.multiplyTo = function (t, e) {\n var i = this.abs(),\n n = t.abs(),\n o = i.t;\n\n for (e.t = o + n.t; --o >= 0;) {\n e[o] = 0;\n }\n\n for (o = 0; o < n.t; ++o) {\n e[o + i.t] = i.am(0, n[o], e, o, 0, i.t);\n }\n\n e.s = 0, e.clamp(), this.s != t.s && r.ZERO.subTo(e, e);\n }, r.prototype.squareTo = function (t) {\n for (var e = this.abs(), r = t.t = 2 * e.t; --r >= 0;) {\n t[r] = 0;\n }\n\n for (r = 0; r < e.t - 1; ++r) {\n var i = e.am(r, e[r], t, 2 * r, 0, 1);\n (t[r + e.t] += e.am(r + 1, 2 * e[r], t, 2 * r + 1, i, e.t - r - 1)) >= e.DV && (t[r + e.t] -= e.DV, t[r + e.t + 1] = 1);\n }\n\n t.t > 0 && (t[t.t - 1] += e.am(r, e[r], t, 2 * r, 0, 1)), t.s = 0, t.clamp();\n }, r.prototype.divRemTo = function (t, e, n) {\n var o = t.abs();\n\n if (!(o.t <= 0)) {\n var s = this.abs();\n if (s.t < o.t) return null != e && e.fromInt(0), void (null != n && this.copyTo(n));\n null == n && (n = i());\n var h = i(),\n a = this.s,\n u = t.s,\n f = this.DB - p(o[o.t - 1]);\n f > 0 ? (o.lShiftTo(f, h), s.lShiftTo(f, n)) : (o.copyTo(h), s.copyTo(n));\n var c = h.t,\n l = h[c - 1];\n\n if (0 != l) {\n var d = l * (1 << this.F1) + (c > 1 ? h[c - 2] >> this.F2 : 0),\n m = this.FV / d,\n v = (1 << this.F1) / d,\n y = 1 << this.F2,\n g = n.t,\n w = g - c,\n T = null == e ? i() : e;\n\n for (h.dlShiftTo(w, T), n.compareTo(T) >= 0 && (n[n.t++] = 1, n.subTo(T, n)), r.ONE.dlShiftTo(c, T), T.subTo(h, h); h.t < c;) {\n h[h.t++] = 0;\n }\n\n for (; --w >= 0;) {\n var b = n[--g] == l ? this.DM : Math.floor(n[g] * m + (n[g - 1] + y) * v);\n if ((n[g] += h.am(0, b, n, w, 0, c)) < b) for (h.dlShiftTo(w, T), n.subTo(T, n); n[g] < --b;) {\n n.subTo(T, n);\n }\n }\n\n null != e && (n.drShiftTo(c, e), a != u && r.ZERO.subTo(e, e)), n.t = c, n.clamp(), f > 0 && n.rShiftTo(f, n), a < 0 && r.ZERO.subTo(n, n);\n }\n }\n }, r.prototype.invDigit = function () {\n if (this.t < 1) return 0;\n var t = this[0];\n if (0 == (1 & t)) return 0;\n var e = 3 & t;\n return (e = (e = (e = (e = e * (2 - (15 & t) * e) & 15) * (2 - (255 & t) * e) & 255) * (2 - ((65535 & t) * e & 65535)) & 65535) * (2 - t * e % this.DV) % this.DV) > 0 ? this.DV - e : -e;\n }, r.prototype.isEven = function () {\n return 0 == (this.t > 0 ? 1 & this[0] : this.s);\n }, r.prototype.exp = function (t, e) {\n if (t > 4294967295 || t < 1) return r.ONE;\n var n = i(),\n o = i(),\n s = e.convert(this),\n h = p(t) - 1;\n\n for (s.copyTo(n); --h >= 0;) {\n if (e.sqrTo(n, o), (t & 1 << h) > 0) e.mulTo(o, s, n);else {\n var a = n;\n n = o, o = a;\n }\n }\n\n return e.revert(n);\n }, r.prototype.toString = function (t) {\n if (this.s < 0) return \"-\" + this.negate().toString(t);\n var e;\n if (16 == t) e = 4;else if (8 == t) e = 3;else if (2 == t) e = 1;else if (32 == t) e = 5;else {\n if (4 != t) return this.toRadix(t);\n e = 2;\n }\n var r,\n i = (1 << e) - 1,\n n = !1,\n o = \"\",\n s = this.t,\n h = this.DB - s * this.DB % e;\n if (s-- > 0) for (h < this.DB && (r = this[s] >> h) > 0 && (n = !0, o = u(r)); s >= 0;) {\n h < e ? (r = (this[s] & (1 << h) - 1) << e - h, r |= this[--s] >> (h += this.DB - e)) : (r = this[s] >> (h -= e) & i, h <= 0 && (h += this.DB, --s)), r > 0 && (n = !0), n && (o += u(r));\n }\n return n ? o : \"0\";\n }, r.prototype.negate = function () {\n var t = i();\n return r.ZERO.subTo(this, t), t;\n }, r.prototype.abs = function () {\n return this.s < 0 ? this.negate() : this;\n }, r.prototype.compareTo = function (t) {\n var e = this.s - t.s;\n if (0 != e) return e;\n var r = this.t;\n if (0 != (e = r - t.t)) return this.s < 0 ? -e : e;\n\n for (; --r >= 0;) {\n if (0 != (e = this[r] - t[r])) return e;\n }\n\n return 0;\n }, r.prototype.bitLength = function () {\n return this.t <= 0 ? 0 : this.DB * (this.t - 1) + p(this[this.t - 1] ^ this.s & this.DM);\n }, r.prototype.mod = function (t) {\n var e = i();\n return this.abs().divRemTo(t, null, e), this.s < 0 && e.compareTo(r.ZERO) > 0 && t.subTo(e, e), e;\n }, r.prototype.modPowInt = function (t, e) {\n var r;\n return r = t < 256 || e.isEven() ? new l(e) : new d(e), this.exp(t, r);\n }, r.ZERO = c(0), r.ONE = c(1), b.prototype.convert = _, b.prototype.revert = _, b.prototype.mulTo = function (t, e, r) {\n t.multiplyTo(e, r);\n }, b.prototype.sqrTo = function (t, e) {\n t.squareTo(e);\n }, A.prototype.convert = function (t) {\n if (t.s < 0 || t.t > 2 * this.m.t) return t.mod(this.m);\n if (t.compareTo(this.m) < 0) return t;\n var e = i();\n return t.copyTo(e), this.reduce(e), e;\n }, A.prototype.revert = function (t) {\n return t;\n }, A.prototype.reduce = function (t) {\n for (t.drShiftTo(this.m.t - 1, this.r2), t.t > this.m.t + 1 && (t.t = this.m.t + 1, t.clamp()), this.mu.multiplyUpperTo(this.r2, this.m.t + 1, this.q3), this.m.multiplyLowerTo(this.q3, this.m.t + 1, this.r2); t.compareTo(this.r2) < 0;) {\n t.dAddOffset(1, this.m.t + 1);\n }\n\n for (t.subTo(this.r2, t); t.compareTo(this.m) >= 0;) {\n t.subTo(this.m, t);\n }\n }, A.prototype.mulTo = function (t, e, r) {\n t.multiplyTo(e, r), this.reduce(r);\n }, A.prototype.sqrTo = function (t, e) {\n t.squareTo(e), this.reduce(e);\n };\n var S,\n D,\n B,\n x = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997],\n k = (1 << 26) / x[x.length - 1];\n\n function E() {\n var t;\n t = new Date().getTime(), D[B++] ^= 255 & t, D[B++] ^= t >> 8 & 255, D[B++] ^= t >> 16 & 255, D[B++] ^= t >> 24 & 255, B >= N && (B -= N);\n }\n\n if (r.prototype.chunkSize = function (t) {\n return Math.floor(Math.LN2 * this.DB / Math.log(t));\n }, r.prototype.toRadix = function (t) {\n if (null == t && (t = 10), 0 == this.signum() || t < 2 || t > 36) return \"0\";\n var e = this.chunkSize(t),\n r = Math.pow(t, e),\n n = c(r),\n o = i(),\n s = i(),\n h = \"\";\n\n for (this.divRemTo(n, o, s); o.signum() > 0;) {\n h = (r + s.intValue()).toString(t).substr(1) + h, o.divRemTo(n, o, s);\n }\n\n return s.intValue().toString(t) + h;\n }, r.prototype.fromRadix = function (t, e) {\n this.fromInt(0), null == e && (e = 10);\n\n for (var i = this.chunkSize(e), n = Math.pow(e, i), o = !1, s = 0, h = 0, a = 0; a < t.length; ++a) {\n var u = f(t, a);\n u < 0 ? \"-\" == t.charAt(a) && 0 == this.signum() && (o = !0) : (h = e * h + u, ++s >= i && (this.dMultiply(n), this.dAddOffset(h, 0), s = 0, h = 0));\n }\n\n s > 0 && (this.dMultiply(Math.pow(e, s)), this.dAddOffset(h, 0)), o && r.ZERO.subTo(this, this);\n }, r.prototype.fromNumber = function (t, e, i) {\n if (\"number\" == typeof e) {\n if (t < 2) this.fromInt(1);else for (this.fromNumber(t, i), this.testBit(t - 1) || this.bitwiseTo(r.ONE.shiftLeft(t - 1), v, this), this.isEven() && this.dAddOffset(1, 0); !this.isProbablePrime(e);) {\n this.dAddOffset(2, 0), this.bitLength() > t && this.subTo(r.ONE.shiftLeft(t - 1), this);\n }\n } else {\n var n = new Array(),\n o = 7 & t;\n n.length = 1 + (t >> 3), e.nextBytes(n), o > 0 ? n[0] &= (1 << o) - 1 : n[0] = 0, this.fromString(n, 256);\n }\n }, r.prototype.bitwiseTo = function (t, e, r) {\n var i,\n n,\n o = Math.min(t.t, this.t);\n\n for (i = 0; i < o; ++i) {\n r[i] = e(this[i], t[i]);\n }\n\n if (t.t < this.t) {\n for (n = t.s & this.DM, i = o; i < this.t; ++i) {\n r[i] = e(this[i], n);\n }\n\n r.t = this.t;\n } else {\n for (n = this.s & this.DM, i = o; i < t.t; ++i) {\n r[i] = e(n, t[i]);\n }\n\n r.t = t.t;\n }\n\n r.s = e(this.s, t.s), r.clamp();\n }, r.prototype.changeBit = function (t, e) {\n var i = r.ONE.shiftLeft(t);\n return this.bitwiseTo(i, e, i), i;\n }, r.prototype.addTo = function (t, e) {\n for (var r = 0, i = 0, n = Math.min(t.t, this.t); r < n;) {\n i += this[r] + t[r], e[r++] = i & this.DM, i >>= this.DB;\n }\n\n if (t.t < this.t) {\n for (i += t.s; r < this.t;) {\n i += this[r], e[r++] = i & this.DM, i >>= this.DB;\n }\n\n i += this.s;\n } else {\n for (i += this.s; r < t.t;) {\n i += t[r], e[r++] = i & this.DM, i >>= this.DB;\n }\n\n i += t.s;\n }\n\n e.s = i < 0 ? -1 : 0, i > 0 ? e[r++] = i : i < -1 && (e[r++] = this.DV + i), e.t = r, e.clamp();\n }, r.prototype.dMultiply = function (t) {\n this[this.t] = this.am(0, t - 1, this, 0, 0, this.t), ++this.t, this.clamp();\n }, r.prototype.dAddOffset = function (t, e) {\n if (0 != t) {\n for (; this.t <= e;) {\n this[this.t++] = 0;\n }\n\n for (this[e] += t; this[e] >= this.DV;) {\n this[e] -= this.DV, ++e >= this.t && (this[this.t++] = 0), ++this[e];\n }\n }\n }, r.prototype.multiplyLowerTo = function (t, e, r) {\n var i,\n n = Math.min(this.t + t.t, e);\n\n for (r.s = 0, r.t = n; n > 0;) {\n r[--n] = 0;\n }\n\n for (i = r.t - this.t; n < i; ++n) {\n r[n + this.t] = this.am(0, t[n], r, n, 0, this.t);\n }\n\n for (i = Math.min(t.t, e); n < i; ++n) {\n this.am(0, t[n], r, n, 0, e - n);\n }\n\n r.clamp();\n }, r.prototype.multiplyUpperTo = function (t, e, r) {\n var i = r.t = this.t + t.t - --e;\n\n for (r.s = 0; --i >= 0;) {\n r[i] = 0;\n }\n\n for (i = Math.max(e - this.t, 0); i < t.t; ++i) {\n r[this.t + i - e] = this.am(e - i, t[i], r, 0, 0, this.t + i - e);\n }\n\n r.clamp(), r.drShiftTo(1, r);\n }, r.prototype.modInt = function (t) {\n if (t <= 0) return 0;\n var e = this.DV % t,\n r = this.s < 0 ? t - 1 : 0;\n if (this.t > 0) if (0 == e) r = this[0] % t;else for (var i = this.t - 1; i >= 0; --i) {\n r = (e * r + this[i]) % t;\n }\n return r;\n }, r.prototype.millerRabin = function (t) {\n var e = this.subtract(r.ONE),\n n = e.getLowestSetBit();\n if (n <= 0) return !1;\n var o = e.shiftRight(n);\n (t = t + 1 >> 1) > x.length && (t = x.length);\n\n for (var s = i(), h = 0; h < t; ++h) {\n s.fromInt(x[Math.floor(Math.random() * x.length)]);\n var a = s.modPow(o, this);\n\n if (0 != a.compareTo(r.ONE) && 0 != a.compareTo(e)) {\n for (var u = 1; u++ < n && 0 != a.compareTo(e);) {\n if (0 == (a = a.modPowInt(2, this)).compareTo(r.ONE)) return !1;\n }\n\n if (0 != a.compareTo(e)) return !1;\n }\n }\n\n return !0;\n }, r.prototype.clone = function () {\n var t = i();\n return this.copyTo(t), t;\n }, r.prototype.intValue = function () {\n if (this.s < 0) {\n if (1 == this.t) return this[0] - this.DV;\n if (0 == this.t) return -1;\n } else {\n if (1 == this.t) return this[0];\n if (0 == this.t) return 0;\n }\n\n return (this[1] & (1 << 32 - this.DB) - 1) << this.DB | this[0];\n }, r.prototype.byteValue = function () {\n return 0 == this.t ? this.s : this[0] << 24 >> 24;\n }, r.prototype.shortValue = function () {\n return 0 == this.t ? this.s : this[0] << 16 >> 16;\n }, r.prototype.signum = function () {\n return this.s < 0 ? -1 : this.t <= 0 || 1 == this.t && this[0] <= 0 ? 0 : 1;\n }, r.prototype.toByteArray = function () {\n var t = this.t,\n e = new Array();\n e[0] = this.s;\n var r,\n i = this.DB - t * this.DB % 8,\n n = 0;\n if (t-- > 0) for (i < this.DB && (r = this[t] >> i) != (this.s & this.DM) >> i && (e[n++] = r | this.s << this.DB - i); t >= 0;) {\n i < 8 ? (r = (this[t] & (1 << i) - 1) << 8 - i, r |= this[--t] >> (i += this.DB - 8)) : (r = this[t] >> (i -= 8) & 255, i <= 0 && (i += this.DB, --t)), 0 != (128 & r) && (r |= -256), 0 == n && (128 & this.s) != (128 & r) && ++n, (n > 0 || r != this.s) && (e[n++] = r);\n }\n return e;\n }, r.prototype.equals = function (t) {\n return 0 == this.compareTo(t);\n }, r.prototype.min = function (t) {\n return this.compareTo(t) < 0 ? this : t;\n }, r.prototype.max = function (t) {\n return this.compareTo(t) > 0 ? this : t;\n }, r.prototype.and = function (t) {\n var e = i();\n return this.bitwiseTo(t, m, e), e;\n }, r.prototype.or = function (t) {\n var e = i();\n return this.bitwiseTo(t, v, e), e;\n }, r.prototype.xor = function (t) {\n var e = i();\n return this.bitwiseTo(t, y, e), e;\n }, r.prototype.andNot = function (t) {\n var e = i();\n return this.bitwiseTo(t, g, e), e;\n }, r.prototype.not = function () {\n for (var t = i(), e = 0; e < this.t; ++e) {\n t[e] = this.DM & ~this[e];\n }\n\n return t.t = this.t, t.s = ~this.s, t;\n }, r.prototype.shiftLeft = function (t) {\n var e = i();\n return t < 0 ? this.rShiftTo(-t, e) : this.lShiftTo(t, e), e;\n }, r.prototype.shiftRight = function (t) {\n var e = i();\n return t < 0 ? this.lShiftTo(-t, e) : this.rShiftTo(t, e), e;\n }, r.prototype.getLowestSetBit = function () {\n for (var t = 0; t < this.t; ++t) {\n if (0 != this[t]) return t * this.DB + w(this[t]);\n }\n\n return this.s < 0 ? this.t * this.DB : -1;\n }, r.prototype.bitCount = function () {\n for (var t = 0, e = this.s & this.DM, r = 0; r < this.t; ++r) {\n t += T(this[r] ^ e);\n }\n\n return t;\n }, r.prototype.testBit = function (t) {\n var e = Math.floor(t / this.DB);\n return e >= this.t ? 0 != this.s : 0 != (this[e] & 1 << t % this.DB);\n }, r.prototype.setBit = function (t) {\n return this.changeBit(t, v);\n }, r.prototype.clearBit = function (t) {\n return this.changeBit(t, g);\n }, r.prototype.flipBit = function (t) {\n return this.changeBit(t, y);\n }, r.prototype.add = function (t) {\n var e = i();\n return this.addTo(t, e), e;\n }, r.prototype.subtract = function (t) {\n var e = i();\n return this.subTo(t, e), e;\n }, r.prototype.multiply = function (t) {\n var e = i();\n return this.multiplyTo(t, e), e;\n }, r.prototype.divide = function (t) {\n var e = i();\n return this.divRemTo(t, e, null), e;\n }, r.prototype.remainder = function (t) {\n var e = i();\n return this.divRemTo(t, null, e), e;\n }, r.prototype.divideAndRemainder = function (t) {\n var e = i(),\n r = i();\n return this.divRemTo(t, e, r), new Array(e, r);\n }, r.prototype.modPow = function (t, e) {\n var r,\n n,\n o = t.bitLength(),\n s = c(1);\n if (o <= 0) return s;\n r = o < 18 ? 1 : o < 48 ? 3 : o < 144 ? 4 : o < 768 ? 5 : 6, n = o < 8 ? new l(e) : e.isEven() ? new A(e) : new d(e);\n var h = new Array(),\n a = 3,\n u = r - 1,\n f = (1 << r) - 1;\n\n if (h[1] = n.convert(this), r > 1) {\n var m = i();\n\n for (n.sqrTo(h[1], m); a <= f;) {\n h[a] = i(), n.mulTo(m, h[a - 2], h[a]), a += 2;\n }\n }\n\n var v,\n y,\n g = t.t - 1,\n w = !0,\n T = i();\n\n for (o = p(t[g]) - 1; g >= 0;) {\n for (o >= u ? v = t[g] >> o - u & f : (v = (t[g] & (1 << o + 1) - 1) << u - o, g > 0 && (v |= t[g - 1] >> this.DB + o - u)), a = r; 0 == (1 & v);) {\n v >>= 1, --a;\n }\n\n if ((o -= a) < 0 && (o += this.DB, --g), w) h[v].copyTo(s), w = !1;else {\n for (; a > 1;) {\n n.sqrTo(s, T), n.sqrTo(T, s), a -= 2;\n }\n\n a > 0 ? n.sqrTo(s, T) : (y = s, s = T, T = y), n.mulTo(T, h[v], s);\n }\n\n for (; g >= 0 && 0 == (t[g] & 1 << o);) {\n n.sqrTo(s, T), y = s, s = T, T = y, --o < 0 && (o = this.DB - 1, --g);\n }\n }\n\n return n.revert(s);\n }, r.prototype.modInverse = function (t) {\n var e = t.isEven();\n if (this.isEven() && e || 0 == t.signum()) return r.ZERO;\n\n for (var i = t.clone(), n = this.clone(), o = c(1), s = c(0), h = c(0), a = c(1); 0 != i.signum();) {\n for (; i.isEven();) {\n i.rShiftTo(1, i), e ? (o.isEven() && s.isEven() || (o.addTo(this, o), s.subTo(t, s)), o.rShiftTo(1, o)) : s.isEven() || s.subTo(t, s), s.rShiftTo(1, s);\n }\n\n for (; n.isEven();) {\n n.rShiftTo(1, n), e ? (h.isEven() && a.isEven() || (h.addTo(this, h), a.subTo(t, a)), h.rShiftTo(1, h)) : a.isEven() || a.subTo(t, a), a.rShiftTo(1, a);\n }\n\n i.compareTo(n) >= 0 ? (i.subTo(n, i), e && o.subTo(h, o), s.subTo(a, s)) : (n.subTo(i, n), e && h.subTo(o, h), a.subTo(s, a));\n }\n\n return 0 != n.compareTo(r.ONE) ? r.ZERO : a.compareTo(t) >= 0 ? a.subtract(t) : a.signum() < 0 ? (a.addTo(t, a), a.signum() < 0 ? a.add(t) : a) : a;\n }, r.prototype.pow = function (t) {\n return this.exp(t, new b());\n }, r.prototype.gcd = function (t) {\n var e = this.s < 0 ? this.negate() : this.clone(),\n r = t.s < 0 ? t.negate() : t.clone();\n\n if (e.compareTo(r) < 0) {\n var i = e;\n e = r, r = i;\n }\n\n var n = e.getLowestSetBit(),\n o = r.getLowestSetBit();\n if (o < 0) return e;\n\n for (n < o && (o = n), o > 0 && (e.rShiftTo(o, e), r.rShiftTo(o, r)); e.signum() > 0;) {\n (n = e.getLowestSetBit()) > 0 && e.rShiftTo(n, e), (n = r.getLowestSetBit()) > 0 && r.rShiftTo(n, r), e.compareTo(r) >= 0 ? (e.subTo(r, e), e.rShiftTo(1, e)) : (r.subTo(e, r), r.rShiftTo(1, r));\n }\n\n return o > 0 && r.lShiftTo(o, r), r;\n }, r.prototype.isProbablePrime = function (t) {\n var e,\n r = this.abs();\n\n if (1 == r.t && r[0] <= x[x.length - 1]) {\n for (e = 0; e < x.length; ++e) {\n if (r[0] == x[e]) return !0;\n }\n\n return !1;\n }\n\n if (r.isEven()) return !1;\n\n for (e = 1; e < x.length;) {\n for (var i = x[e], n = e + 1; n < x.length && i < k;) {\n i *= x[n++];\n }\n\n for (i = r.modInt(i); e < n;) {\n if (i % x[e++] == 0) return !1;\n }\n }\n\n return r.millerRabin(t);\n }, r.prototype.square = function () {\n var t = i();\n return this.squareTo(t), t;\n }, r.prototype.Barrett = A, null == D) {\n var M;\n if (D = new Array(), B = 0, \"undefined\" != typeof window && window.crypto) if (window.crypto.getRandomValues) {\n var I = new Uint8Array(32);\n\n for (window.crypto.getRandomValues(I), M = 0; M < 32; ++M) {\n D[B++] = I[M];\n }\n } else if (\"Netscape\" == navigator.appName && navigator.appVersion < \"5\") {\n var C = window.crypto.random(32);\n\n for (M = 0; M < C.length; ++M) {\n D[B++] = 255 & C.charCodeAt(M);\n }\n }\n\n for (; B < N;) {\n M = Math.floor(65536 * Math.random()), D[B++] = M >>> 8, D[B++] = 255 & M;\n }\n\n B = 0, E();\n }\n\n function R() {\n if (null == S) {\n for (E(), (S = new O()).init(D), B = 0; B < D.length; ++B) {\n D[B] = 0;\n }\n\n B = 0;\n }\n\n return S.next();\n }\n\n function j() {}\n\n function O() {\n this.i = 0, this.j = 0, this.S = new Array();\n }\n\n j.prototype.nextBytes = function (t) {\n var e;\n\n for (e = 0; e < t.length; ++e) {\n t[e] = R();\n }\n }, O.prototype.init = function (t) {\n var e, r, i;\n\n for (e = 0; e < 256; ++e) {\n this.S[e] = e;\n }\n\n for (r = 0, e = 0; e < 256; ++e) {\n i = this.S[e], this.S[e] = this.S[r = r + this.S[e] + t[e % t.length] & 255], this.S[r] = i;\n }\n\n this.i = 0, this.j = 0;\n }, O.prototype.next = function () {\n var t;\n return this.i = this.i + 1 & 255, this.j = this.j + this.S[this.i] & 255, t = this.S[this.i], this.S[this.i] = this.S[this.j], this.S[this.j] = t, this.S[t + this.S[this.i] & 255];\n };\n var N = 256;\n e.exports = {\n \"default\": r,\n BigInteger: r,\n SecureRandom: j\n };\n }).call(t);\n}).BigInteger,\n h = {\n sha1: \"3021300906052b0e03021a05000414\",\n sha224: \"302d300d06096086480165030402040500041c\",\n sha256: \"3031300d060960864801650304020105000420\",\n sha384: \"3041300d060960864801650304020205000430\",\n sha512: \"3051300d060960864801650304020305000440\",\n md2: \"3020300c06082a864886f70d020205000410\",\n md5: \"3020300c06082a864886f70d020505000410\",\n ripemd160: \"3021300906052b2403020105000414\"\n},\n a = {\n sha256: i$1\n};\n\nfunction u(t, e) {\n if (this.n = null, this.e = 0, !(null != t && null != e && t.length > 0 && e.length > 0)) throw new Error(\"Invalid key data\");\n this.n = new s(t, 16), this.e = parseInt(e, 16);\n}\n\nu.prototype.verify = function (t, e) {\n e = e.replace(/[^0-9a-f]|[\\s\\n]]/gi, \"\");\n var r = new s(e, 16);\n if (r.bitLength() > this.n.bitLength()) throw new Error(\"Signature does not match with the key modulus.\");\n\n var i = function (t) {\n for (var e in h) {\n var r = h[e],\n i = r.length;\n if (t.substring(0, i) === r) return {\n alg: e,\n hash: t.substring(i)\n };\n }\n\n return [];\n }(r.modPowInt(this.e, this.n).toString(16).replace(/^1f+00/, \"\"));\n\n if (0 === i.length) return !1;\n if (!a.hasOwnProperty(i.alg)) throw new Error(\"Hashing algorithm is not supported.\");\n var n = a[i.alg](t).toString();\n return i.hash === n;\n};\n\nfor (var f = [], c = [], p = \"undefined\" != typeof Uint8Array ? Uint8Array : Array, l = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\", d = 0, m = l.length; d < m; ++d) {\n f[d] = l[d], c[l.charCodeAt(d)] = d;\n}\n\nfunction v(t) {\n var e = t.length;\n if (e % 4 > 0) throw new Error(\"Invalid string. Length must be a multiple of 4\");\n var r = t.indexOf(\"=\");\n return -1 === r && (r = e), [r, r === e ? 0 : 4 - r % 4];\n}\n\nfunction y(t, e, r) {\n for (var i, n = [], o = e; o < r; o += 3) {\n n.push(f[(i = (t[o] << 16 & 16711680) + (t[o + 1] << 8 & 65280) + (255 & t[o + 2])) >> 18 & 63] + f[i >> 12 & 63] + f[i >> 6 & 63] + f[63 & i]);\n }\n\n return n.join(\"\");\n}\n\nc[\"-\".charCodeAt(0)] = 62, c[\"_\".charCodeAt(0)] = 63;\nvar g = {\n byteLength: function byteLength(t) {\n var e = v(t),\n r = e[1];\n return 3 * (e[0] + r) / 4 - r;\n },\n toByteArray: function toByteArray(t) {\n var e,\n r,\n i = v(t),\n n = i[0],\n o = i[1],\n s = new p(3 * (n + o) / 4 - o),\n h = 0,\n a = o > 0 ? n - 4 : n;\n\n for (r = 0; r < a; r += 4) {\n e = c[t.charCodeAt(r)] << 18 | c[t.charCodeAt(r + 1)] << 12 | c[t.charCodeAt(r + 2)] << 6 | c[t.charCodeAt(r + 3)], s[h++] = e >> 16 & 255, s[h++] = e >> 8 & 255, s[h++] = 255 & e;\n }\n\n return 2 === o && (e = c[t.charCodeAt(r)] << 2 | c[t.charCodeAt(r + 1)] >> 4, s[h++] = 255 & e), 1 === o && (e = c[t.charCodeAt(r)] << 10 | c[t.charCodeAt(r + 1)] << 4 | c[t.charCodeAt(r + 2)] >> 2, s[h++] = e >> 8 & 255, s[h++] = 255 & e), s;\n },\n fromByteArray: function fromByteArray(t) {\n for (var e, r = t.length, i = r % 3, n = [], o = 0, s = r - i; o < s; o += 16383) {\n n.push(y(t, o, o + 16383 > s ? s : o + 16383));\n }\n\n return 1 === i ? n.push(f[(e = t[r - 1]) >> 2] + f[e << 4 & 63] + \"==\") : 2 === i && n.push(f[(e = (t[r - 2] << 8) + t[r - 1]) >> 10] + f[e >> 4 & 63] + f[e << 2 & 63] + \"=\"), n.join(\"\");\n }\n};\n\nfunction w(t) {\n var e = t.length % 4;\n return 0 === e ? t : t + new Array(4 - e + 1).join(\"=\");\n}\n\nfunction T(t) {\n return t = w(t).replace(/\\-/g, \"+\").replace(/_/g, \"/\"), decodeURIComponent(function (t) {\n for (var e = \"\", r = 0; r < t.length; r++) {\n e += String.fromCharCode(t[r]);\n }\n\n return e;\n }(g.toByteArray(t)).split(\"\").map(function (t) {\n return \"%\" + (\"00\" + t.charCodeAt(0).toString(16)).slice(-2);\n }).join(\"\"));\n}\n\nfunction b(t) {\n return function (t) {\n for (var e = \"\", r = 0; r < t.length; r++) {\n var i = t[r].toString(16);\n e += 2 === i.length ? i : \"0\" + i;\n }\n\n return e;\n }(g.toByteArray(w(t)));\n}\n\nvar _ = e(function (e, r) {\n e.exports = function () {\n function e(t) {\n return \"function\" == typeof t;\n }\n\n var r = Array.isArray ? Array.isArray : function (t) {\n return \"[object Array]\" === Object.prototype.toString.call(t);\n },\n i = 0,\n n = void 0,\n o = void 0,\n s = function s(t, e) {\n l[i] = t, l[i + 1] = e, 2 === (i += 2) && (o ? o(d) : w());\n },\n h = \"undefined\" != typeof window ? window : void 0,\n a = h || {},\n u = a.MutationObserver || a.WebKitMutationObserver,\n f = \"undefined\" == typeof self && \"undefined\" != typeof process && \"[object process]\" === {}.toString.call(process),\n c = \"undefined\" != typeof Uint8ClampedArray && \"undefined\" != typeof importScripts && \"undefined\" != typeof MessageChannel;\n\n function p() {\n var t = setTimeout;\n return function () {\n return t(d, 1);\n };\n }\n\n var l = new Array(1e3);\n\n function d() {\n for (var t = 0; t < i; t += 2) {\n (0, l[t])(l[t + 1]), l[t] = void 0, l[t + 1] = void 0;\n }\n\n i = 0;\n }\n\n var m,\n v,\n y,\n g,\n w = void 0;\n\n function T(t, e) {\n var r = this,\n i = new this.constructor(A);\n void 0 === i[_] && N(i);\n var n = r._state;\n\n if (n) {\n var o = arguments[n - 1];\n s(function () {\n return j(n, i, o, r._result);\n });\n } else C(r, i, t, e);\n\n return i;\n }\n\n function b(t) {\n if (t && \"object\" == typeof t && t.constructor === this) return t;\n var e = new this(A);\n return k(e, t), e;\n }\n\n f ? w = function w() {\n return process.nextTick(d);\n } : u ? (v = 0, y = new u(d), g = document.createTextNode(\"\"), y.observe(g, {\n characterData: !0\n }), w = function w() {\n g.data = v = ++v % 2;\n }) : c ? ((m = new MessageChannel()).port1.onmessage = d, w = function w() {\n return m.port2.postMessage(0);\n }) : w = void 0 === h ? function () {\n try {\n var t = Function(\"return this\")().require(\"vertx\");\n\n return void 0 !== (n = t.runOnLoop || t.runOnContext) ? function () {\n n(d);\n } : p();\n } catch (t) {\n return p();\n }\n }() : p();\n\n var _ = Math.random().toString(36).substring(2);\n\n function A() {}\n\n var S = void 0,\n D = 1,\n B = 2;\n\n function x(t, r, i) {\n r.constructor === t.constructor && i === T && r.constructor.resolve === b ? function (t, e) {\n e._state === D ? M(t, e._result) : e._state === B ? I(t, e._result) : C(e, void 0, function (e) {\n return k(t, e);\n }, function (e) {\n return I(t, e);\n });\n }(t, r) : void 0 === i ? M(t, r) : e(i) ? function (t, e, r) {\n s(function (t) {\n var i = !1,\n n = function (r, n, o, s) {\n try {\n r.call(n, function (r) {\n i || (i = !0, e !== r ? k(t, r) : M(t, r));\n }, function (e) {\n i || (i = !0, I(t, e));\n });\n } catch (t) {\n return t;\n }\n }(r, e);\n\n !i && n && (i = !0, I(t, n));\n }, t);\n }(t, r, i) : M(t, r);\n }\n\n function k(t, e) {\n if (t === e) I(t, new TypeError(\"You cannot resolve a promise with itself\"));else if (n = typeof (i = e), null === i || \"object\" !== n && \"function\" !== n) M(t, e);else {\n var r = void 0;\n\n try {\n r = e.then;\n } catch (e) {\n return void I(t, e);\n }\n\n x(t, e, r);\n }\n var i, n;\n }\n\n function E(t) {\n t._onerror && t._onerror(t._result), R(t);\n }\n\n function M(t, e) {\n t._state === S && (t._result = e, t._state = D, 0 !== t._subscribers.length && s(R, t));\n }\n\n function I(t, e) {\n t._state === S && (t._state = B, t._result = e, s(E, t));\n }\n\n function C(t, e, r, i) {\n var n = t._subscribers,\n o = n.length;\n t._onerror = null, n[o] = e, n[o + D] = r, n[o + B] = i, 0 === o && t._state && s(R, t);\n }\n\n function R(t) {\n var e = t._subscribers,\n r = t._state;\n\n if (0 !== e.length) {\n for (var i = void 0, n = void 0, o = t._result, s = 0; s < e.length; s += 3) {\n n = e[s + r], (i = e[s]) ? j(r, i, n, o) : n(o);\n }\n\n t._subscribers.length = 0;\n }\n }\n\n function j(t, r, i, n) {\n var o = e(i),\n s = void 0,\n h = void 0,\n a = !0;\n\n if (o) {\n try {\n s = i(n);\n } catch (t) {\n a = !1, h = t;\n }\n\n if (r === s) return void I(r, new TypeError(\"A promises callback cannot return that same promise.\"));\n } else s = n;\n\n r._state !== S || (o && a ? k(r, s) : !1 === a ? I(r, h) : t === D ? M(r, s) : t === B && I(r, s));\n }\n\n var O = 0;\n\n function N(t) {\n t[_] = O++, t._state = void 0, t._result = void 0, t._subscribers = [];\n }\n\n var P = function () {\n function t(t, e) {\n this._instanceConstructor = t, this.promise = new t(A), this.promise[_] || N(this.promise), r(e) ? (this.length = e.length, this._remaining = e.length, this._result = new Array(this.length), 0 === this.length ? M(this.promise, this._result) : (this.length = this.length || 0, this._enumerate(e), 0 === this._remaining && M(this.promise, this._result))) : I(this.promise, new Error(\"Array Methods must be provided an Array\"));\n }\n\n return t.prototype._enumerate = function (t) {\n for (var e = 0; this._state === S && e < t.length; e++) {\n this._eachEntry(t[e], e);\n }\n }, t.prototype._eachEntry = function (t, e) {\n var r = this._instanceConstructor,\n i = r.resolve;\n\n if (i === b) {\n var n = void 0,\n o = void 0,\n s = !1;\n\n try {\n n = t.then;\n } catch (t) {\n s = !0, o = t;\n }\n\n if (n === T && t._state !== S) this._settledAt(t._state, e, t._result);else if (\"function\" != typeof n) this._remaining--, this._result[e] = t;else if (r === V) {\n var h = new r(A);\n s ? I(h, o) : x(h, t, n), this._willSettleAt(h, e);\n } else this._willSettleAt(new r(function (e) {\n return e(t);\n }), e);\n } else this._willSettleAt(i(t), e);\n }, t.prototype._settledAt = function (t, e, r) {\n var i = this.promise;\n i._state === S && (this._remaining--, t === B ? I(i, r) : this._result[e] = r), 0 === this._remaining && M(i, this._result);\n }, t.prototype._willSettleAt = function (t, e) {\n var r = this;\n C(t, void 0, function (t) {\n return r._settledAt(D, e, t);\n }, function (t) {\n return r._settledAt(B, e, t);\n });\n }, t;\n }(),\n V = function () {\n function t(e) {\n this[_] = O++, this._result = this._state = void 0, this._subscribers = [], A !== e && (\"function\" != typeof e && function () {\n throw new TypeError(\"You must pass a resolver function as the first argument to the promise constructor\");\n }(), this instanceof t ? function (t, e) {\n try {\n e(function (e) {\n k(t, e);\n }, function (e) {\n I(t, e);\n });\n } catch (e) {\n I(t, e);\n }\n }(this, e) : function () {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n }());\n }\n\n return t.prototype[\"catch\"] = function (t) {\n return this.then(null, t);\n }, t.prototype[\"finally\"] = function (t) {\n var r = this.constructor;\n return e(t) ? this.then(function (e) {\n return r.resolve(t()).then(function () {\n return e;\n });\n }, function (e) {\n return r.resolve(t()).then(function () {\n throw e;\n });\n }) : this.then(t, t);\n }, t;\n }();\n\n return V.prototype.then = T, V.all = function (t) {\n return new P(this, t).promise;\n }, V.race = function (t) {\n var e = this;\n return r(t) ? new e(function (r, i) {\n for (var n = t.length, o = 0; o < n; o++) {\n e.resolve(t[o]).then(r, i);\n }\n }) : new e(function (t, e) {\n return e(new TypeError(\"You must pass an array to race.\"));\n });\n }, V.resolve = b, V.reject = function (t) {\n var e = new this(A);\n return I(e, t), e;\n }, V._setScheduler = function (t) {\n o = t;\n }, V._setAsap = function (t) {\n s = t;\n }, V._asap = s, V.polyfill = function () {\n var e = void 0;\n if (void 0 !== t) e = t;else if (\"undefined\" != typeof self) e = self;else try {\n e = Function(\"return this\")();\n } catch (t) {\n throw new Error(\"polyfill failed because global object is unavailable in this environment\");\n }\n var r = e.Promise;\n\n if (r) {\n var i = null;\n\n try {\n i = Object.prototype.toString.call(r.resolve());\n } catch (t) {}\n\n if (\"[object Promise]\" === i && !r.cast) return;\n }\n\n e.Promise = V;\n }, V.Promise = V, V;\n }();\n}),\n A = e(function (e) {\n var r, i;\n r = t, i = function i() {\n return function () {\n return function (t) {\n var e = [];\n if (0 === t.length) return \"\";\n if (\"string\" != typeof t[0]) throw new TypeError(\"Url must be a string. Received \" + t[0]);\n\n if (t[0].match(/^[^\\/:]+:\\/*$/) && t.length > 1) {\n var r = t.shift();\n t[0] = r + t[0];\n }\n\n t[0] = t[0].match(/^file:\\/\\/\\//) ? t[0].replace(/^([^\\/:]+):\\/*/, \"$1:///\") : t[0].replace(/^([^\\/:]+):\\/*/, \"$1://\");\n\n for (var i = 0; i < t.length; i++) {\n var n = t[i];\n if (\"string\" != typeof n) throw new TypeError(\"Url must be a string. Received \" + n);\n \"\" !== n && (i > 0 && (n = n.replace(/^[\\/]+/, \"\")), n = n.replace(/[\\/]+$/, i < t.length - 1 ? \"\" : \"/\"), e.push(n));\n }\n\n var o = e.join(\"/\"),\n s = (o = o.replace(/\\/(\\?|&|#[^!])/g, \"$1\")).split(\"?\");\n return s.shift() + (s.length > 0 ? \"?\" : \"\") + s.join(\"&\");\n }(\"object\" == typeof arguments[0] ? arguments[0] : [].slice.call(arguments));\n };\n }, e.exports ? e.exports = i() : r.urljoin = i();\n});\n\nfunction S(t) {\n if (t.ok) return t.json();\n var e = new Error(t.statusText);\n return e.response = t, Promise.reject(e);\n}\n\nfunction D(t) {\n this.name = \"ConfigurationError\", this.message = t || \"\";\n}\n\nfunction B(t) {\n this.name = \"TokenValidationError\", this.message = t || \"\";\n}\n\n_.polyfill(), D.prototype = Error.prototype, B.prototype = Error.prototype;\n\nvar x = function x() {};\n\nx.prototype.get = function () {\n return null;\n}, x.prototype.has = function () {\n return null;\n}, x.prototype.set = function () {\n return null;\n};\n\nvar k = \"RS256\",\n E = function E(t) {\n return \"number\" == typeof t;\n},\n M = function M() {\n return new Date();\n},\n I = 60;\n\nfunction C(t) {\n var e = t || {};\n if (this.jwksCache = e.jwksCache || new x(), this.expectedAlg = e.expectedAlg || \"RS256\", this.issuer = e.issuer, this.audience = e.audience, this.leeway = 0 === e.leeway ? 0 : e.leeway || I, this.jwksURI = e.jwksURI, this.maxAge = e.maxAge, this.__clock = \"function\" == typeof e.__clock ? e.__clock : M, this.leeway < 0 || this.leeway > 300) throw new D(\"The leeway should be positive and lower than five minutes.\");\n if (k !== this.expectedAlg) throw new D('Signature algorithm of \"' + this.expectedAlg + '\" is not supported. Expected the ID token to be signed with \"' + k + '\".');\n}\n\nfunction PluginHandler(webAuth, plugins) {\n this.plugins = plugins;\n\n for (var a = 0; a < this.plugins.length; a++) {\n if (this.plugins[a].version !== version.raw) {\n var pluginName = \"\";\n throw this.plugins[a].constructor && this.plugins[a].constructor.name && (pluginName = this.plugins[a].constructor.name), new Error(\"Plugin \" + pluginName + \" version (\" + this.plugins[a].version + \") is not compatible with the SDK version (\" + version.raw + \")\");\n }\n\n this.plugins[a].setWebAuth(webAuth);\n }\n}\n\nC.prototype.verify = function (t, e, r) {\n if (!t) return r(new B(\"ID token is required but missing\"), !1);\n var i = this.decode(t);\n if (i instanceof Error) return r(new B(\"ID token could not be decoded\"), !1);\n\n var n = i.encoded.header + \".\" + i.encoded.payload,\n o = b(i.encoded.signature),\n s = i.header.alg,\n h = i.header.kid,\n a = i.payload.aud,\n u = i.payload.sub,\n f = i.payload.iss,\n c = i.payload.exp,\n p = i.payload.nbf,\n l = i.payload.iat,\n d = i.payload.azp,\n m = i.payload.auth_time,\n v = i.payload.nonce,\n y = this.__clock(),\n g = this;\n\n if (g.expectedAlg !== s) return r(new B('Signature algorithm of \"' + s + '\" is not supported. Expected the ID token to be signed with \"' + k + '\".'), !1);\n this.getRsaVerifier(f, h, function (t, s) {\n if (t) return r(t);\n if (!s.verify(n, o)) return r(new B(\"Invalid ID token signature.\"));\n if (!f || \"string\" != typeof f) return r(new B(\"Issuer (iss) claim must be a string present in the ID token\", !1));\n if (g.issuer !== f) return r(new B('Issuer (iss) claim mismatch in the ID token, expected \"' + g.issuer + '\", found \"' + f + '\"'), !1);\n if (!u || \"string\" != typeof u) return r(new B(\"Subject (sub) claim must be a string present in the ID token\"), !1);\n if (!a || \"string\" != typeof a && !Array.isArray(a)) return r(new B(\"Audience (aud) claim must be a string or array of strings present in the ID token\"));\n if (Array.isArray(a) && !a.includes(g.audience)) return r(new B('Audience (aud) claim mismatch in the ID token; expected \"' + g.audience + '\" but was not one of \"' + a.join(\", \") + '\"'));\n if (\"string\" == typeof a && g.audience !== a) return r(new B('Audience (aud) claim mismatch in the ID token; expected \"' + g.audience + '\" but found \"' + a + '\"'), !1);\n\n if (e) {\n if (!v || \"string\" != typeof v) return r(new B(\"Nonce (nonce) claim must be a string present in the ID token\"), !1);\n if (v !== e) return r(new B('Nonce (nonce) claim value mismatch in the ID token; expected \"' + e + '\", found \"' + v + '\"'), !1);\n }\n\n if (Array.isArray(a) && a.length > 1) {\n if (!d || \"string\" != typeof d) return r(new B(\"Authorized Party (azp) claim must be a string present in the ID token when Audience (aud) claim has multiple values\", !1));\n if (d !== g.audience) return r(new B('Authorized Party (azp) claim mismatch in the ID token; expected \"' + g.audience + '\", found \"' + d + '\"', !1));\n }\n\n if (!c || !E(c)) return r(new B(\"Expiration Time (exp) claim must be a number present in the ID token\", !1));\n if (!l || !E(l)) return r(new B(\"Issued At (iat) claim must be a number present in the ID token\"));\n var h = c + g.leeway,\n w = new Date(0);\n if (w.setUTCSeconds(h), y > w) return r(new B('Expiration Time (exp) claim error in the ID token; current time \"' + y + '\" is after expiration time \"' + w + '\"', !1));\n\n if (p && E(p)) {\n var T = p - g.leeway,\n b = new Date(0);\n if (b.setUTCSeconds(T), y < b) return r(new B('Not Before Time (nbf) claim error in the ID token; current time \"' + y + '\" is before the not before time \"' + b + '\"'));\n }\n\n if (g.maxAge) {\n if (!m || !E(m)) return r(new B(\"Authentication Time (auth_time) claim must be a number present in the ID token when Max Age (max_age) is specified\"));\n\n var _ = m + g.maxAge + g.leeway,\n A = new Date(0);\n\n if (A.setUTCSeconds(_), y > A) return r(new B('Authentication Time (auth_time) claim in the ID token indicates that too much time has passed since the last end-user authentication. Current time \"' + y + '\" is after last auth time at \"' + A + '\"'));\n }\n\n return r(null, i.payload);\n });\n}, C.prototype.getRsaVerifier = function (t, e, r) {\n var i = this,\n n = t + e;\n\n if (this.jwksCache.has(n)) {\n var o = this.jwksCache.get(n);\n r(null, new u(o.modulus, o.exp));\n } else !function (t, e) {\n (\"undefined\" == typeof fetch ? function (t, e) {\n return e = e || {}, new Promise(function (r, i) {\n var n = new XMLHttpRequest(),\n o = [],\n s = [],\n h = {},\n a = function a() {\n return {\n ok: 2 == (n.status / 100 | 0),\n statusText: n.statusText,\n status: n.status,\n url: n.responseURL,\n text: function text() {\n return Promise.resolve(n.responseText);\n },\n json: function json() {\n return Promise.resolve(JSON.parse(n.responseText));\n },\n blob: function blob() {\n return Promise.resolve(new Blob([n.response]));\n },\n clone: a,\n headers: {\n keys: function keys() {\n return o;\n },\n entries: function entries() {\n return s;\n },\n get: function get(t) {\n return h[t.toLowerCase()];\n },\n has: function has(t) {\n return t.toLowerCase() in h;\n }\n }\n };\n };\n\n for (var u in n.open(e.method || \"get\", t, !0), n.onload = function () {\n n.getAllResponseHeaders().replace(/^(.*?):[^\\S\\n]*([\\s\\S]*?)$/gm, function (t, e, r) {\n o.push(e = e.toLowerCase()), s.push([e, r]), h[e] = h[e] ? h[e] + \",\" + r : r;\n }), r(a());\n }, n.onerror = i, n.withCredentials = \"include\" == e.credentials, e.headers) {\n n.setRequestHeader(u, e.headers[u]);\n }\n\n n.send(e.body || null);\n });\n } : fetch)(t.jwksURI || A(t.iss, \".well-known\", \"jwks.json\")).then(S).then(function (r) {\n var i,\n n,\n o,\n s = null;\n\n for (i = 0; i < r.keys.length && null === s; i++) {\n if ((n = r.keys[i]).kid === t.kid && (s = n), !s) return e(new Error('Could not find a public key for Key ID (kid) \"' + t.kid + '\"'));\n }\n\n return e(null, {\n modulus: b((o = s).n),\n exp: b(o.e)\n });\n })[\"catch\"](function (t) {\n e(t);\n });\n }({\n jwksURI: this.jwksURI,\n iss: t,\n kid: e\n }, function (t, e) {\n return t ? r(t) : (i.jwksCache.set(n, e), r(null, new u(e.modulus, e.exp)));\n });\n}, C.prototype.decode = function (t) {\n var e,\n r,\n i = t.split(\".\");\n if (3 !== i.length) return new B(\"Cannot decode a malformed JWT\");\n\n try {\n e = JSON.parse(T(i[0])), r = JSON.parse(T(i[1]));\n } catch (t) {\n return new B(\"Token header or payload is not valid JSON\");\n }\n\n return {\n header: e,\n payload: r,\n encoded: {\n header: i[0],\n payload: i[1],\n signature: i[2]\n }\n };\n}, C.prototype.validateAccessToken = function (t, e, r, s) {\n if (this.expectedAlg !== e) return s(new B('Signature algorithm of \"' + e + '\" is not supported. Expected \"' + this.expectedAlg + '\"'));\n var h,\n a = i$1(t),\n u = o.stringify(a),\n f = u.substring(0, u.length / 2),\n c = o.parse(f),\n p = n.stringify(c);\n return s((h = {\n \"+\": \"-\",\n \"/\": \"_\",\n \"=\": \"\"\n }, p.replace(/[+\\/=]/g, function (t) {\n return h[t];\n }) !== r ? new B(\"Invalid access_token\") : null));\n}, PluginHandler.prototype.get = function (extensibilityPoint) {\n for (var a = 0; a < this.plugins.length; a++) {\n if (this.plugins[a].supports(extensibilityPoint)) return this.plugins[a].init();\n }\n\n return null;\n};\nvar random = {\n randomString: function randomString(length) {\n var bytes = new Uint8Array(length),\n result = [],\n charset = \"0123456789ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvwxyz-._~\",\n cryptoObj = windowHelper.getWindow().crypto || windowHelper.getWindow().msCrypto;\n if (!cryptoObj) return null;\n\n for (var random = cryptoObj.getRandomValues(bytes), a = 0; a < random.length; a++) {\n result.push(charset[random[a] % charset.length]);\n }\n\n return result.join(\"\");\n }\n},\n DEFAULT_NAMESPACE = \"com.auth0.auth.\";\n\nfunction TransactionManager(options) {\n var transaction = options.transaction || {};\n this.namespace = transaction.namespace || DEFAULT_NAMESPACE, this.keyLength = transaction.keyLength || 32, this.storage = new Storage(options), this.options = options;\n}\n\nfunction IframeHandler(options) {\n if (this.url = options.url, this.callback = options.callback, this.timeout = options.timeout || 6e4, this.timeoutCallback = options.timeoutCallback || null, this.eventListenerType = options.eventListenerType || \"message\", this.iframe = null, this.timeoutHandle = null, this._destroyTimeout = null, this.transientMessageEventListener = null, this.proxyEventListener = null, this.eventValidator = options.eventValidator || {\n isValid: function isValid() {\n return !0;\n }\n }, \"function\" != typeof this.callback) throw new Error(\"options.callback must be a function\");\n}\n\nfunction WebMessageHandler(webAuth) {\n this.webAuth = webAuth, this.warn = new Warn(webAuth.baseOptions);\n}\n\nfunction CrossOriginAuthentication(webAuth, options) {\n this.webAuth = webAuth, this.baseOptions = options, this.request = new RequestBuilder(options), this.webMessageHandler = new WebMessageHandler(webAuth), this.storage = new Storage(options);\n}\n\nfunction createKey(origin, coId) {\n return [\"co/verifier\", encodeURIComponent(origin), encodeURIComponent(coId)].join(\"/\");\n}\n\nfunction Redirect(auth0, options) {\n this.webAuth = auth0, this.baseOptions = options, this.crossOriginAuthentication = new CrossOriginAuthentication(auth0, this.baseOptions), this.warn = new Warn({\n disableWarnings: !!options._disableDeprecationWarnings\n });\n}\n\nTransactionManager.prototype.process = function (options) {\n if (!options.responseType) throw new Error(\"responseType is required\");\n var lastUsedConnection = options.realm || options.connection,\n responseTypeIncludesIdToken = -1 !== options.responseType.indexOf(\"id_token\"),\n transaction = this.generateTransaction(options.appState, options.state, options.nonce, lastUsedConnection, responseTypeIncludesIdToken);\n return options.state || (options.state = transaction.state), responseTypeIncludesIdToken && !options.nonce && (options.nonce = transaction.nonce), options;\n}, TransactionManager.prototype.generateTransaction = function (appState, state, nonce, lastUsedConnection, generateNonce) {\n return state = state || random.randomString(this.keyLength), nonce = nonce || (generateNonce ? random.randomString(this.keyLength) : null), windowHelper.getWindow().location.host === this.options.domain || this.storage.setItem(this.namespace + state, {\n nonce: nonce,\n appState: appState,\n state: state,\n lastUsedConnection: lastUsedConnection\n }, {\n expires: 1 / 48\n }), {\n state: state,\n nonce: nonce\n };\n}, TransactionManager.prototype.getStoredTransaction = function (state) {\n var transactionData;\n return transactionData = this.storage.getItem(this.namespace + state), this.clearTransaction(state), transactionData;\n}, TransactionManager.prototype.clearTransaction = function (state) {\n this.storage.removeItem(this.namespace + state);\n}, IframeHandler.prototype.init = function () {\n var _this = this,\n _window = windowHelper.getWindow();\n\n switch (this.iframe = _window.document.createElement(\"iframe\"), this.iframe.style.display = \"none\", this.proxyEventListener = function (e) {\n _this.eventListener(e);\n }, this.eventListenerType) {\n case \"message\":\n this.eventSourceObject = _window;\n break;\n\n case \"load\":\n this.eventSourceObject = this.iframe;\n break;\n\n default:\n throw new Error(\"Unsupported event listener type: \" + this.eventListenerType);\n }\n\n this.eventSourceObject.addEventListener(this.eventListenerType, this.proxyEventListener, !1), _window.document.body.appendChild(this.iframe), this.iframe.src = this.url, this.timeoutHandle = setTimeout(function () {\n _this.timeoutHandler();\n }, this.timeout);\n}, IframeHandler.prototype.eventListener = function (event) {\n var eventData = {\n event: event,\n sourceObject: this.eventSourceObject\n };\n this.eventValidator.isValid(eventData) && (this.destroy(), this.callback(eventData));\n}, IframeHandler.prototype.timeoutHandler = function () {\n this.destroy(), this.timeoutCallback && this.timeoutCallback();\n}, IframeHandler.prototype.destroy = function () {\n var _this = this;\n\n clearTimeout(this.timeoutHandle), this._destroyTimeout = setTimeout(function () {\n _this.eventSourceObject.removeEventListener(_this.eventListenerType, _this.proxyEventListener, !1), _this.iframe.parentNode && _this.iframe.parentNode.removeChild(_this.iframe);\n }, 0);\n}, WebMessageHandler.prototype.run = function (options, cb) {\n var _this = this;\n\n options.responseMode = \"web_message\", options.prompt = \"none\";\n var currentOrigin = windowHelper.getOrigin(),\n redirectUriOrigin = objectHelper.getOriginFromUrl(options.redirectUri);\n if (redirectUriOrigin && currentOrigin !== redirectUriOrigin) return cb({\n error: \"origin_mismatch\",\n error_description: \"The redirectUri's origin (\" + redirectUriOrigin + \") should match the window's origin (\" + currentOrigin + \").\"\n });\n !function (authorizeUrl, options, _callback) {\n new IframeHandler({\n url: authorizeUrl,\n eventListenerType: \"message\",\n callback: function callback(eventData) {\n _callback(null, eventData);\n },\n timeout: options.timeout,\n eventValidator: {\n isValid: function isValid(eventData) {\n return \"authorization_response\" === eventData.event.data.type && options.state === eventData.event.data.response.state;\n }\n },\n timeoutCallback: function timeoutCallback() {\n _callback({\n error: \"timeout\",\n error_description: \"Timeout during executing web_message communication\",\n state: options.state\n });\n }\n }).init();\n }(this.webAuth.client.buildAuthorizeUrl(options), options, function (err, eventData) {\n var error = err;\n\n if (!err && eventData.event.data.response.error && (error = eventData.event.data.response), !error) {\n var parsedHash = eventData.event.data.response;\n return _this.webAuth.validateAuthenticationResponse(options, parsedHash, cb);\n }\n\n return \"consent_required\" === error.error && \"localhost\" === windowHelper.getWindow().location.hostname && _this.warn.warning(\"Consent Required. Consent can't be skipped on localhost. Read more here: https://auth0.com/docs/api-auth/user-consent#skipping-consent-for-first-party-clients\"), _this.webAuth.transactionManager.clearTransaction(error.state), cb(objectHelper.pick(error, [\"error\", \"error_description\"]));\n });\n}, CrossOriginAuthentication.prototype.login = function (options, cb) {\n var _this = this,\n url = urlJoin(this.baseOptions.rootUrl, \"/co/authenticate\");\n\n options.username = options.username || options.email, delete options.email;\n var authenticateBody = {\n client_id: options.clientID || this.baseOptions.clientID,\n username: options.username\n };\n options.password && (authenticateBody.password = options.password), options.otp && (authenticateBody.otp = options.otp);\n var realm = options.realm || this.baseOptions.realm;\n\n if (realm) {\n var credentialType = options.credentialType || this.baseOptions.credentialType || \"http://auth0.com/oauth/grant-type/password-realm\";\n authenticateBody.realm = realm, authenticateBody.credential_type = credentialType;\n } else authenticateBody.credential_type = \"password\";\n\n this.request.post(url).withCredentials().send(authenticateBody).end(function (err, data) {\n if (err) {\n var errorObject = err.response && err.response.body || {\n error: \"request_error\",\n error_description: JSON.stringify(err)\n };\n return wrapCallback(cb, {\n forceLegacyError: !0\n })(errorObject);\n }\n\n var popupMode = !0 === options.popup;\n options = objectHelper.blacklist(options, [\"password\", \"credentialType\", \"otp\", \"popup\"]);\n var authorizeOptions = objectHelper.merge(options)[\"with\"]({\n loginTicket: data.body.login_ticket\n }),\n key = createKey(_this.baseOptions.rootUrl, data.body.co_id);\n _this.storage.setItem(key, data.body.co_verifier, {\n expires: 1 / 96\n }), popupMode ? _this.webMessageHandler.run(authorizeOptions, wrapCallback(cb, {\n forceLegacyError: !0\n })) : _this.webAuth.authorize(authorizeOptions);\n });\n}, CrossOriginAuthentication.prototype.callback = function () {\n var targetOrigin = decodeURIComponent(function (name) {\n var parts = (\"&\" + windowHelper.getWindow().location.hash.substring(1)).split(\"&\" + name + \"=\");\n if (2 === parts.length) return parts.pop().split(\"&\").shift();\n }(\"origin\")),\n theWindow = windowHelper.getWindow(),\n _this = this;\n\n theWindow.addEventListener(\"message\", function (evt) {\n if (\"co_verifier_request\" === evt.data.type) {\n var key = createKey(evt.origin, evt.data.request.id),\n verifier = function (storage, key) {\n try {\n var verifier = storage.getItem(key);\n return storage.removeItem(key), verifier || \"\";\n } catch (e) {\n return \"\";\n }\n }(_this.storage, key);\n\n evt.source.postMessage({\n type: \"co_verifier_response\",\n response: {\n verifier: verifier\n }\n }, evt.origin);\n }\n }), theWindow.parent.postMessage({\n type: \"ready\"\n }, targetOrigin);\n}, Redirect.prototype.loginWithCredentials = function (options, cb) {\n options.realm = options.realm || options.connection, delete options.connection, this.crossOriginAuthentication.login(options, cb);\n}, Redirect.prototype.signupAndLogin = function (options, cb) {\n var _this = this;\n\n return this.webAuth.client.dbConnection.signup(options, function (err) {\n return err ? cb(err) : (options.realm = options.realm || options.connection, delete options.connection, _this.webAuth.login(options, cb));\n });\n};\nvar winchan = createCommonjsModule(function (module) {\n var WinChan = function () {\n var RELAY_FRAME_NAME = \"__winchan_relay_frame\",\n CLOSE_CMD = \"die\";\n\n function addListener(w, event, cb) {\n w.attachEvent ? w.attachEvent(\"on\" + event, cb) : w.addEventListener && w.addEventListener(event, cb, !1);\n }\n\n function removeListener(w, event, cb) {\n w.detachEvent ? w.detachEvent(\"on\" + event, cb) : w.removeEventListener && w.removeEventListener(event, cb, !1);\n }\n\n function extractOrigin(url) {\n /^https?:\\/\\//.test(url) || (url = window.location.href);\n var m = /^(https?:\\/\\/[\\-_a-zA-Z\\.0-9:]+)/.exec(url);\n return m ? m[1] : url;\n }\n\n var isIE = function () {\n if (\"undefined\" == typeof navigator) return !1;\n var rv = -1,\n ua = navigator.userAgent;\n \"Microsoft Internet Explorer\" === navigator.appName ? null != new RegExp(\"MSIE ([0-9]{1,}[.0-9]{0,})\").exec(ua) && (rv = parseFloat(RegExp.$1)) : ua.indexOf(\"Trident\") > -1 && null !== new RegExp(\"rv:([0-9]{2,2}[.0-9]{0,})\").exec(ua) && (rv = parseFloat(RegExp.$1));\n return rv >= 8;\n }();\n\n return \"undefined\" != typeof window && window.JSON && window.JSON.stringify && window.JSON.parse && window.postMessage ? {\n open: function open(opts, cb) {\n if (!cb) throw \"missing required callback argument\";\n var err, iframe;\n opts.url || (err = \"missing required 'url' parameter\"), opts.relay_url || (err = \"missing required 'relay_url' parameter\"), err && setTimeout(function () {\n cb(err);\n }, 0), opts.window_name || (opts.window_name = null), opts.window_features && !function () {\n try {\n var userAgent = navigator.userAgent;\n return -1 != userAgent.indexOf(\"Fennec/\") || -1 != userAgent.indexOf(\"Firefox/\") && -1 != userAgent.indexOf(\"Android\");\n } catch (e) {}\n\n return !1;\n }() || (opts.window_features = void 0);\n var messageTarget,\n origin = opts.origin || extractOrigin(opts.url);\n if (origin !== extractOrigin(opts.relay_url)) return setTimeout(function () {\n cb(\"invalid arguments: origin of url and relay_url must match\");\n }, 0);\n isIE && ((iframe = document.createElement(\"iframe\")).setAttribute(\"src\", opts.relay_url), iframe.style.display = \"none\", iframe.setAttribute(\"name\", RELAY_FRAME_NAME), document.body.appendChild(iframe), messageTarget = iframe.contentWindow);\n var w = opts.popup || window.open(opts.url, opts.window_name, opts.window_features);\n opts.popup && (w.location.href = opts.url), messageTarget || (messageTarget = w);\n var closeInterval = setInterval(function () {\n w && w.closed && (cleanup(), cb && (cb(\"User closed the popup window\"), cb = null));\n }, 500),\n req = JSON.stringify({\n a: \"request\",\n d: opts.params\n });\n\n function cleanup() {\n if (iframe && document.body.removeChild(iframe), iframe = void 0, closeInterval && (closeInterval = clearInterval(closeInterval)), removeListener(window, \"message\", onMessage), removeListener(window, \"unload\", cleanup), w) try {\n w.close();\n } catch (securityViolation) {\n messageTarget.postMessage(CLOSE_CMD, origin);\n }\n w = messageTarget = void 0;\n }\n\n function onMessage(e) {\n if (e.origin === origin) {\n try {\n var d = JSON.parse(e.data);\n } catch (err) {\n if (cb) return cb(err);\n throw err;\n }\n\n \"ready\" === d.a ? messageTarget.postMessage(req, origin) : \"error\" === d.a ? (cleanup(), cb && (cb(d.d), cb = null)) : \"response\" === d.a && (cleanup(), cb && (cb(null, d.d), cb = null));\n }\n }\n\n return addListener(window, \"unload\", cleanup), addListener(window, \"message\", onMessage), {\n originalPopup: w,\n close: cleanup,\n focus: function focus() {\n if (w) try {\n w.focus();\n } catch (e) {}\n }\n };\n },\n onOpen: function onOpen(cb) {\n var o = \"*\",\n msgTarget = isIE ? function () {\n window.location;\n\n for (var frames = window.opener.frames, i = frames.length - 1; i >= 0; i--) {\n try {\n if (frames[i].location.protocol === window.location.protocol && frames[i].location.host === window.location.host && frames[i].name === RELAY_FRAME_NAME) return frames[i];\n } catch (e) {}\n }\n }() : window.opener;\n if (!msgTarget) throw \"can't find relay frame\";\n\n function doPost(msg) {\n msg = JSON.stringify(msg), isIE ? msgTarget.doPost(msg, o) : msgTarget.postMessage(msg, o);\n }\n\n function onDie(e) {\n if (e.data === CLOSE_CMD) try {\n window.close();\n } catch (o_O) {}\n }\n\n addListener(isIE ? msgTarget : window, \"message\", function onMessage(e) {\n var d;\n\n try {\n d = JSON.parse(e.data);\n } catch (err) {}\n\n d && \"request\" === d.a && (removeListener(window, \"message\", onMessage), o = e.origin, cb && setTimeout(function () {\n cb(o, d.d, function (r) {\n cb = void 0, doPost({\n a: \"response\",\n d: r\n });\n });\n }, 0));\n }), addListener(isIE ? msgTarget : window, \"message\", onDie);\n\n try {\n doPost({\n a: \"ready\"\n });\n } catch (e) {\n addListener(msgTarget, \"load\", function (e) {\n doPost({\n a: \"ready\"\n });\n });\n }\n\n var onUnload = function onUnload() {\n try {\n removeListener(isIE ? msgTarget : window, \"message\", onDie);\n } catch (ohWell) {}\n\n cb && doPost({\n a: \"error\",\n d: \"client closed window\"\n }), cb = void 0;\n\n try {\n window.close();\n } catch (e) {}\n };\n\n return addListener(window, \"unload\", onUnload), {\n detach: function detach() {\n removeListener(window, \"unload\", onUnload);\n }\n };\n }\n } : {\n open: function open(url, winopts, arg, cb) {\n setTimeout(function () {\n cb(\"unsupported browser\");\n }, 0);\n },\n onOpen: function onOpen(cb) {\n setTimeout(function () {\n cb(\"unsupported browser\");\n }, 0);\n }\n };\n }();\n\n module.exports && (module.exports = WinChan);\n});\nvar urlHelper = {\n extractOrigin: function extractOrigin(url) {\n /^https?:\\/\\//.test(url) || (url = window.location.href);\n var m = /^(https?:\\/\\/[-_a-zA-Z.0-9:]+)/.exec(url);\n return m ? m[1] : url;\n }\n};\n\nfunction PopupHandler() {\n this._current_popup = null;\n}\n\nfunction Popup(webAuth, options) {\n this.baseOptions = options, this.baseOptions.popupOrigin = options.popupOrigin, this.client = webAuth.client, this.webAuth = webAuth, this.transactionManager = new TransactionManager(this.baseOptions), this.crossOriginAuthentication = new CrossOriginAuthentication(webAuth, this.baseOptions), this.warn = new Warn({\n disableWarnings: !!options._disableDeprecationWarnings\n });\n}\n\nfunction SilentAuthenticationHandler(options) {\n this.authenticationUrl = options.authenticationUrl, this.timeout = options.timeout || 6e4, this.handler = null, this.postMessageDataType = options.postMessageDataType || !1, this.postMessageOrigin = options.postMessageOrigin || windowHelper.getWindow().location.origin || windowHelper.getWindow().location.protocol + \"//\" + windowHelper.getWindow().location.hostname + (windowHelper.getWindow().location.port ? \":\" + windowHelper.getWindow().location.port : \"\");\n}\n\nfunction UsernamePassword(options) {\n this.baseOptions = options, this.request = new RequestBuilder(options), this.transactionManager = new TransactionManager(this.baseOptions);\n}\n\nfunction HostedPages(client, options) {\n this.baseOptions = options, this.client = client, this.baseOptions.universalLoginPage = !0, this.request = new RequestBuilder(this.baseOptions), this.warn = new Warn({\n disableWarnings: !!options._disableDeprecationWarnings\n });\n}\n\nfunction defaultClock() {\n return new Date();\n}\n\nfunction WebAuth(options) {\n assert.check(options, {\n type: \"object\",\n message: \"options parameter is not valid\"\n }, {\n domain: {\n type: \"string\",\n message: \"domain option is required\"\n },\n clientID: {\n type: \"string\",\n message: \"clientID option is required\"\n },\n responseType: {\n optional: !0,\n type: \"string\",\n message: \"responseType is not valid\"\n },\n responseMode: {\n optional: !0,\n type: \"string\",\n message: \"responseMode is not valid\"\n },\n redirectUri: {\n optional: !0,\n type: \"string\",\n message: \"redirectUri is not valid\"\n },\n scope: {\n optional: !0,\n type: \"string\",\n message: \"scope is not valid\"\n },\n audience: {\n optional: !0,\n type: \"string\",\n message: \"audience is not valid\"\n },\n popupOrigin: {\n optional: !0,\n type: \"string\",\n message: \"popupOrigin is not valid\"\n },\n leeway: {\n optional: !0,\n type: \"number\",\n message: \"leeway is not valid\"\n },\n plugins: {\n optional: !0,\n type: \"array\",\n message: \"plugins is not valid\"\n },\n maxAge: {\n optional: !0,\n type: \"number\",\n message: \"maxAge is not valid\"\n },\n _disableDeprecationWarnings: {\n optional: !0,\n type: \"boolean\",\n message: \"_disableDeprecationWarnings option is not valid\"\n },\n _sendTelemetry: {\n optional: !0,\n type: \"boolean\",\n message: \"_sendTelemetry option is not valid\"\n },\n _telemetryInfo: {\n optional: !0,\n type: \"object\",\n message: \"_telemetryInfo option is not valid\"\n },\n _timesToRetryFailedRequests: {\n optional: !0,\n type: \"number\",\n message: \"_timesToRetryFailedRequests option is not valid\"\n }\n }), options.overrides && assert.check(options.overrides, {\n type: \"object\",\n message: \"overrides option is not valid\"\n }, {\n __tenant: {\n optional: !0,\n type: \"string\",\n message: \"__tenant option is required\"\n },\n __token_issuer: {\n optional: !0,\n type: \"string\",\n message: \"__token_issuer option is required\"\n },\n __jwks_uri: {\n optional: !0,\n type: \"string\",\n message: \"__jwks_uri is required\"\n }\n }), this.baseOptions = options, this.baseOptions.plugins = new PluginHandler(this, this.baseOptions.plugins || []), this.baseOptions._sendTelemetry = !1 !== this.baseOptions._sendTelemetry || this.baseOptions._sendTelemetry, this.baseOptions._timesToRetryFailedRequests = options._timesToRetryFailedRequests ? parseInt(options._timesToRetryFailedRequests, 0) : 0, this.baseOptions.tenant = this.baseOptions.overrides && this.baseOptions.overrides.__tenant || this.baseOptions.domain.split(\".\")[0], this.baseOptions.token_issuer = this.baseOptions.overrides && this.baseOptions.overrides.__token_issuer || \"https://\" + this.baseOptions.domain + \"/\", this.baseOptions.jwksURI = this.baseOptions.overrides && this.baseOptions.overrides.__jwks_uri, this.transactionManager = new TransactionManager(this.baseOptions), this.client = new Authentication(this.baseOptions), this.redirect = new Redirect(this, this.baseOptions), this.popup = new Popup(this, this.baseOptions), this.crossOriginAuthentication = new CrossOriginAuthentication(this, this.baseOptions), this.webMessageHandler = new WebMessageHandler(this), this._universalLogin = new HostedPages(this, this.baseOptions), this.ssodataStorage = new SSODataStorage(this.baseOptions);\n}\n\nfunction PasswordlessAuthentication(request, options) {\n this.baseOptions = options, this.request = request;\n}\n\nfunction DBConnection(request, options) {\n this.baseOptions = options, this.request = request;\n}\n\nfunction Authentication(auth0, options) {\n 2 === arguments.length ? this.auth0 = auth0 : options = auth0, assert.check(options, {\n type: \"object\",\n message: \"options parameter is not valid\"\n }, {\n domain: {\n type: \"string\",\n message: \"domain option is required\"\n },\n clientID: {\n type: \"string\",\n message: \"clientID option is required\"\n },\n responseType: {\n optional: !0,\n type: \"string\",\n message: \"responseType is not valid\"\n },\n responseMode: {\n optional: !0,\n type: \"string\",\n message: \"responseMode is not valid\"\n },\n redirectUri: {\n optional: !0,\n type: \"string\",\n message: \"redirectUri is not valid\"\n },\n scope: {\n optional: !0,\n type: \"string\",\n message: \"scope is not valid\"\n },\n audience: {\n optional: !0,\n type: \"string\",\n message: \"audience is not valid\"\n },\n _disableDeprecationWarnings: {\n optional: !0,\n type: \"boolean\",\n message: \"_disableDeprecationWarnings option is not valid\"\n },\n _sendTelemetry: {\n optional: !0,\n type: \"boolean\",\n message: \"_sendTelemetry option is not valid\"\n },\n _telemetryInfo: {\n optional: !0,\n type: \"object\",\n message: \"_telemetryInfo option is not valid\"\n }\n }), this.baseOptions = options, this.baseOptions._sendTelemetry = !1 !== this.baseOptions._sendTelemetry || this.baseOptions._sendTelemetry, this.baseOptions.rootUrl = \"https://\" + this.baseOptions.domain, this.request = new RequestBuilder(this.baseOptions), this.passwordless = new PasswordlessAuthentication(this.request, this.baseOptions), this.dbConnection = new DBConnection(this.request, this.baseOptions), this.warn = new Warn({\n disableWarnings: !!options._disableDeprecationWarnings\n }), this.ssodataStorage = new SSODataStorage(this.baseOptions);\n}\n\nfunction Management(options) {\n assert.check(options, {\n type: \"object\",\n message: \"options parameter is not valid\"\n }, {\n domain: {\n type: \"string\",\n message: \"domain option is required\"\n },\n token: {\n type: \"string\",\n message: \"token option is required\"\n },\n _sendTelemetry: {\n optional: !0,\n type: \"boolean\",\n message: \"_sendTelemetry option is not valid\"\n },\n _telemetryInfo: {\n optional: !0,\n type: \"object\",\n message: \"_telemetryInfo option is not valid\"\n }\n }), this.baseOptions = options, this.baseOptions.headers = {\n Authorization: \"Bearer \" + this.baseOptions.token\n }, this.request = new RequestBuilder(this.baseOptions), this.baseOptions.rootUrl = urlJoin(\"https://\" + this.baseOptions.domain, \"api\", \"v2\");\n}\n\nPopupHandler.prototype.calculatePosition = function (options) {\n var width = options.width || 500,\n height = options.height || 600,\n _window = windowHelper.getWindow(),\n screenX = void 0 !== _window.screenX ? _window.screenX : _window.screenLeft,\n screenY = void 0 !== _window.screenY ? _window.screenY : _window.screenTop,\n outerWidth = void 0 !== _window.outerWidth ? _window.outerWidth : _window.document.body.clientWidth,\n outerHeight = void 0 !== _window.outerHeight ? _window.outerHeight : _window.document.body.clientHeight;\n\n return {\n width: width,\n height: height,\n left: options.left || screenX + (outerWidth - width) / 2,\n top: options.top || screenY + (outerHeight - height) / 2\n };\n}, PopupHandler.prototype.preload = function (options) {\n var _this = this,\n _window = windowHelper.getWindow(),\n popupPosition = this.calculatePosition(options.popupOptions || {}),\n popupOptions = objectHelper.merge(popupPosition)[\"with\"](options.popupOptions),\n url = options.url || \"about:blank\",\n windowFeatures = lib_stringify(popupOptions, {\n encode: !1,\n delimiter: \",\"\n });\n\n return this._current_popup && !this._current_popup.closed ? this._current_popup : (this._current_popup = _window.open(url, \"auth0_signup_popup\", windowFeatures), this._current_popup.kill = function () {\n this.close(), _this._current_popup = null;\n }, this._current_popup);\n}, PopupHandler.prototype.load = function (url, relayUrl, options, cb) {\n var _this = this,\n popupPosition = this.calculatePosition(options.popupOptions || {}),\n popupOptions = objectHelper.merge(popupPosition)[\"with\"](options.popupOptions),\n winchanOptions = objectHelper.merge({\n url: url,\n relay_url: relayUrl,\n window_features: lib_stringify(popupOptions, {\n delimiter: \",\",\n encode: !1\n }),\n popup: this._current_popup\n })[\"with\"](options),\n popup = winchan.open(winchanOptions, function (err, data) {\n if (!err || \"SyntaxError\" !== err.name) return _this._current_popup = null, cb(err, data);\n });\n\n return popup.focus(), popup;\n}, Popup.prototype.buildPopupHandler = function () {\n var pluginHandler = this.baseOptions.plugins.get(\"popup.getPopupHandler\");\n return pluginHandler ? pluginHandler.getPopupHandler() : new PopupHandler();\n}, Popup.prototype.preload = function (options) {\n options = options || {};\n var popup = this.buildPopupHandler();\n return popup.preload(options), popup;\n}, Popup.prototype.getPopupHandler = function (options, preload) {\n return options.popupHandler ? options.popupHandler : preload ? this.preload(options) : this.buildPopupHandler();\n}, Popup.prototype.callback = function (options) {\n var _this = this,\n theWindow = windowHelper.getWindow(),\n originUrl = (options = options || {}).popupOrigin || this.baseOptions.popupOrigin || windowHelper.getOrigin();\n\n theWindow.opener ? winchan.onOpen(function (popupOrigin, r, cb) {\n if (popupOrigin !== originUrl) return cb({\n error: \"origin_mismatch\",\n error_description: \"The popup's origin (\" + popupOrigin + \") should match the `popupOrigin` parameter (\" + originUrl + \").\"\n });\n\n _this.webAuth.parseHash(options || {}, function (err, data) {\n return cb(err || data);\n });\n }) : theWindow.doPost = function (msg) {\n theWindow.parent && theWindow.parent.postMessage(msg, originUrl);\n };\n}, Popup.prototype.authorize = function (options, cb) {\n var url,\n relayUrl,\n popOpts = {},\n pluginHandler = this.baseOptions.plugins.get(\"popup.authorize\"),\n params = objectHelper.merge(this.baseOptions, [\"clientID\", \"scope\", \"domain\", \"audience\", \"tenant\", \"responseType\", \"redirectUri\", \"_csrf\", \"state\", \"_intstate\", \"nonce\"])[\"with\"](objectHelper.blacklist(options, [\"popupHandler\"]));\n return assert.check(params, {\n type: \"object\",\n message: \"options parameter is not valid\"\n }, {\n responseType: {\n type: \"string\",\n message: \"responseType option is required\"\n }\n }), relayUrl = urlJoin(this.baseOptions.rootUrl, \"relay.html\"), options.owp ? params.owp = !0 : (popOpts.origin = urlHelper.extractOrigin(params.redirectUri), relayUrl = params.redirectUri), options.popupOptions && (popOpts.popupOptions = objectHelper.pick(options.popupOptions, [\"width\", \"height\", \"top\", \"left\"])), pluginHandler && (params = pluginHandler.processParams(params)), (params = this.transactionManager.process(params)).scope = params.scope || \"openid profile email\", delete params.domain, url = this.client.buildAuthorizeUrl(params), this.getPopupHandler(options).load(url, relayUrl, popOpts, wrapCallback(cb, {\n keepOriginalCasing: !0\n }));\n}, Popup.prototype.loginWithCredentials = function (options, cb) {\n options.realm = options.realm || options.connection, options.popup = !0, options = objectHelper.merge(this.baseOptions, [\"redirectUri\", \"responseType\", \"state\", \"nonce\"])[\"with\"](objectHelper.blacklist(options, [\"popupHandler\", \"connection\"])), options = this.transactionManager.process(options), this.crossOriginAuthentication.login(options, cb);\n}, Popup.prototype.passwordlessVerify = function (options, cb) {\n var _this = this;\n\n return this.client.passwordless.verify(objectHelper.blacklist(options, [\"popupHandler\"]), function (err) {\n if (err) return cb(err);\n options.username = options.phoneNumber || options.email, options.password = options.verificationCode, delete options.email, delete options.phoneNumber, delete options.verificationCode, delete options.type, _this.client.loginWithResourceOwner(options, cb);\n });\n}, Popup.prototype.signupAndLogin = function (options, cb) {\n var _this = this;\n\n return this.client.dbConnection.signup(options, function (err) {\n if (err) return cb(err);\n\n _this.loginWithCredentials(options, cb);\n });\n}, SilentAuthenticationHandler.create = function (options) {\n return new SilentAuthenticationHandler(options);\n}, SilentAuthenticationHandler.prototype.login = function (usePostMessage, callback) {\n this.handler = new IframeHandler({\n auth0: this.auth0,\n url: this.authenticationUrl,\n eventListenerType: usePostMessage ? \"message\" : \"load\",\n callback: this.getCallbackHandler(callback, usePostMessage),\n timeout: this.timeout,\n eventValidator: this.getEventValidator(),\n timeoutCallback: function timeoutCallback() {\n callback(null, \"#error=timeout&error_description=Timeout+during+authentication+renew.\");\n },\n usePostMessage: usePostMessage || !1\n }), this.handler.init();\n}, SilentAuthenticationHandler.prototype.getEventValidator = function () {\n var _this = this;\n\n return {\n isValid: function isValid(eventData) {\n switch (eventData.event.type) {\n case \"message\":\n return eventData.event.origin === _this.postMessageOrigin && eventData.event.source === _this.handler.iframe.contentWindow && (!1 === _this.postMessageDataType || eventData.event.data.type && eventData.event.data.type === _this.postMessageDataType);\n\n case \"load\":\n if (\"about:\" === eventData.sourceObject.contentWindow.location.protocol) return !1;\n\n default:\n return !0;\n }\n }\n };\n}, SilentAuthenticationHandler.prototype.getCallbackHandler = function (callback, usePostMessage) {\n return function (eventData) {\n var callbackValue;\n callbackValue = usePostMessage ? \"object\" == typeof eventData.event.data && eventData.event.data.hash ? eventData.event.data.hash : eventData.event.data : eventData.sourceObject.contentWindow.location.hash, callback(null, callbackValue);\n };\n}, UsernamePassword.prototype.login = function (options, cb) {\n var url, body;\n return url = urlJoin(this.baseOptions.rootUrl, \"usernamepassword\", \"login\"), options.username = options.username || options.email, options = objectHelper.blacklist(options, [\"email\"]), body = objectHelper.merge(this.baseOptions, [\"clientID\", \"redirectUri\", \"tenant\", \"responseType\", \"responseMode\", \"scope\", \"audience\"])[\"with\"](options), body = this.transactionManager.process(body), body = objectHelper.toSnakeCase(body, [\"auth0Client\"]), this.request.post(url).send(body).end(wrapCallback(cb));\n}, UsernamePassword.prototype.callback = function (formHtml) {\n var div,\n _document = windowHelper.getDocument();\n\n (div = _document.createElement(\"div\")).innerHTML = formHtml, _document.body.appendChild(div).children[0].submit();\n}, HostedPages.prototype.login = function (options, cb) {\n if (windowHelper.getWindow().location.host !== this.baseOptions.domain) throw new Error(\"This method is meant to be used only inside the Universal Login Page.\");\n var usernamePassword,\n params = objectHelper.merge(this.baseOptions, [\"clientID\", \"redirectUri\", \"tenant\", \"responseType\", \"responseMode\", \"scope\", \"audience\", \"_csrf\", \"state\", \"_intstate\", \"nonce\"])[\"with\"](options);\n return assert.check(params, {\n type: \"object\",\n message: \"options parameter is not valid\"\n }, {\n responseType: {\n type: \"string\",\n message: \"responseType option is required\"\n }\n }), (usernamePassword = new UsernamePassword(this.baseOptions)).login(params, function (err, data) {\n return err ? cb(err) : usernamePassword.callback(data);\n });\n}, HostedPages.prototype.signupAndLogin = function (options, cb) {\n var _this = this;\n\n return _this.client.client.dbConnection.signup(options, function (err) {\n return err ? cb(err) : _this.login(options, cb);\n });\n}, HostedPages.prototype.getSSOData = function (withActiveDirectories, cb) {\n var url,\n params = \"\";\n return \"function\" == typeof withActiveDirectories && (cb = withActiveDirectories, withActiveDirectories = !1), assert.check(withActiveDirectories, {\n type: \"boolean\",\n message: \"withActiveDirectories parameter is not valid\"\n }), assert.check(cb, {\n type: \"function\",\n message: \"cb parameter is not valid\"\n }), withActiveDirectories && (params = \"?\" + lib_stringify({\n ldaps: 1,\n client_id: this.baseOptions.clientID\n })), url = urlJoin(this.baseOptions.rootUrl, \"user\", \"ssodata\", params), this.request.get(url, {\n noHeaders: !0\n }).withCredentials().end(wrapCallback(cb));\n}, WebAuth.prototype.parseHash = function (options, cb) {\n var parsedQs, err;\n cb || \"function\" != typeof options ? options = options || {} : (cb = options, options = {});\n\n var _window = windowHelper.getWindow(),\n hashStr = void 0 === options.hash ? _window.location.hash : options.hash;\n\n if (hashStr = hashStr.replace(/^#?\\/?/, \"\"), (parsedQs = lib_parse(hashStr)).hasOwnProperty(\"error\")) return err = error.buildResponse(parsedQs.error, parsedQs.error_description), parsedQs.state && (err.state = parsedQs.state), cb(err);\n if (!parsedQs.hasOwnProperty(\"access_token\") && !parsedQs.hasOwnProperty(\"id_token\") && !parsedQs.hasOwnProperty(\"refresh_token\")) return cb(null, null);\n var responseTypes = (this.baseOptions.responseType || options.responseType || \"\").split(\" \");\n return responseTypes.length > 0 && -1 !== responseTypes.indexOf(\"token\") && !parsedQs.hasOwnProperty(\"access_token\") ? cb(error.buildResponse(\"invalid_hash\", \"response_type contains `token`, but the parsed hash does not contain an `access_token` property\")) : responseTypes.length > 0 && -1 !== responseTypes.indexOf(\"id_token\") && !parsedQs.hasOwnProperty(\"id_token\") ? cb(error.buildResponse(\"invalid_hash\", \"response_type contains `id_token`, but the parsed hash does not contain an `id_token` property\")) : this.validateAuthenticationResponse(options, parsedQs, cb);\n}, WebAuth.prototype.validateAuthenticationResponse = function (options, parsedHash, cb) {\n var _this = this;\n\n options.__enableIdPInitiatedLogin = options.__enableIdPInitiatedLogin || options.__enableImpersonation;\n var state = parsedHash.state,\n transaction = this.transactionManager.getStoredTransaction(state),\n transactionState = options.state || transaction && transaction.state || null,\n transactionStateMatchesState = transactionState === state;\n if (!(!state && !transactionState && options.__enableIdPInitiatedLogin) && !transactionStateMatchesState) return cb({\n error: \"invalid_token\",\n errorDescription: \"`state` does not match.\"\n });\n\n var transactionNonce = options.nonce || transaction && transaction.nonce || null,\n appState = options.state || transaction && transaction.appState || null,\n callback = function callback(err, payload) {\n if (err) return cb(err);\n var sub;\n transaction && transaction.lastUsedConnection && (payload && (sub = payload.sub), _this.ssodataStorage.set(transaction.lastUsedConnection, sub));\n return cb(null, function (qsParams, appState, token) {\n return {\n accessToken: qsParams.access_token || null,\n idToken: qsParams.id_token || null,\n idTokenPayload: token || null,\n appState: appState || null,\n refreshToken: qsParams.refresh_token || null,\n state: qsParams.state || null,\n expiresIn: qsParams.expires_in ? parseInt(qsParams.expires_in, 10) : null,\n tokenType: qsParams.token_type || null,\n scope: qsParams.scope || null\n };\n }(parsedHash, appState, payload));\n };\n\n return parsedHash.id_token ? this.validateToken(parsedHash.id_token, transactionNonce, function (validationError, payload) {\n if (!validationError) return parsedHash.access_token && payload.at_hash ? new C().validateAccessToken(parsedHash.access_token, \"RS256\", payload.at_hash, function (err) {\n return err ? callback(error.invalidToken(err.message)) : callback(null, payload);\n }) : callback(null, payload);\n if (\"invalid_token\" !== validationError.error || validationError.errorDescription && validationError.errorDescription.indexOf(\"Nonce (nonce) claim value mismatch in the ID token\") > -1) return callback(validationError);\n var decodedToken = new C().decode(parsedHash.id_token);\n if (\"HS256\" !== decodedToken.header.alg) return callback(validationError);\n if ((decodedToken.payload.nonce || null) !== transactionNonce) return callback({\n error: \"invalid_token\",\n errorDescription: 'Nonce (nonce) claim value mismatch in the ID token; expected \"' + transactionNonce + '\", found \"' + decodedToken.payload.nonce + '\"'\n });\n\n if (!parsedHash.access_token) {\n return callback({\n error: \"invalid_token\",\n description: \"The id_token cannot be validated because it was signed with the HS256 algorithm and public clients (like a browser) can’t store secrets. Please read the associated doc for possible ways to fix this. Read more: https://auth0.com/docs/errors/libraries/auth0-js/invalid-token#parsing-an-hs256-signed-id-token-without-an-access-token\"\n });\n }\n\n return _this.client.userInfo(parsedHash.access_token, function (errUserInfo, profile) {\n return errUserInfo ? callback(errUserInfo) : callback(null, profile);\n });\n }) : callback(null, null);\n}, WebAuth.prototype.validateToken = function (token, nonce, cb) {\n new C({\n issuer: this.baseOptions.token_issuer,\n jwksURI: this.baseOptions.jwksURI,\n audience: this.baseOptions.clientID,\n leeway: this.baseOptions.leeway || 60,\n maxAge: this.baseOptions.maxAge,\n __clock: this.baseOptions.__clock || defaultClock\n }).verify(token, nonce, function (err, payload) {\n if (err) return cb(error.invalidToken(err.message));\n cb(null, payload);\n });\n}, WebAuth.prototype.renewAuth = function (options, cb) {\n var usePostMessage = !!options.usePostMessage,\n postMessageDataType = options.postMessageDataType || !1,\n postMessageOrigin = options.postMessageOrigin || windowHelper.getWindow().origin,\n timeout = options.timeout,\n _this = this,\n params = objectHelper.merge(this.baseOptions, [\"clientID\", \"redirectUri\", \"responseType\", \"scope\", \"audience\", \"_csrf\", \"state\", \"_intstate\", \"nonce\"])[\"with\"](options);\n\n params.responseType = params.responseType || \"token\", params.responseMode = params.responseMode || \"fragment\", params = this.transactionManager.process(params), assert.check(params, {\n type: \"object\",\n message: \"options parameter is not valid\"\n }), assert.check(cb, {\n type: \"function\",\n message: \"cb parameter is not valid\"\n }), params.prompt = \"none\", params = objectHelper.blacklist(params, [\"usePostMessage\", \"tenant\", \"postMessageDataType\", \"postMessageOrigin\"]), SilentAuthenticationHandler.create({\n authenticationUrl: this.client.buildAuthorizeUrl(params),\n postMessageDataType: postMessageDataType,\n postMessageOrigin: postMessageOrigin,\n timeout: timeout\n }).login(usePostMessage, function (err, hash) {\n if (\"object\" == typeof hash) return cb(err, hash);\n\n _this.parseHash({\n hash: hash\n }, cb);\n });\n}, WebAuth.prototype.checkSession = function (options, cb) {\n var params = objectHelper.merge(this.baseOptions, [\"clientID\", \"responseType\", \"redirectUri\", \"scope\", \"audience\", \"_csrf\", \"state\", \"_intstate\", \"nonce\"])[\"with\"](options);\n return \"code\" === params.responseType ? cb({\n error: \"error\",\n error_description: \"responseType can't be `code`\"\n }) : (options.nonce || (params = this.transactionManager.process(params)), params.redirectUri ? (assert.check(params, {\n type: \"object\",\n message: \"options parameter is not valid\"\n }), assert.check(cb, {\n type: \"function\",\n message: \"cb parameter is not valid\"\n }), params = objectHelper.blacklist(params, [\"usePostMessage\", \"tenant\", \"postMessageDataType\"]), void this.webMessageHandler.run(params, wrapCallback(cb, {\n forceLegacyError: !0,\n ignoreCasing: !0\n }))) : cb({\n error: \"error\",\n error_description: \"redirectUri can't be empty\"\n }));\n}, WebAuth.prototype.changePassword = function (options, cb) {\n return this.client.dbConnection.changePassword(options, cb);\n}, WebAuth.prototype.passwordlessStart = function (options, cb) {\n var authParams = objectHelper.merge(this.baseOptions, [\"responseType\", \"responseMode\", \"redirectUri\", \"scope\", \"audience\", \"_csrf\", \"state\", \"_intstate\", \"nonce\"])[\"with\"](options.authParams);\n return options.authParams = this.transactionManager.process(authParams), this.client.passwordless.start(options, cb);\n}, WebAuth.prototype.signup = function (options, cb) {\n return this.client.dbConnection.signup(options, cb);\n}, WebAuth.prototype.authorize = function (options) {\n var params = objectHelper.merge(this.baseOptions, [\"clientID\", \"responseType\", \"responseMode\", \"redirectUri\", \"scope\", \"audience\", \"_csrf\", \"state\", \"_intstate\", \"nonce\"])[\"with\"](options);\n assert.check(params, {\n type: \"object\",\n message: \"options parameter is not valid\"\n }, {\n responseType: {\n type: \"string\",\n message: \"responseType option is required\"\n }\n }), (params = this.transactionManager.process(params)).scope = params.scope || \"openid profile email\", windowHelper.redirect(this.client.buildAuthorizeUrl(params));\n}, WebAuth.prototype.signupAndAuthorize = function (options, cb) {\n var _this = this;\n\n return this.client.dbConnection.signup(objectHelper.blacklist(options, [\"popupHandler\"]), function (err) {\n if (err) return cb(err);\n options.realm = options.connection, options.username || (options.username = options.email), _this.client.login(options, cb);\n });\n}, WebAuth.prototype.login = function (options, cb) {\n var params = objectHelper.merge(this.baseOptions, [\"clientID\", \"responseType\", \"redirectUri\", \"scope\", \"audience\", \"_csrf\", \"state\", \"_intstate\", \"nonce\"])[\"with\"](options);\n params = this.transactionManager.process(params), windowHelper.getWindow().location.host === this.baseOptions.domain ? (params.connection = params.realm, delete params.realm, this._universalLogin.login(params, cb)) : this.crossOriginAuthentication.login(params, cb);\n}, WebAuth.prototype.passwordlessLogin = function (options, cb) {\n var params = objectHelper.merge(this.baseOptions, [\"clientID\", \"responseType\", \"redirectUri\", \"scope\", \"audience\", \"_csrf\", \"state\", \"_intstate\", \"nonce\"])[\"with\"](options);\n if (params = this.transactionManager.process(params), windowHelper.getWindow().location.host === this.baseOptions.domain) this.passwordlessVerify(params, cb);else {\n var crossOriginOptions = objectHelper.extend({\n credentialType: \"http://auth0.com/oauth/grant-type/passwordless/otp\",\n realm: params.connection,\n username: params.email || params.phoneNumber,\n otp: params.verificationCode\n }, objectHelper.blacklist(params, [\"connection\", \"email\", \"phoneNumber\", \"verificationCode\"]));\n this.crossOriginAuthentication.login(crossOriginOptions, cb);\n }\n}, WebAuth.prototype.crossOriginAuthenticationCallback = function () {\n this.crossOriginVerification();\n}, WebAuth.prototype.crossOriginVerification = function () {\n this.crossOriginAuthentication.callback();\n}, WebAuth.prototype.logout = function (options) {\n windowHelper.redirect(this.client.buildLogoutUrl(options));\n}, WebAuth.prototype.passwordlessVerify = function (options, cb) {\n var _this = this,\n params = objectHelper.merge(this.baseOptions, [\"clientID\", \"responseType\", \"responseMode\", \"redirectUri\", \"scope\", \"audience\", \"_csrf\", \"state\", \"_intstate\", \"nonce\"])[\"with\"](options);\n\n return assert.check(params, {\n type: \"object\",\n message: \"options parameter is not valid\"\n }, {\n responseType: {\n type: \"string\",\n message: \"responseType option is required\"\n }\n }), params = this.transactionManager.process(params), this.client.passwordless.verify(params, function (err) {\n return err ? cb(err) : windowHelper.redirect(_this.client.passwordless.buildVerifyUrl(params));\n });\n}, PasswordlessAuthentication.prototype.buildVerifyUrl = function (options) {\n var params, qString;\n return assert.check(options, {\n type: \"object\",\n message: \"options parameter is not valid\"\n }, {\n connection: {\n type: \"string\",\n message: \"connection option is required\"\n },\n verificationCode: {\n type: \"string\",\n message: \"verificationCode option is required\"\n },\n phoneNumber: {\n optional: !1,\n type: \"string\",\n message: \"phoneNumber option is required\",\n condition: function condition(o) {\n return !o.email;\n }\n },\n email: {\n optional: !1,\n type: \"string\",\n message: \"email option is required\",\n condition: function condition(o) {\n return !o.phoneNumber;\n }\n }\n }), params = objectHelper.merge(this.baseOptions, [\"clientID\", \"responseType\", \"responseMode\", \"redirectUri\", \"scope\", \"audience\", \"_csrf\", \"state\", \"_intstate\", \"protocol\", \"nonce\"])[\"with\"](options), this.baseOptions._sendTelemetry && (params.auth0Client = this.request.getTelemetryData()), params = objectHelper.toSnakeCase(params, [\"auth0Client\"]), qString = lib_stringify(params), urlJoin(this.baseOptions.rootUrl, \"passwordless\", \"verify_redirect\", \"?\" + qString);\n}, PasswordlessAuthentication.prototype.start = function (options, cb) {\n var url, body;\n return assert.check(options, {\n type: \"object\",\n message: \"options parameter is not valid\"\n }, {\n connection: {\n type: \"string\",\n message: \"connection option is required\"\n },\n send: {\n type: \"string\",\n message: \"send option is required\",\n values: [\"link\", \"code\"],\n value_message: \"send is not valid ([link, code])\"\n },\n phoneNumber: {\n optional: !0,\n type: \"string\",\n message: \"phoneNumber option is required\",\n condition: function condition(o) {\n return \"code\" === o.send || !o.email;\n }\n },\n email: {\n optional: !0,\n type: \"string\",\n message: \"email option is required\",\n condition: function condition(o) {\n return \"link\" === o.send || !o.phoneNumber;\n }\n },\n authParams: {\n optional: !0,\n type: \"object\",\n message: \"authParams option is required\"\n }\n }), assert.check(cb, {\n type: \"function\",\n message: \"cb parameter is not valid\"\n }), url = urlJoin(this.baseOptions.rootUrl, \"passwordless\", \"start\"), (body = objectHelper.merge(this.baseOptions, [\"clientID\", \"responseType\", \"redirectUri\", \"scope\"])[\"with\"](options)).scope && (body.authParams = body.authParams || {}, body.authParams.scope = body.authParams.scope || body.scope), body.redirectUri && (body.authParams = body.authParams || {}, body.authParams.redirect_uri = body.authParams.redirectUri || body.redirectUri), body.responseType && (body.authParams = body.authParams || {}, body.authParams.response_type = body.authParams.responseType || body.responseType), delete body.redirectUri, delete body.responseType, delete body.scope, body = objectHelper.toSnakeCase(body, [\"auth0Client\", \"authParams\"]), this.request.post(url).send(body).end(wrapCallback(cb));\n}, PasswordlessAuthentication.prototype.verify = function (options, cb) {\n var url, cleanOption;\n return assert.check(options, {\n type: \"object\",\n message: \"options parameter is not valid\"\n }, {\n connection: {\n type: \"string\",\n message: \"connection option is required\"\n },\n verificationCode: {\n type: \"string\",\n message: \"verificationCode option is required\"\n },\n phoneNumber: {\n optional: !1,\n type: \"string\",\n message: \"phoneNumber option is required\",\n condition: function condition(o) {\n return !o.email;\n }\n },\n email: {\n optional: !1,\n type: \"string\",\n message: \"email option is required\",\n condition: function condition(o) {\n return !o.phoneNumber;\n }\n }\n }), assert.check(cb, {\n type: \"function\",\n message: \"cb parameter is not valid\"\n }), cleanOption = objectHelper.pick(options, [\"connection\", \"verificationCode\", \"phoneNumber\", \"email\", \"auth0Client\"]), cleanOption = objectHelper.toSnakeCase(cleanOption, [\"auth0Client\"]), url = urlJoin(this.baseOptions.rootUrl, \"passwordless\", \"verify\"), this.request.post(url).send(cleanOption).end(wrapCallback(cb));\n}, DBConnection.prototype.signup = function (options, cb) {\n var url, body, metadata;\n return assert.check(options, {\n type: \"object\",\n message: \"options parameter is not valid\"\n }, {\n connection: {\n type: \"string\",\n message: \"connection option is required\"\n },\n email: {\n type: \"string\",\n message: \"email option is required\"\n },\n password: {\n type: \"string\",\n message: \"password option is required\"\n }\n }), assert.check(cb, {\n type: \"function\",\n message: \"cb parameter is not valid\"\n }), url = urlJoin(this.baseOptions.rootUrl, \"dbconnections\", \"signup\"), metadata = (body = objectHelper.merge(this.baseOptions, [\"clientID\"])[\"with\"](options)).user_metadata || body.userMetadata, body = objectHelper.blacklist(body, [\"scope\", \"userMetadata\", \"user_metadata\"]), body = objectHelper.toSnakeCase(body, [\"auth0Client\"]), metadata && (body.user_metadata = metadata), this.request.post(url).send(body).end(wrapCallback(cb));\n}, DBConnection.prototype.changePassword = function (options, cb) {\n var url, body;\n return assert.check(options, {\n type: \"object\",\n message: \"options parameter is not valid\"\n }, {\n connection: {\n type: \"string\",\n message: \"connection option is required\"\n },\n email: {\n type: \"string\",\n message: \"email option is required\"\n }\n }), assert.check(cb, {\n type: \"function\",\n message: \"cb parameter is not valid\"\n }), url = urlJoin(this.baseOptions.rootUrl, \"dbconnections\", \"change_password\"), body = objectHelper.merge(this.baseOptions, [\"clientID\"])[\"with\"](options, [\"email\", \"connection\"]), body = objectHelper.toSnakeCase(body, [\"auth0Client\"]), this.request.post(url).send(body).end(wrapCallback(cb));\n}, Authentication.prototype.buildAuthorizeUrl = function (options) {\n var params, qString;\n return assert.check(options, {\n type: \"object\",\n message: \"options parameter is not valid\"\n }), params = objectHelper.merge(this.baseOptions, [\"clientID\", \"responseType\", \"responseMode\", \"redirectUri\", \"scope\", \"audience\"])[\"with\"](options), assert.check(params, {\n type: \"object\",\n message: \"options parameter is not valid\"\n }, {\n clientID: {\n type: \"string\",\n message: \"clientID option is required\"\n },\n redirectUri: {\n optional: !0,\n type: \"string\",\n message: \"redirectUri option is required\"\n },\n responseType: {\n type: \"string\",\n message: \"responseType option is required\"\n },\n nonce: {\n type: \"string\",\n message: \"nonce option is required\",\n condition: function condition(o) {\n return -1 === o.responseType.indexOf(\"code\") && -1 !== o.responseType.indexOf(\"id_token\");\n }\n },\n scope: {\n optional: !0,\n type: \"string\",\n message: \"scope option is required\"\n },\n audience: {\n optional: !0,\n type: \"string\",\n message: \"audience option is required\"\n }\n }), this.baseOptions._sendTelemetry && (params.auth0Client = this.request.getTelemetryData()), params.connection_scope && assert.isArray(params.connection_scope) && (params.connection_scope = params.connection_scope.join(\",\")), params = objectHelper.blacklist(params, [\"username\", \"popupOptions\", \"domain\", \"tenant\", \"timeout\", \"appState\"]), params = objectHelper.toSnakeCase(params, [\"auth0Client\"]), params = parametersWhitelist.oauthAuthorizeParams(this.warn, params), qString = lib_stringify(params), urlJoin(this.baseOptions.rootUrl, \"authorize\", \"?\" + qString);\n}, Authentication.prototype.buildLogoutUrl = function (options) {\n var params, qString;\n return assert.check(options, {\n optional: !0,\n type: \"object\",\n message: \"options parameter is not valid\"\n }), params = objectHelper.merge(this.baseOptions, [\"clientID\"])[\"with\"](options || {}), this.baseOptions._sendTelemetry && (params.auth0Client = this.request.getTelemetryData()), params = objectHelper.toSnakeCase(params, [\"auth0Client\", \"returnTo\"]), qString = lib_stringify(objectHelper.blacklist(params, [\"federated\"])), options && void 0 !== options.federated && !1 !== options.federated && \"false\" !== options.federated && (qString += \"&federated\"), urlJoin(this.baseOptions.rootUrl, \"v2\", \"logout\", \"?\" + qString);\n}, Authentication.prototype.loginWithDefaultDirectory = function (options, cb) {\n return assert.check(options, {\n type: \"object\",\n message: \"options parameter is not valid\"\n }, {\n username: {\n type: \"string\",\n message: \"username option is required\"\n },\n password: {\n type: \"string\",\n message: \"password option is required\"\n },\n scope: {\n optional: !0,\n type: \"string\",\n message: \"scope option is required\"\n },\n audience: {\n optional: !0,\n type: \"string\",\n message: \"audience option is required\"\n }\n }), options.grantType = \"password\", this.oauthToken(options, cb);\n}, Authentication.prototype.login = function (options, cb) {\n return assert.check(options, {\n type: \"object\",\n message: \"options parameter is not valid\"\n }, {\n username: {\n type: \"string\",\n message: \"username option is required\"\n },\n password: {\n type: \"string\",\n message: \"password option is required\"\n },\n realm: {\n type: \"string\",\n message: \"realm option is required\"\n },\n scope: {\n optional: !0,\n type: \"string\",\n message: \"scope option is required\"\n },\n audience: {\n optional: !0,\n type: \"string\",\n message: \"audience option is required\"\n }\n }), options.grantType = \"http://auth0.com/oauth/grant-type/password-realm\", this.oauthToken(options, cb);\n}, Authentication.prototype.oauthToken = function (options, cb) {\n var url, body;\n return assert.check(options, {\n type: \"object\",\n message: \"options parameter is not valid\"\n }), assert.check(cb, {\n type: \"function\",\n message: \"cb parameter is not valid\"\n }), url = urlJoin(this.baseOptions.rootUrl, \"oauth\", \"token\"), body = objectHelper.merge(this.baseOptions, [\"clientID\", \"scope\", \"audience\"])[\"with\"](options), assert.check(body, {\n type: \"object\",\n message: \"options parameter is not valid\"\n }, {\n clientID: {\n type: \"string\",\n message: \"clientID option is required\"\n },\n grantType: {\n type: \"string\",\n message: \"grantType option is required\"\n },\n scope: {\n optional: !0,\n type: \"string\",\n message: \"scope option is required\"\n },\n audience: {\n optional: !0,\n type: \"string\",\n message: \"audience option is required\"\n }\n }), body = objectHelper.toSnakeCase(body, [\"auth0Client\"]), body = parametersWhitelist.oauthTokenParams(this.warn, body), this.request.post(url).send(body).end(wrapCallback(cb));\n}, Authentication.prototype.loginWithResourceOwner = function (options, cb) {\n var url, body;\n return assert.check(options, {\n type: \"object\",\n message: \"options parameter is not valid\"\n }, {\n username: {\n type: \"string\",\n message: \"username option is required\"\n },\n password: {\n type: \"string\",\n message: \"password option is required\"\n },\n connection: {\n type: \"string\",\n message: \"connection option is required\"\n },\n scope: {\n optional: !0,\n type: \"string\",\n message: \"scope option is required\"\n }\n }), assert.check(cb, {\n type: \"function\",\n message: \"cb parameter is not valid\"\n }), url = urlJoin(this.baseOptions.rootUrl, \"oauth\", \"ro\"), body = objectHelper.merge(this.baseOptions, [\"clientID\", \"scope\"])[\"with\"](options, [\"username\", \"password\", \"scope\", \"connection\", \"device\"]), (body = objectHelper.toSnakeCase(body, [\"auth0Client\"])).grant_type = body.grant_type || \"password\", this.request.post(url).send(body).end(wrapCallback(cb));\n}, Authentication.prototype.getSSOData = function (withActiveDirectories, cb) {\n if (this.auth0 || (this.auth0 = new WebAuth(this.baseOptions)), windowHelper.getWindow().location.host === this.baseOptions.domain) return this.auth0._universalLogin.getSSOData(withActiveDirectories, cb);\n \"function\" == typeof withActiveDirectories && (cb = withActiveDirectories), assert.check(cb, {\n type: \"function\",\n message: \"cb parameter is not valid\"\n });\n var clientId = this.baseOptions.clientID,\n ssodataInformation = this.ssodataStorage.get() || {};\n this.auth0.checkSession({\n responseType: \"token id_token\",\n scope: \"openid profile email\",\n connection: ssodataInformation.lastUsedConnection,\n timeout: 5e3\n }, function (err, result) {\n return err ? \"login_required\" === err.error ? cb(null, {\n sso: !1\n }) : (\"consent_required\" === err.error && (err.error_description = \"Consent required. When using `getSSOData`, the user has to be authenticated with the following scope: `openid profile email`.\"), cb(err, {\n sso: !1\n })) : ssodataInformation.lastUsedSub && ssodataInformation.lastUsedSub !== result.idTokenPayload.sub ? cb(err, {\n sso: !1\n }) : cb(null, {\n lastUsedConnection: {\n name: ssodataInformation.lastUsedConnection\n },\n lastUsedUserID: result.idTokenPayload.sub,\n lastUsedUsername: result.idTokenPayload.email || result.idTokenPayload.name,\n lastUsedClientID: clientId,\n sessionClients: [clientId],\n sso: !0\n });\n });\n}, Authentication.prototype.userInfo = function (accessToken, cb) {\n var url;\n return assert.check(accessToken, {\n type: \"string\",\n message: \"accessToken parameter is not valid\"\n }), assert.check(cb, {\n type: \"function\",\n message: \"cb parameter is not valid\"\n }), url = urlJoin(this.baseOptions.rootUrl, \"userinfo\"), this.request.get(url).set(\"Authorization\", \"Bearer \" + accessToken).end(wrapCallback(cb, {\n ignoreCasing: !0\n }));\n}, Authentication.prototype.getChallenge = function (cb) {\n if (assert.check(cb, {\n type: \"function\",\n message: \"cb parameter is not valid\"\n }), !this.baseOptions.state) return cb();\n var url = urlJoin(this.baseOptions.rootUrl, \"usernamepassword\", \"challenge\");\n return this.request.post(url).send({\n state: this.baseOptions.state\n }).end(wrapCallback(cb, {\n ignoreCasing: !0\n }));\n}, Authentication.prototype.delegation = function (options, cb) {\n var url, body;\n return assert.check(options, {\n type: \"object\",\n message: \"options parameter is not valid\"\n }, {\n grant_type: {\n type: \"string\",\n message: \"grant_type option is required\"\n }\n }), assert.check(cb, {\n type: \"function\",\n message: \"cb parameter is not valid\"\n }), url = urlJoin(this.baseOptions.rootUrl, \"delegation\"), body = objectHelper.merge(this.baseOptions, [\"clientID\"])[\"with\"](options), body = objectHelper.toSnakeCase(body, [\"auth0Client\"]), this.request.post(url).send(body).end(wrapCallback(cb));\n}, Authentication.prototype.getUserCountry = function (cb) {\n var url;\n return assert.check(cb, {\n type: \"function\",\n message: \"cb parameter is not valid\"\n }), url = urlJoin(this.baseOptions.rootUrl, \"user\", \"geoloc\", \"country\"), this.request.get(url).end(wrapCallback(cb));\n}, Management.prototype.getUser = function (userId, cb) {\n var url;\n return assert.check(userId, {\n type: \"string\",\n message: \"userId parameter is not valid\"\n }), assert.check(cb, {\n type: \"function\",\n message: \"cb parameter is not valid\"\n }), url = urlJoin(this.baseOptions.rootUrl, \"users\", userId), this.request.get(url).end(wrapCallback(cb, {\n ignoreCasing: !0\n }));\n}, Management.prototype.patchUserMetadata = function (userId, userMetadata, cb) {\n var url;\n return assert.check(userId, {\n type: \"string\",\n message: \"userId parameter is not valid\"\n }), assert.check(userMetadata, {\n type: \"object\",\n message: \"userMetadata parameter is not valid\"\n }), assert.check(cb, {\n type: \"function\",\n message: \"cb parameter is not valid\"\n }), url = urlJoin(this.baseOptions.rootUrl, \"users\", userId), this.request.patch(url).send({\n user_metadata: userMetadata\n }).end(wrapCallback(cb, {\n ignoreCasing: !0\n }));\n}, Management.prototype.patchUserAttributes = function (userId, user, cb) {\n var url;\n return assert.check(userId, {\n type: \"string\",\n message: \"userId parameter is not valid\"\n }), assert.check(user, {\n type: \"object\",\n message: \"user parameter is not valid\"\n }), assert.check(cb, {\n type: \"function\",\n message: \"cb parameter is not valid\"\n }), url = urlJoin(this.baseOptions.rootUrl, \"users\", userId), this.request.patch(url).send(user).end(wrapCallback(cb, {\n ignoreCasing: !0\n }));\n}, Management.prototype.linkUser = function (userId, secondaryUserToken, cb) {\n var url;\n return assert.check(userId, {\n type: \"string\",\n message: \"userId parameter is not valid\"\n }), assert.check(secondaryUserToken, {\n type: \"string\",\n message: \"secondaryUserToken parameter is not valid\"\n }), assert.check(cb, {\n type: \"function\",\n message: \"cb parameter is not valid\"\n }), url = urlJoin(this.baseOptions.rootUrl, \"users\", userId, \"identities\"), this.request.post(url).send({\n link_with: secondaryUserToken\n }).end(wrapCallback(cb, {\n ignoreCasing: !0\n }));\n};\nvar index = {\n Authentication: Authentication,\n Management: Management,\n WebAuth: WebAuth,\n version: version\n};\nexport default index;\nexport { Authentication, Management, WebAuth, version };"],"sourceRoot":""}