{"version":3,"sources":["webpack:///./node_modules/diffie-hellman/browser.js","webpack:///./node_modules/des.js/lib/des/cipher.js","webpack:///./node_modules/des.js/lib/des/cbc.js","webpack:///./node_modules/des.js/lib/des.js","webpack:///./node_modules/create-hmac/browser.js","webpack:///./node_modules/crypto-browserify/index.js","webpack:///./node_modules/des.js/lib/des/ede.js","webpack:///./node_modules/deepmerge/dist/cjs.js","webpack:///./node_modules/des.js/lib/des/des.js","webpack:///./node_modules/diffie-hellman/lib/dh.js","webpack:///./node_modules/diffie-hellman/lib/generatePrime.js","webpack:///./node_modules/create-hash/md5.js","webpack:///./node_modules/cross-fetch/dist/browser-ponyfill.js","webpack:///./node_modules/des.js/lib/des/utils.js","webpack:///./node_modules/crc-32/crc32.js","webpack:///./node_modules/detect-browser/es/index.js","webpack:///./node_modules/dom-align/dist-web/index.js","webpack:///./node_modules/create-hash/browser.js","webpack:///./node_modules/create-hmac/legacy.js","webpack:///./node_modules/create-ecdh/browser.js","webpack:///./node_modules/decode-uri-component/index.js"],"names":["r","primes","DH","ENCODINGS","exports","DiffieHellmanGroup","createDiffieHellmanGroup","getDiffieHellman","mod","prime","Buffer","gen","createDiffieHellman","DiffieHellman","enc","generator","genc","isBuffer","generatePrime","assert","Cipher","options","this","type","blockSize","_init","buffer","Array","bufferOff","module","prototype","update","data","length","_updateDecrypt","_updateEncrypt","_buffer","off","min","Math","i","_flushBuffer","out","_update","inputOff","outputOff","count","max","ceil","final","first","last","_finalEncrypt","_finalDecrypt","concat","_pad","_unpad","equal","inherits","proto","CBCState","iv","instantiate","Base","CBC","call","_cbcInit","keys","Object","key","create","state","_cbcState","inp","inOff","outOff","superProto","constructor","super_","utils","DES","EDE","Legacy","md5","RIPEMD160","sha","ZEROS","alloc","Hmac","alg","from","blocksize","_alg","_key","digest","ipad","_ipad","allocUnsafe","opad","_opad","_hash","_final","h","toLowerCase","randomBytes","rng","pseudoRandomBytes","prng","createHash","Hash","createHmac","algos","algoKeys","hashes","getHashes","p","pbkdf2","pbkdf2Sync","aes","createCipher","Cipheriv","createCipheriv","Decipher","createDecipher","Decipheriv","createDecipheriv","getCiphers","listCiphers","dh","sign","createSign","Sign","createVerify","Verify","createECDH","publicEncrypt","privateEncrypt","publicDecrypt","privateDecrypt","rf","randomFill","randomFillSync","createCredentials","Error","join","constants","EDEState","k1","slice","k2","k3","ciphers","_edeState","isMergeableObject","value","isNonNullObject","stringValue","toString","$$typeof","REACT_ELEMENT_TYPE","isReactElement","isSpecial","Symbol","for","cloneUnlessOtherwiseSpecified","clone","deepmerge","val","isArray","emptyTarget","defaultArrayMerge","target","source","map","element","getKeys","getOwnPropertySymbols","filter","symbol","propertyIsEnumerable","getEnumerableOwnPropertySymbols","propertyIsOnObject","object","property","_","mergeObject","destination","forEach","hasOwnProperty","propertyIsUnsafe","customMerge","getMergeFunction","arrayMerge","sourceIsArray","all","array","reduce","prev","next","deepmerge_1","DESState","tmp","_desState","deriveKeys","shiftTable","kL","readUInt32BE","kR","pc1","shift","r28shl","pc2","l","ip","_encrypt","_decrypt","writeUInt32BE","pad","lStart","rStart","keyL","keyR","expand","s","substitute","t","permute","rip","millerRabin","TWENTYFOUR","BN","ELEVEN","TEN","THREE","SEVEN","setPublicKey","pub","_pub","setPrivateKey","priv","_priv","primeCache","malleable","setGenerator","__prime","_prime","mont","_primeLen","_primeCode","formatReturnValue","bn","buf","toArray","defineProperty","enumerable","get","hex","rem","error","isEven","simpleSieve","fermatTest","test","shrn","cmp","checkPrime","__gen","generateKeys","_gen","toRed","redPow","fromRed","getPublicKey","computeSecret","other","secret","getPrime","front","fill","getPrivateKey","getGenerator","findPrime","ONE","TWO","FIVE","FOUR","res","k","sqrt","j","_getPrimes","modn","cmpn","red","subn","bits","num","n2","bitLength","ishrn","iadd","testn","MD5","global","self","__self__","F","fetch","DOMException","support","Blob","e","viewClasses","isArrayBufferView","ArrayBuffer","isView","obj","indexOf","normalizeName","name","String","TypeError","normalizeValue","iteratorFor","items","iterator","done","Headers","headers","append","header","getOwnPropertyNames","consumed","body","bodyUsed","Promise","reject","fileReaderReady","reader","resolve","onload","result","onerror","readBlobAsArrayBuffer","blob","FileReader","promise","readAsArrayBuffer","bufferClone","view","Uint8Array","byteLength","set","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","URLSearchParams","DataView","isDataView","_bodyArrayBuffer","rejected","arrayBuffer","then","text","readAsText","readBlobAsText","chars","fromCharCode","readArrayBufferAsText","formData","decode","json","JSON","parse","oldValue","has","callback","thisArg","push","values","entries","methods","Request","input","url","credentials","method","mode","signal","upcased","toUpperCase","normalizeMethod","referrer","form","trim","split","bytes","replace","decodeURIComponent","parseHeaders","rawHeaders","line","parts","Response","bodyInit","status","ok","statusText","response","redirectStatuses","redirect","RangeError","location","err","message","stack","init","request","aborted","xhr","XMLHttpRequest","abortXhr","abort","getAllResponseHeaders","responseURL","responseText","ontimeout","onabort","open","withCredentials","responseType","setRequestHeader","addEventListener","onreadystatechange","readyState","removeEventListener","send","polyfill","ponyfill","ctx","default","inL","inR","outL","outR","pc2table","len","sTable","b","sb","permuteTable","padSplit","size","group","str","factory","DO_NOT_EXPORT_CRC","CRC32","version","T0","c","table","n","Int32Array","signed_crc_table","TT","T","v","subarray","slice_by_16_tables","T1","T2","T3","T4","T5","T6","T7","T8","T9","Ta","Tb","Tc","Td","Te","Tf","bstr","seed","C","L","charCodeAt","B","d","__spreadArray","to","pack","arguments","ar","BrowserInfo","os","NodeInfo","process","platform","SearchBotDeviceInfo","bot","BotInfo","ReactNativeInfo","SEARCHBOT_OS_REGEX","userAgentRules","operatingSystemRules","detect","userAgent","parseUserAgent","document","navigator","product","getNodeVersion","matchUserAgent","ua","matched","_a","browser","regex","uaMatch","exec","matchedRule","match","versionParts","output","ii","createVersionParts","detectOS","searchBotMatch","ownKeys","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","apply","_objectSpread2","_defineProperty","getOwnPropertyDescriptors","defineProperties","_typeof","configurable","writable","vendorPrefix","jsCssMap","Webkit","Moz","ms","O","getVendorPrefix","style","createElement","getTransitionName","getTransformName","setTransitionProperty","node","transitionProperty","setTransform","transform","getTransitionProperty","getComputedStyleX","matrix2d","matrix3d","forceRelayout","elem","originalStyle","display","offsetHeight","css","el","getScroll","w","top","ret","documentElement","getScrollLeft","getScrollTop","getOffset","pos","box","x","y","doc","ownerDocument","docElem","getBoundingClientRect","left","clientLeft","clientTop","getClientPosition","defaultView","parentWindow","isWindow","window","getDocument","nodeType","_RE_NUM_NO_PX","RegExp","RE_POS","CURRENT_STYLE","RUNTIME_STYLE","LEFT","getOffsetDirection","dir","option","useCssRight","useCssBottom","oppositeOffsetDirection","setLeftTop","offset","position","presetH","presetV","horizontalProperty","verticalProperty","oppositeHorizontalProperty","oppositeVerticalProperty","originalTransition","originalOffset","old","preset","_dir","_off","setTransform$1","originalXY","getComputedStyle","getPropertyValue","matrix","parseFloat","getTransformXY","resultXY","xy","arr","match2d","item","setTransformXY","each","fn","isBorderBoxFn","cs","computedStyle","rsLeft","pixelLeft","BOX_MODELS","swap","getPBMWidth","props","which","prop","cssProp","domUtils","getParent","parent","host","parentNode","getWH","ex","extra","viewportWidth","viewportHeight","docWidth","docHeight","borderBoxValue","width","height","isBorderBox","cssBoxValue","Number","CONTENT_INDEX","borderBoxValueOrIsBorderBox","refWin","win","documentElementProp","compatMode","cssShow","visibility","getWHIgnoreDisplay","_len","args","_key2","offsetWidth","mix","charAt","includeMargin","getWindow","setTimeout","ignoreShake","oriOffset","oLeft","toFixed","oTop","tLeft","tTop","useCssTransform","setOffset","overflow","getWindowScrollLeft","getWindowScrollTop","merge","getOffsetParent","positionStyle","nodeName","getParent$1","getVisibleRectForElement","alwaysByViewport","visibleRect","right","Infinity","bottom","clientWidth","clientHeight","originalPosition","scrollX","scrollY","documentWidth","scrollWidth","documentHeight","scrollHeight","bodyStyle","overflowX","innerWidth","overflowY","innerHeight","isAncestorFixed","maxVisibleWidth","maxVisibleHeight","getRegion","outerWidth","outerHeight","getAlignOffset","region","align","V","H","getElFuturePos","elRegion","refNodeRegion","points","targetOffset","p1","p2","diff","round","isFailX","elFuturePos","isFailY","flip","reg","m","flipOffset","index","convertOffset","offsetLen","parseInt","substring","normalizeOffset","doAlign","tgtRegion","isTgtRegionVisible","newOverflowCfg","fail","newElRegion","adjustX","adjustY","newPoints","newOffset","newTargetOffset","isCompleteFailX","_newPoints","_newOffset","_newTargetOffset","isCompleteFailY","isStillFailX","isStillFailY","_newPoints2","resizeWidth","resizeHeight","adjustForViewport","alignElement","refNode","isTargetNotOutOfVisible","targetRegion","isOutOfVisibleRect","alignPoint","tgtPoint","pageX","pageY","clientX","clientY","pointInView","__getOffsetParent","__getVisibleRectForElement","hash","curve","ECDH","aliases","secp256k1","secp224r1","prime256v1","prime192v1","ed25519","secp384r1","secp521r1","curveType","elliptic","ec","zeros","p224","p256","secp256r1","p192","secp192r1","p384","p521","format","genKeyPair","inenc","keyFromPublic","getPublic","mul","getPrivate","getX","_importPublic","_importPrivate","token","singleMatcher","multiMatcher","decodeComponents","components","tokens","encodedURI","replaceMap","customDecodeURIComponent"],"mappings":"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","file":"js/chunk-vendors~d939e436.44ed5d6d.js","sourcesContent":["var generatePrime = require('./lib/generatePrime')\nvar primes = require('./lib/primes.json')\n\nvar DH = require('./lib/dh')\n\nfunction getDiffieHellman (mod) {\n var prime = new Buffer(primes[mod].prime, 'hex')\n var gen = new Buffer(primes[mod].gen, 'hex')\n\n return new DH(prime, gen)\n}\n\nvar ENCODINGS = {\n 'binary': true, 'hex': true, 'base64': true\n}\n\nfunction createDiffieHellman (prime, enc, generator, genc) {\n if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) {\n return createDiffieHellman(prime, 'binary', enc, generator)\n }\n\n enc = enc || 'binary'\n genc = genc || 'binary'\n generator = generator || new Buffer([2])\n\n if (!Buffer.isBuffer(generator)) {\n generator = new Buffer(generator, genc)\n }\n\n if (typeof prime === 'number') {\n return new DH(generatePrime(prime, generator), generator, true)\n }\n\n if (!Buffer.isBuffer(prime)) {\n prime = new Buffer(prime, enc)\n }\n\n return new DH(prime, generator, true)\n}\n\nexports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman\nexports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman\n","'use strict';\n\nvar assert = require('minimalistic-assert');\n\nfunction Cipher(options) {\n this.options = options;\n\n this.type = this.options.type;\n this.blockSize = 8;\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n}\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {\n // Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0)\n return [];\n\n if (this.type === 'decrypt')\n return this._updateDecrypt(data);\n else\n return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n // Append data to buffer\n var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n for (var i = 0; i < min; i++)\n this.buffer[this.bufferOff + i] = data[off + i];\n this.bufferOff += min;\n\n // Shift next\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n this.bufferOff = 0;\n return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = ((this.bufferOff + data.length) / this.blockSize) | 0;\n var out = new Array(count * this.blockSize);\n\n if (this.bufferOff !== 0) {\n inputOff += this._buffer(data, inputOff);\n\n if (this.bufferOff === this.buffer.length)\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Write blocks\n var max = data.length - ((data.length - inputOff) % this.blockSize);\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n outputOff += this.blockSize;\n }\n\n // Queue rest\n for (; inputOff < data.length; inputOff++, this.bufferOff++)\n this.buffer[this.bufferOff] = data[inputOff];\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize);\n\n // TODO(indutny): optimize it, this is far from optimal\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Buffer rest of the input\n inputOff += this._buffer(data, inputOff);\n\n return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n var first;\n if (buffer)\n first = this.update(buffer);\n\n var last;\n if (this.type === 'encrypt')\n last = this._finalEncrypt();\n else\n last = this._finalDecrypt();\n\n if (first)\n return first.concat(last);\n else\n return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0)\n return false;\n\n while (off < buffer.length)\n buffer[off++] = 0;\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff))\n return [];\n\n var out = new Array(this.blockSize);\n this._update(this.buffer, 0, out, 0);\n return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n var out = new Array(this.blockSize);\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar proto = {};\n\nfunction CBCState(iv) {\n assert.equal(iv.length, 8, 'Invalid IV length');\n\n this.iv = new Array(8);\n for (var i = 0; i < this.iv.length; i++)\n this.iv[i] = iv[i];\n}\n\nfunction instantiate(Base) {\n function CBC(options) {\n Base.call(this, options);\n this._cbcInit();\n }\n inherits(CBC, Base);\n\n var keys = Object.keys(proto);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n CBC.prototype[key] = proto[key];\n }\n\n CBC.create = function create(options) {\n return new CBC(options);\n };\n\n return CBC;\n}\n\nexports.instantiate = instantiate;\n\nproto._cbcInit = function _cbcInit() {\n var state = new CBCState(this.options.iv);\n this._cbcState = state;\n};\n\nproto._update = function _update(inp, inOff, out, outOff) {\n var state = this._cbcState;\n var superProto = this.constructor.super_.prototype;\n\n var iv = state.iv;\n if (this.type === 'encrypt') {\n for (var i = 0; i < this.blockSize; i++)\n iv[i] ^= inp[inOff + i];\n\n superProto._update.call(this, iv, 0, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = out[outOff + i];\n } else {\n superProto._update.call(this, inp, inOff, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n out[outOff + i] ^= iv[i];\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = inp[inOff + i];\n }\n};\n","'use strict';\n\nexports.utils = require('./des/utils');\nexports.Cipher = require('./des/cipher');\nexports.DES = require('./des/des');\nexports.CBC = require('./des/cbc');\nexports.EDE = require('./des/ede');\n","'use strict'\nvar inherits = require('inherits')\nvar Legacy = require('./legacy')\nvar Base = require('cipher-base')\nvar Buffer = require('safe-buffer').Buffer\nvar md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\n\nvar sha = require('sha.js')\n\nvar ZEROS = Buffer.alloc(128)\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n this._alg = alg\n this._key = key\n if (key.length > blocksize) {\n var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n key = hash.update(key).digest()\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n this._hash.update(ipad)\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._hash.digest()\n var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)\n return hash.update(this._opad).update(h).digest()\n}\n\nmodule.exports = function createHmac (alg, key) {\n alg = alg.toLowerCase()\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key)\n }\n if (alg === 'md5') {\n return new Legacy(md5, key)\n }\n return new Hmac(alg, key)\n}\n","'use strict'\n\nexports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes')\nexports.createHash = exports.Hash = require('create-hash')\nexports.createHmac = exports.Hmac = require('create-hmac')\n\nvar algos = require('browserify-sign/algos')\nvar algoKeys = Object.keys(algos)\nvar hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(algoKeys)\nexports.getHashes = function () {\n return hashes\n}\n\nvar p = require('pbkdf2')\nexports.pbkdf2 = p.pbkdf2\nexports.pbkdf2Sync = p.pbkdf2Sync\n\nvar aes = require('browserify-cipher')\n\nexports.Cipher = aes.Cipher\nexports.createCipher = aes.createCipher\nexports.Cipheriv = aes.Cipheriv\nexports.createCipheriv = aes.createCipheriv\nexports.Decipher = aes.Decipher\nexports.createDecipher = aes.createDecipher\nexports.Decipheriv = aes.Decipheriv\nexports.createDecipheriv = aes.createDecipheriv\nexports.getCiphers = aes.getCiphers\nexports.listCiphers = aes.listCiphers\n\nvar dh = require('diffie-hellman')\n\nexports.DiffieHellmanGroup = dh.DiffieHellmanGroup\nexports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup\nexports.getDiffieHellman = dh.getDiffieHellman\nexports.createDiffieHellman = dh.createDiffieHellman\nexports.DiffieHellman = dh.DiffieHellman\n\nvar sign = require('browserify-sign')\n\nexports.createSign = sign.createSign\nexports.Sign = sign.Sign\nexports.createVerify = sign.createVerify\nexports.Verify = sign.Verify\n\nexports.createECDH = require('create-ecdh')\n\nvar publicEncrypt = require('public-encrypt')\n\nexports.publicEncrypt = publicEncrypt.publicEncrypt\nexports.privateEncrypt = publicEncrypt.privateEncrypt\nexports.publicDecrypt = publicEncrypt.publicDecrypt\nexports.privateDecrypt = publicEncrypt.privateDecrypt\n\n// the least I can do is make error messages for the rest of the node.js/crypto api.\n// ;[\n// 'createCredentials'\n// ].forEach(function (name) {\n// exports[name] = function () {\n// throw new Error([\n// 'sorry, ' + name + ' is not implemented yet',\n// 'we accept pull requests',\n// 'https://github.com/crypto-browserify/crypto-browserify'\n// ].join('\\n'))\n// }\n// })\n\nvar rf = require('randomfill')\n\nexports.randomFill = rf.randomFill\nexports.randomFillSync = rf.randomFillSync\n\nexports.createCredentials = function () {\n throw new Error([\n 'sorry, createCredentials is not implemented yet',\n 'we accept pull requests',\n 'https://github.com/crypto-browserify/crypto-browserify'\n ].join('\\n'))\n}\n\nexports.constants = {\n 'DH_CHECK_P_NOT_SAFE_PRIME': 2,\n 'DH_CHECK_P_NOT_PRIME': 1,\n 'DH_UNABLE_TO_CHECK_GENERATOR': 4,\n 'DH_NOT_SUITABLE_GENERATOR': 8,\n 'NPN_ENABLED': 1,\n 'ALPN_ENABLED': 1,\n 'RSA_PKCS1_PADDING': 1,\n 'RSA_SSLV23_PADDING': 2,\n 'RSA_NO_PADDING': 3,\n 'RSA_PKCS1_OAEP_PADDING': 4,\n 'RSA_X931_PADDING': 5,\n 'RSA_PKCS1_PSS_PADDING': 6,\n 'POINT_CONVERSION_COMPRESSED': 2,\n 'POINT_CONVERSION_UNCOMPRESSED': 4,\n 'POINT_CONVERSION_HYBRID': 6\n}\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar Cipher = require('./cipher');\nvar DES = require('./des');\n\nfunction EDEState(type, key) {\n assert.equal(key.length, 24, 'Invalid key length');\n\n var k1 = key.slice(0, 8);\n var k2 = key.slice(8, 16);\n var k3 = key.slice(16, 24);\n\n if (type === 'encrypt') {\n this.ciphers = [\n DES.create({ type: 'encrypt', key: k1 }),\n DES.create({ type: 'decrypt', key: k2 }),\n DES.create({ type: 'encrypt', key: k3 })\n ];\n } else {\n this.ciphers = [\n DES.create({ type: 'decrypt', key: k3 }),\n DES.create({ type: 'encrypt', key: k2 }),\n DES.create({ type: 'decrypt', key: k1 })\n ];\n }\n}\n\nfunction EDE(options) {\n Cipher.call(this, options);\n\n var state = new EDEState(this.type, this.options.key);\n this._edeState = state;\n}\ninherits(EDE, Cipher);\n\nmodule.exports = EDE;\n\nEDE.create = function create(options) {\n return new EDE(options);\n};\n\nEDE.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._edeState;\n\n state.ciphers[0]._update(inp, inOff, out, outOff);\n state.ciphers[1]._update(out, outOff, out, outOff);\n state.ciphers[2]._update(out, outOff, out, outOff);\n};\n\nEDE.prototype._pad = DES.prototype._pad;\nEDE.prototype._unpad = DES.prototype._unpad;\n","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar utils = require('./utils');\nvar Cipher = require('./cipher');\n\nfunction DESState() {\n this.tmp = new Array(2);\n this.keys = null;\n}\n\nfunction DES(options) {\n Cipher.call(this, options);\n\n var state = new DESState();\n this._desState = state;\n\n this.deriveKeys(state, options.key);\n}\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n return new DES(options);\n};\n\nvar shiftTable = [\n 1, 1, 2, 2, 2, 2, 2, 2,\n 1, 2, 2, 2, 2, 2, 2, 1\n];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n state.keys = new Array(16 * 2);\n\n assert.equal(key.length, this.blockSize, 'Invalid key length');\n\n var kL = utils.readUInt32BE(key, 0);\n var kR = utils.readUInt32BE(key, 4);\n\n utils.pc1(kL, kR, state.tmp, 0);\n kL = state.tmp[0];\n kR = state.tmp[1];\n for (var i = 0; i < state.keys.length; i += 2) {\n var shift = shiftTable[i >>> 1];\n kL = utils.r28shl(kL, shift);\n kR = utils.r28shl(kR, shift);\n utils.pc2(kL, kR, state.keys, i);\n }\n};\n\nDES.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._desState;\n\n var l = utils.readUInt32BE(inp, inOff);\n var r = utils.readUInt32BE(inp, inOff + 4);\n\n // Initial Permutation\n utils.ip(l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n\n if (this.type === 'encrypt')\n this._encrypt(state, l, r, state.tmp, 0);\n else\n this._decrypt(state, l, r, state.tmp, 0);\n\n l = state.tmp[0];\n r = state.tmp[1];\n\n utils.writeUInt32BE(out, l, outOff);\n utils.writeUInt32BE(out, r, outOff + 4);\n};\n\nDES.prototype._pad = function _pad(buffer, off) {\n var value = buffer.length - off;\n for (var i = off; i < buffer.length; i++)\n buffer[i] = value;\n\n return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n var pad = buffer[buffer.length - 1];\n for (var i = buffer.length - pad; i < buffer.length; i++)\n assert.equal(buffer[i], pad);\n\n return buffer.slice(0, buffer.length - pad);\n};\n\nDES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {\n var l = lStart;\n var r = rStart;\n\n // Apply f() x16 times\n for (var i = 0; i < state.keys.length; i += 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(r, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = r;\n r = (l ^ f) >>> 0;\n l = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(r, l, out, off);\n};\n\nDES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {\n var l = rStart;\n var r = lStart;\n\n // Apply f() x16 times\n for (var i = state.keys.length - 2; i >= 0; i -= 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(l, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = l;\n l = (r ^ f) >>> 0;\n r = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(l, r, out, off);\n};\n","var BN = require('bn.js');\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar TWENTYFOUR = new BN(24);\nvar ELEVEN = new BN(11);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar primes = require('./generatePrime');\nvar randomBytes = require('randombytes');\nmodule.exports = DH;\n\nfunction setPublicKey(pub, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc);\n }\n this._pub = new BN(pub);\n return this;\n}\n\nfunction setPrivateKey(priv, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc);\n }\n this._priv = new BN(priv);\n return this;\n}\n\nvar primeCache = {};\nfunction checkPrime(prime, generator) {\n var gen = generator.toString('hex');\n var hex = [gen, prime.toString(16)].join('_');\n if (hex in primeCache) {\n return primeCache[hex];\n }\n var error = 0;\n\n if (prime.isEven() ||\n !primes.simpleSieve ||\n !primes.fermatTest(prime) ||\n !millerRabin.test(prime)) {\n //not a prime so +1\n error += 1;\n\n if (gen === '02' || gen === '05') {\n // we'd be able to check the generator\n // it would fail so +8\n error += 8;\n } else {\n //we wouldn't be able to test the generator\n // so +4\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n }\n if (!millerRabin.test(prime.shrn(1))) {\n //not a safe prime\n error += 2;\n }\n var rem;\n switch (gen) {\n case '02':\n if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {\n // unsuidable generator\n error += 8;\n }\n break;\n case '05':\n rem = prime.mod(TEN);\n if (rem.cmp(THREE) && rem.cmp(SEVEN)) {\n // prime mod 10 needs to equal 3 or 7\n error += 8;\n }\n break;\n default:\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n}\n\nfunction DH(prime, generator, malleable) {\n this.setGenerator(generator);\n this.__prime = new BN(prime);\n this._prime = BN.mont(this.__prime);\n this._primeLen = prime.length;\n this._pub = undefined;\n this._priv = undefined;\n this._primeCode = undefined;\n if (malleable) {\n this.setPublicKey = setPublicKey;\n this.setPrivateKey = setPrivateKey;\n } else {\n this._primeCode = 8;\n }\n}\nObject.defineProperty(DH.prototype, 'verifyError', {\n enumerable: true,\n get: function () {\n if (typeof this._primeCode !== 'number') {\n this._primeCode = checkPrime(this.__prime, this.__gen);\n }\n return this._primeCode;\n }\n});\nDH.prototype.generateKeys = function () {\n if (!this._priv) {\n this._priv = new BN(randomBytes(this._primeLen));\n }\n this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();\n return this.getPublicKey();\n};\n\nDH.prototype.computeSecret = function (other) {\n other = new BN(other);\n other = other.toRed(this._prime);\n var secret = other.redPow(this._priv).fromRed();\n var out = new Buffer(secret.toArray());\n var prime = this.getPrime();\n if (out.length < prime.length) {\n var front = new Buffer(prime.length - out.length);\n front.fill(0);\n out = Buffer.concat([front, out]);\n }\n return out;\n};\n\nDH.prototype.getPublicKey = function getPublicKey(enc) {\n return formatReturnValue(this._pub, enc);\n};\n\nDH.prototype.getPrivateKey = function getPrivateKey(enc) {\n return formatReturnValue(this._priv, enc);\n};\n\nDH.prototype.getPrime = function (enc) {\n return formatReturnValue(this.__prime, enc);\n};\n\nDH.prototype.getGenerator = function (enc) {\n return formatReturnValue(this._gen, enc);\n};\n\nDH.prototype.setGenerator = function (gen, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(gen)) {\n gen = new Buffer(gen, enc);\n }\n this.__gen = gen;\n this._gen = new BN(gen);\n return this;\n};\n\nfunction formatReturnValue(bn, enc) {\n var buf = new Buffer(bn.toArray());\n if (!enc) {\n return buf;\n } else {\n return buf.toString(enc);\n }\n}\n","var randomBytes = require('randombytes');\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\nvar BN = require('bn.js');\nvar TWENTYFOUR = new BN(24);\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n if (primes !== null)\n return primes;\n\n var limit = 0x100000;\n var res = [];\n res[0] = 2;\n for (var i = 1, k = 3; k < limit; k += 2) {\n var sqrt = Math.ceil(Math.sqrt(k));\n for (var j = 0; j < i && res[j] <= sqrt; j++)\n if (k % res[j] === 0)\n break;\n\n if (i !== j && res[j] <= sqrt)\n continue;\n\n res[i++] = k;\n }\n primes = res;\n return res;\n}\n\nfunction simpleSieve(p) {\n var primes = _getPrimes();\n\n for (var i = 0; i < primes.length; i++)\n if (p.modn(primes[i]) === 0) {\n if (p.cmpn(primes[i]) === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nfunction fermatTest(p) {\n var red = BN.mont(p);\n return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n if (bits < 16) {\n // this is what openssl does\n if (gen === 2 || gen === 5) {\n return new BN([0x8c, 0x7b]);\n } else {\n return new BN([0x8c, 0x27]);\n }\n }\n gen = new BN(gen);\n\n var num, n2;\n\n while (true) {\n num = new BN(randomBytes(Math.ceil(bits / 8)));\n while (num.bitLength() > bits) {\n num.ishrn(1);\n }\n if (num.isEven()) {\n num.iadd(ONE);\n }\n if (!num.testn(1)) {\n num.iadd(TWO);\n }\n if (!gen.cmp(TWO)) {\n while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n num.iadd(FOUR);\n }\n } else if (!gen.cmp(FIVE)) {\n while (num.mod(TEN).cmp(THREE)) {\n num.iadd(FOUR);\n }\n }\n n2 = num.shrn(1);\n if (simpleSieve(n2) && simpleSieve(num) &&\n fermatTest(n2) && fermatTest(num) &&\n millerRabin.test(n2) && millerRabin.test(num)) {\n return num;\n }\n }\n\n}\n","var MD5 = require('md5.js')\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest()\n}\n","var global = typeof self !== 'undefined' ? self : this;\nvar __self__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = global.DOMException\n}\nF.prototype = global;\nreturn new F();\n})();\n(function(self) {\n\nvar irrelevant = (function (exports) {\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = 'statusText' in options ? options.statusText : 'OK';\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = self.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n resolve(new Response(body, options));\n };\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.onabort = function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n };\n\n xhr.open(request.method, request.url, true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob';\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!self.fetch) {\n self.fetch = fetch;\n self.Headers = Headers;\n self.Request = Request;\n self.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n return exports;\n\n})({});\n})(__self__);\n__self__.fetch.ponyfill = true;\n// Remove \"polyfill\" property added by whatwg-fetch\ndelete __self__.fetch.polyfill;\n// Choose between native implementation (global) or custom implementation (__self__)\n// var ctx = global.fetch ? global : __self__;\nvar ctx = __self__; // this line disable service worker support temporarily\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\n","'use strict';\n\nexports.readUInt32BE = function readUInt32BE(bytes, off) {\n var res = (bytes[0 + off] << 24) |\n (bytes[1 + off] << 16) |\n (bytes[2 + off] << 8) |\n bytes[3 + off];\n return res >>> 0;\n};\n\nexports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {\n bytes[0 + off] = value >>> 24;\n bytes[1 + off] = (value >>> 16) & 0xff;\n bytes[2 + off] = (value >>> 8) & 0xff;\n bytes[3 + off] = value & 0xff;\n};\n\nexports.ip = function ip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n }\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.rip = function rip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 0; i < 4; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n for (var i = 4; i < 8; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.pc1 = function pc1(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n // 7, 15, 23, 31, 39, 47, 55, 63\n // 6, 14, 22, 30, 39, 47, 55, 63\n // 5, 13, 21, 29, 39, 47, 55, 63\n // 4, 12, 20, 28\n for (var i = 7; i >= 5; i--) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n\n // 1, 9, 17, 25, 33, 41, 49, 57\n // 2, 10, 18, 26, 34, 42, 50, 58\n // 3, 11, 19, 27, 35, 43, 51, 59\n // 36, 44, 52, 60\n for (var i = 1; i <= 3; i++) {\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.r28shl = function r28shl(num, shift) {\n return ((num << shift) & 0xfffffff) | (num >>> (28 - shift));\n};\n\nvar pc2table = [\n // inL => outL\n 14, 11, 17, 4, 27, 23, 25, 0,\n 13, 22, 7, 18, 5, 9, 16, 24,\n 2, 20, 12, 21, 1, 8, 15, 26,\n\n // inR => outR\n 15, 4, 25, 19, 9, 1, 26, 16,\n 5, 11, 23, 8, 12, 7, 17, 0,\n 22, 3, 10, 14, 6, 20, 27, 24\n];\n\nexports.pc2 = function pc2(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n var len = pc2table.length >>> 1;\n for (var i = 0; i < len; i++) {\n outL <<= 1;\n outL |= (inL >>> pc2table[i]) & 0x1;\n }\n for (var i = len; i < pc2table.length; i++) {\n outR <<= 1;\n outR |= (inR >>> pc2table[i]) & 0x1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.expand = function expand(r, out, off) {\n var outL = 0;\n var outR = 0;\n\n outL = ((r & 1) << 5) | (r >>> 27);\n for (var i = 23; i >= 15; i -= 4) {\n outL <<= 6;\n outL |= (r >>> i) & 0x3f;\n }\n for (var i = 11; i >= 3; i -= 4) {\n outR |= (r >>> i) & 0x3f;\n outR <<= 6;\n }\n outR |= ((r & 0x1f) << 1) | (r >>> 31);\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nvar sTable = [\n 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1,\n 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8,\n 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7,\n 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13,\n\n 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14,\n 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5,\n 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2,\n 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9,\n\n 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10,\n 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1,\n 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7,\n 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12,\n\n 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3,\n 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9,\n 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8,\n 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14,\n\n 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1,\n 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6,\n 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13,\n 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3,\n\n 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5,\n 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8,\n 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10,\n 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13,\n\n 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10,\n 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6,\n 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7,\n 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12,\n\n 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4,\n 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2,\n 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13,\n 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11\n];\n\nexports.substitute = function substitute(inL, inR) {\n var out = 0;\n for (var i = 0; i < 4; i++) {\n var b = (inL >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n for (var i = 0; i < 4; i++) {\n var b = (inR >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[4 * 0x40 + i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n return out >>> 0;\n};\n\nvar permuteTable = [\n 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22,\n 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7\n];\n\nexports.permute = function permute(num) {\n var out = 0;\n for (var i = 0; i < permuteTable.length; i++) {\n out <<= 1;\n out |= (num >>> permuteTable[i]) & 0x1;\n }\n return out >>> 0;\n};\n\nexports.padSplit = function padSplit(num, size, group) {\n var str = num.toString(2);\n while (str.length < size)\n str = '0' + str;\n\n var out = [];\n for (var i = 0; i < size; i += group)\n out.push(str.slice(i, i + group));\n return out.join(' ');\n};\n","/*! crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported CRC32 */\nvar CRC32;\n(function (factory) {\n\t/*jshint ignore:start */\n\t/*eslint-disable */\n\tif(typeof DO_NOT_EXPORT_CRC === 'undefined') {\n\t\tif('object' === typeof exports) {\n\t\t\tfactory(exports);\n\t\t} else if ('function' === typeof define && define.amd) {\n\t\t\tdefine(function () {\n\t\t\t\tvar module = {};\n\t\t\t\tfactory(module);\n\t\t\t\treturn module;\n\t\t\t});\n\t\t} else {\n\t\t\tfactory(CRC32 = {});\n\t\t}\n\t} else {\n\t\tfactory(CRC32 = {});\n\t}\n\t/*eslint-enable */\n\t/*jshint ignore:end */\n}(function(CRC32) {\nCRC32.version = '1.2.2';\n/*global Int32Array */\nfunction signed_crc_table() {\n\tvar c = 0, table = new Array(256);\n\n\tfor(var n =0; n != 256; ++n){\n\t\tc = n;\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\ttable[n] = c;\n\t}\n\n\treturn typeof Int32Array !== 'undefined' ? new Int32Array(table) : table;\n}\n\nvar T0 = signed_crc_table();\nfunction slice_by_16_tables(T) {\n\tvar c = 0, v = 0, n = 0, table = typeof Int32Array !== 'undefined' ? new Int32Array(4096) : new Array(4096) ;\n\n\tfor(n = 0; n != 256; ++n) table[n] = T[n];\n\tfor(n = 0; n != 256; ++n) {\n\t\tv = T[n];\n\t\tfor(c = 256 + n; c < 4096; c += 256) v = table[c] = (v >>> 8) ^ T[v & 0xFF];\n\t}\n\tvar out = [];\n\tfor(n = 1; n != 16; ++n) out[n - 1] = typeof Int32Array !== 'undefined' ? table.subarray(n * 256, n * 256 + 256) : table.slice(n * 256, n * 256 + 256);\n\treturn out;\n}\nvar TT = slice_by_16_tables(T0);\nvar T1 = TT[0], T2 = TT[1], T3 = TT[2], T4 = TT[3], T5 = TT[4];\nvar T6 = TT[5], T7 = TT[6], T8 = TT[7], T9 = TT[8], Ta = TT[9];\nvar Tb = TT[10], Tc = TT[11], Td = TT[12], Te = TT[13], Tf = TT[14];\nfunction crc32_bstr(bstr, seed) {\n\tvar C = seed ^ -1;\n\tfor(var i = 0, L = bstr.length; i < L;) C = (C>>>8) ^ T0[(C^bstr.charCodeAt(i++))&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_buf(B, seed) {\n\tvar C = seed ^ -1, L = B.length - 15, i = 0;\n\tfor(; i < L;) C =\n\t\tTf[B[i++] ^ (C & 255)] ^\n\t\tTe[B[i++] ^ ((C >> 8) & 255)] ^\n\t\tTd[B[i++] ^ ((C >> 16) & 255)] ^\n\t\tTc[B[i++] ^ (C >>> 24)] ^\n\t\tTb[B[i++]] ^ Ta[B[i++]] ^ T9[B[i++]] ^ T8[B[i++]] ^\n\t\tT7[B[i++]] ^ T6[B[i++]] ^ T5[B[i++]] ^ T4[B[i++]] ^\n\t\tT3[B[i++]] ^ T2[B[i++]] ^ T1[B[i++]] ^ T0[B[i++]];\n\tL += 15;\n\twhile(i < L) C = (C>>>8) ^ T0[(C^B[i++])&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_str(str, seed) {\n\tvar C = seed ^ -1;\n\tfor(var i = 0, L = str.length, c = 0, d = 0; i < L;) {\n\t\tc = str.charCodeAt(i++);\n\t\tif(c < 0x80) {\n\t\t\tC = (C>>>8) ^ T0[(C^c)&0xFF];\n\t\t} else if(c < 0x800) {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (192|((c>>6)&31)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64; d = str.charCodeAt(i++)&1023;\n\t\t\tC = (C>>>8) ^ T0[(C ^ (240|((c>>8)&7)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>2)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((d>>6)&15)|((c&3)<<4)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(d&63)))&0xFF];\n\t\t} else {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (224|((c>>12)&15)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>6)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t}\n\t}\n\treturn ~C;\n}\nCRC32.table = T0;\n// $FlowIgnore\nCRC32.bstr = crc32_bstr;\n// $FlowIgnore\nCRC32.buf = crc32_buf;\n// $FlowIgnore\nCRC32.str = crc32_str;\n}));\n","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar BrowserInfo = /** @class */ (function () {\n function BrowserInfo(name, version, os) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.type = 'browser';\n }\n return BrowserInfo;\n}());\nexport { BrowserInfo };\nvar NodeInfo = /** @class */ (function () {\n function NodeInfo(version) {\n this.version = version;\n this.type = 'node';\n this.name = 'node';\n this.os = process.platform;\n }\n return NodeInfo;\n}());\nexport { NodeInfo };\nvar SearchBotDeviceInfo = /** @class */ (function () {\n function SearchBotDeviceInfo(name, version, os, bot) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.bot = bot;\n this.type = 'bot-device';\n }\n return SearchBotDeviceInfo;\n}());\nexport { SearchBotDeviceInfo };\nvar BotInfo = /** @class */ (function () {\n function BotInfo() {\n this.type = 'bot';\n this.bot = true; // NOTE: deprecated test name instead\n this.name = 'bot';\n this.version = null;\n this.os = null;\n }\n return BotInfo;\n}());\nexport { BotInfo };\nvar ReactNativeInfo = /** @class */ (function () {\n function ReactNativeInfo() {\n this.type = 'react-native';\n this.name = 'react-native';\n this.version = null;\n this.os = null;\n }\n return ReactNativeInfo;\n}());\nexport { ReactNativeInfo };\n// tslint:disable-next-line:max-line-length\nvar SEARCHBOX_UA_REGEX = /alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/;\nvar SEARCHBOT_OS_REGEX = /(nuhk|curl|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask\\ Jeeves\\/Teoma|ia_archiver)/;\nvar REQUIRED_VERSION_PARTS = 3;\nvar userAgentRules = [\n ['aol', /AOLShield\\/([0-9\\._]+)/],\n ['edge', /Edge\\/([0-9\\._]+)/],\n ['edge-ios', /EdgiOS\\/([0-9\\._]+)/],\n ['yandexbrowser', /YaBrowser\\/([0-9\\._]+)/],\n ['kakaotalk', /KAKAOTALK\\s([0-9\\.]+)/],\n ['samsung', /SamsungBrowser\\/([0-9\\.]+)/],\n ['silk', /\\bSilk\\/([0-9._-]+)\\b/],\n ['miui', /MiuiBrowser\\/([0-9\\.]+)$/],\n ['beaker', /BeakerBrowser\\/([0-9\\.]+)/],\n ['edge-chromium', /EdgA?\\/([0-9\\.]+)/],\n [\n 'chromium-webview',\n /(?!Chrom.*OPR)wv\\).*Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/,\n ],\n ['chrome', /(?!Chrom.*OPR)Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/],\n ['phantomjs', /PhantomJS\\/([0-9\\.]+)(:?\\s|$)/],\n ['crios', /CriOS\\/([0-9\\.]+)(:?\\s|$)/],\n ['firefox', /Firefox\\/([0-9\\.]+)(?:\\s|$)/],\n ['fxios', /FxiOS\\/([0-9\\.]+)/],\n ['opera-mini', /Opera Mini.*Version\\/([0-9\\.]+)/],\n ['opera', /Opera\\/([0-9\\.]+)(?:\\s|$)/],\n ['opera', /OPR\\/([0-9\\.]+)(:?\\s|$)/],\n ['pie', /^Microsoft Pocket Internet Explorer\\/(\\d+\\.\\d+)$/],\n ['pie', /^Mozilla\\/\\d\\.\\d+\\s\\(compatible;\\s(?:MSP?IE|MSInternet Explorer) (\\d+\\.\\d+);.*Windows CE.*\\)$/],\n ['netfront', /^Mozilla\\/\\d\\.\\d+.*NetFront\\/(\\d.\\d)/],\n ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/],\n ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\n ['ie', /MSIE\\s(7\\.0)/],\n ['bb10', /BB10;\\sTouch.*Version\\/([0-9\\.]+)/],\n ['android', /Android\\s([0-9\\.]+)/],\n ['ios', /Version\\/([0-9\\._]+).*Mobile.*Safari.*/],\n ['safari', /Version\\/([0-9\\._]+).*Safari/],\n ['facebook', /FB[AS]V\\/([0-9\\.]+)/],\n ['instagram', /Instagram\\s([0-9\\.]+)/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Mobile/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Gecko\\)$/],\n ['curl', /^curl\\/([0-9\\.]+)$/],\n ['searchbot', SEARCHBOX_UA_REGEX],\n];\nvar operatingSystemRules = [\n ['iOS', /iP(hone|od|ad)/],\n ['Android OS', /Android/],\n ['BlackBerry OS', /BlackBerry|BB10/],\n ['Windows Mobile', /IEMobile/],\n ['Amazon OS', /Kindle/],\n ['Windows 3.11', /Win16/],\n ['Windows 95', /(Windows 95)|(Win95)|(Windows_95)/],\n ['Windows 98', /(Windows 98)|(Win98)/],\n ['Windows 2000', /(Windows NT 5.0)|(Windows 2000)/],\n ['Windows XP', /(Windows NT 5.1)|(Windows XP)/],\n ['Windows Server 2003', /(Windows NT 5.2)/],\n ['Windows Vista', /(Windows NT 6.0)/],\n ['Windows 7', /(Windows NT 6.1)/],\n ['Windows 8', /(Windows NT 6.2)/],\n ['Windows 8.1', /(Windows NT 6.3)/],\n ['Windows 10', /(Windows NT 10.0)/],\n ['Windows ME', /Windows ME/],\n ['Windows CE', /Windows CE|WinCE|Microsoft Pocket Internet Explorer/],\n ['Open BSD', /OpenBSD/],\n ['Sun OS', /SunOS/],\n ['Chrome OS', /CrOS/],\n ['Linux', /(Linux)|(X11)/],\n ['Mac OS', /(Mac_PowerPC)|(Macintosh)/],\n ['QNX', /QNX/],\n ['BeOS', /BeOS/],\n ['OS/2', /OS\\/2/],\n];\nexport function detect(userAgent) {\n if (!!userAgent) {\n return parseUserAgent(userAgent);\n }\n if (typeof document === 'undefined' &&\n typeof navigator !== 'undefined' &&\n navigator.product === 'ReactNative') {\n return new ReactNativeInfo();\n }\n if (typeof navigator !== 'undefined') {\n return parseUserAgent(navigator.userAgent);\n }\n return getNodeVersion();\n}\nfunction matchUserAgent(ua) {\n // opted for using reduce here rather than Array#first with a regex.test call\n // this is primarily because using the reduce we only perform the regex\n // execution once rather than once for the test and for the exec again below\n // probably something that needs to be benchmarked though\n return (ua !== '' &&\n userAgentRules.reduce(function (matched, _a) {\n var browser = _a[0], regex = _a[1];\n if (matched) {\n return matched;\n }\n var uaMatch = regex.exec(ua);\n return !!uaMatch && [browser, uaMatch];\n }, false));\n}\nexport function browserName(ua) {\n var data = matchUserAgent(ua);\n return data ? data[0] : null;\n}\nexport function parseUserAgent(ua) {\n var matchedRule = matchUserAgent(ua);\n if (!matchedRule) {\n return null;\n }\n var name = matchedRule[0], match = matchedRule[1];\n if (name === 'searchbot') {\n return new BotInfo();\n }\n // Do not use RegExp for split operation as some browser do not support it (See: http://blog.stevenlevithan.com/archives/cross-browser-split)\n var versionParts = match[1] && match[1].split('.').join('_').split('_').slice(0, 3);\n if (versionParts) {\n if (versionParts.length < REQUIRED_VERSION_PARTS) {\n versionParts = __spreadArray(__spreadArray([], versionParts, true), createVersionParts(REQUIRED_VERSION_PARTS - versionParts.length), true);\n }\n }\n else {\n versionParts = [];\n }\n var version = versionParts.join('.');\n var os = detectOS(ua);\n var searchBotMatch = SEARCHBOT_OS_REGEX.exec(ua);\n if (searchBotMatch && searchBotMatch[1]) {\n return new SearchBotDeviceInfo(name, version, os, searchBotMatch[1]);\n }\n return new BrowserInfo(name, version, os);\n}\nexport function detectOS(ua) {\n for (var ii = 0, count = operatingSystemRules.length; ii < count; ii++) {\n var _a = operatingSystemRules[ii], os = _a[0], regex = _a[1];\n var match = regex.exec(ua);\n if (match) {\n return os;\n }\n }\n return null;\n}\nexport function getNodeVersion() {\n var isNode = typeof process !== 'undefined' && process.version;\n return isNode ? new NodeInfo(process.version.slice(1)) : null;\n}\nfunction createVersionParts(count) {\n var output = [];\n for (var ii = 0; ii < count; ii++) {\n output.push('0');\n }\n return output;\n}\n","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar vendorPrefix;\nvar jsCssMap = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n // IE did it wrong again ...\n ms: '-ms-',\n O: '-o-'\n};\n\nfunction getVendorPrefix() {\n if (vendorPrefix !== undefined) {\n return vendorPrefix;\n }\n\n vendorPrefix = '';\n var style = document.createElement('p').style;\n var testProp = 'Transform';\n\n for (var key in jsCssMap) {\n if (key + testProp in style) {\n vendorPrefix = key;\n }\n }\n\n return vendorPrefix;\n}\n\nfunction getTransitionName() {\n return getVendorPrefix() ? \"\".concat(getVendorPrefix(), \"TransitionProperty\") : 'transitionProperty';\n}\n\nfunction getTransformName() {\n return getVendorPrefix() ? \"\".concat(getVendorPrefix(), \"Transform\") : 'transform';\n}\nfunction setTransitionProperty(node, value) {\n var name = getTransitionName();\n\n if (name) {\n node.style[name] = value;\n\n if (name !== 'transitionProperty') {\n node.style.transitionProperty = value;\n }\n }\n}\n\nfunction setTransform(node, value) {\n var name = getTransformName();\n\n if (name) {\n node.style[name] = value;\n\n if (name !== 'transform') {\n node.style.transform = value;\n }\n }\n}\n\nfunction getTransitionProperty(node) {\n return node.style.transitionProperty || node.style[getTransitionName()];\n}\nfunction getTransformXY(node) {\n var style = window.getComputedStyle(node, null);\n var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());\n\n if (transform && transform !== 'none') {\n var matrix = transform.replace(/[^0-9\\-.,]/g, '').split(',');\n return {\n x: parseFloat(matrix[12] || matrix[4], 0),\n y: parseFloat(matrix[13] || matrix[5], 0)\n };\n }\n\n return {\n x: 0,\n y: 0\n };\n}\nvar matrix2d = /matrix\\((.*)\\)/;\nvar matrix3d = /matrix3d\\((.*)\\)/;\nfunction setTransformXY(node, xy) {\n var style = window.getComputedStyle(node, null);\n var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());\n\n if (transform && transform !== 'none') {\n var arr;\n var match2d = transform.match(matrix2d);\n\n if (match2d) {\n match2d = match2d[1];\n arr = match2d.split(',').map(function (item) {\n return parseFloat(item, 10);\n });\n arr[4] = xy.x;\n arr[5] = xy.y;\n setTransform(node, \"matrix(\".concat(arr.join(','), \")\"));\n } else {\n var match3d = transform.match(matrix3d)[1];\n arr = match3d.split(',').map(function (item) {\n return parseFloat(item, 10);\n });\n arr[12] = xy.x;\n arr[13] = xy.y;\n setTransform(node, \"matrix3d(\".concat(arr.join(','), \")\"));\n }\n } else {\n setTransform(node, \"translateX(\".concat(xy.x, \"px) translateY(\").concat(xy.y, \"px) translateZ(0)\"));\n }\n}\n\nvar RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\nvar getComputedStyleX; // https://stackoverflow.com/a/3485654/3040605\n\nfunction forceRelayout(elem) {\n var originalStyle = elem.style.display;\n elem.style.display = 'none';\n elem.offsetHeight; // eslint-disable-line\n\n elem.style.display = originalStyle;\n}\n\nfunction css(el, name, v) {\n var value = v;\n\n if (_typeof(name) === 'object') {\n for (var i in name) {\n if (name.hasOwnProperty(i)) {\n css(el, i, name[i]);\n }\n }\n\n return undefined;\n }\n\n if (typeof value !== 'undefined') {\n if (typeof value === 'number') {\n value = \"\".concat(value, \"px\");\n }\n\n el.style[name] = value;\n return undefined;\n }\n\n return getComputedStyleX(el, name);\n}\n\nfunction getClientPosition(elem) {\n var box;\n var x;\n var y;\n var doc = elem.ownerDocument;\n var body = doc.body;\n var docElem = doc && doc.documentElement; // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式\n\n box = elem.getBoundingClientRect(); // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop\n // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确\n // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin\n\n x = box.left;\n y = box.top; // In IE, most of the time, 2 extra pixels are added to the top and left\n // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and\n // IE6 standards mode, this border can be overridden by setting the\n // document element's border to zero -- thus, we cannot rely on the\n // offset always being 2 pixels.\n // In quirks mode, the offset can be determined by querying the body's\n // clientLeft/clientTop, but in standards mode, it is found by querying\n // the document element's clientLeft/clientTop. Since we already called\n // getClientBoundingRect we have already forced a reflow, so it is not\n // too expensive just to query them all.\n // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的\n // 窗口边框标准是设 documentElement ,quirks 时设置 body\n // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去\n // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置\n // 标准 ie 下 docElem.clientTop 就是 border-top\n // ie7 html 即窗口边框改变不了。永远为 2\n // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0\n\n x -= docElem.clientLeft || body.clientLeft || 0;\n y -= docElem.clientTop || body.clientTop || 0;\n return {\n left: x,\n top: y\n };\n}\n\nfunction getScroll(w, top) {\n var ret = w[\"page\".concat(top ? 'Y' : 'X', \"Offset\")];\n var method = \"scroll\".concat(top ? 'Top' : 'Left');\n\n if (typeof ret !== 'number') {\n var d = w.document; // ie6,7,8 standard mode\n\n ret = d.documentElement[method];\n\n if (typeof ret !== 'number') {\n // quirks mode\n ret = d.body[method];\n }\n }\n\n return ret;\n}\n\nfunction getScrollLeft(w) {\n return getScroll(w);\n}\n\nfunction getScrollTop(w) {\n return getScroll(w, true);\n}\n\nfunction getOffset(el) {\n var pos = getClientPosition(el);\n var doc = el.ownerDocument;\n var w = doc.defaultView || doc.parentWindow;\n pos.left += getScrollLeft(w);\n pos.top += getScrollTop(w);\n return pos;\n}\n/**\n * A crude way of determining if an object is a window\n * @member util\n */\n\n\nfunction isWindow(obj) {\n // must use == for ie8\n\n /* eslint eqeqeq:0 */\n return obj !== null && obj !== undefined && obj == obj.window;\n}\n\nfunction getDocument(node) {\n if (isWindow(node)) {\n return node.document;\n }\n\n if (node.nodeType === 9) {\n return node;\n }\n\n return node.ownerDocument;\n}\n\nfunction _getComputedStyle(elem, name, cs) {\n var computedStyle = cs;\n var val = '';\n var d = getDocument(elem);\n computedStyle = computedStyle || d.defaultView.getComputedStyle(elem, null); // https://github.com/kissyteam/kissy/issues/61\n\n if (computedStyle) {\n val = computedStyle.getPropertyValue(name) || computedStyle[name];\n }\n\n return val;\n}\n\nvar _RE_NUM_NO_PX = new RegExp(\"^(\".concat(RE_NUM, \")(?!px)[a-z%]+$\"), 'i');\n\nvar RE_POS = /^(top|right|bottom|left)$/;\nvar CURRENT_STYLE = 'currentStyle';\nvar RUNTIME_STYLE = 'runtimeStyle';\nvar LEFT = 'left';\nvar PX = 'px';\n\nfunction _getComputedStyleIE(elem, name) {\n // currentStyle maybe null\n // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name]; // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值\n // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n // 在 ie 下不对,需要直接用 offset 方式\n // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了\n // From the awesome hack by Dean Edwards\n // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n // If we're not dealing with a regular pixel number\n // but a number that has a weird ending, we need to convert it to pixels\n // exclude left right for relativity\n\n if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n // Remember the original values\n var style = elem.style;\n var left = style[LEFT];\n var rsLeft = elem[RUNTIME_STYLE][LEFT]; // prevent flashing of content\n\n elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT]; // Put in the new values to get a computed value out\n\n style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;\n ret = style.pixelLeft + PX; // Revert the changed values\n\n style[LEFT] = left;\n elem[RUNTIME_STYLE][LEFT] = rsLeft;\n }\n\n return ret === '' ? 'auto' : ret;\n}\n\nif (typeof window !== 'undefined') {\n getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;\n}\n\nfunction getOffsetDirection(dir, option) {\n if (dir === 'left') {\n return option.useCssRight ? 'right' : dir;\n }\n\n return option.useCssBottom ? 'bottom' : dir;\n}\n\nfunction oppositeOffsetDirection(dir) {\n if (dir === 'left') {\n return 'right';\n } else if (dir === 'right') {\n return 'left';\n } else if (dir === 'top') {\n return 'bottom';\n } else if (dir === 'bottom') {\n return 'top';\n }\n} // 设置 elem 相对 elem.ownerDocument 的坐标\n\n\nfunction setLeftTop(elem, offset, option) {\n // set position first, in-case top/left are set even on static elem\n if (css(elem, 'position') === 'static') {\n elem.style.position = 'relative';\n }\n\n var presetH = -999;\n var presetV = -999;\n var horizontalProperty = getOffsetDirection('left', option);\n var verticalProperty = getOffsetDirection('top', option);\n var oppositeHorizontalProperty = oppositeOffsetDirection(horizontalProperty);\n var oppositeVerticalProperty = oppositeOffsetDirection(verticalProperty);\n\n if (horizontalProperty !== 'left') {\n presetH = 999;\n }\n\n if (verticalProperty !== 'top') {\n presetV = 999;\n }\n\n var originalTransition = '';\n var originalOffset = getOffset(elem);\n\n if ('left' in offset || 'top' in offset) {\n originalTransition = getTransitionProperty(elem) || '';\n setTransitionProperty(elem, 'none');\n }\n\n if ('left' in offset) {\n elem.style[oppositeHorizontalProperty] = '';\n elem.style[horizontalProperty] = \"\".concat(presetH, \"px\");\n }\n\n if ('top' in offset) {\n elem.style[oppositeVerticalProperty] = '';\n elem.style[verticalProperty] = \"\".concat(presetV, \"px\");\n } // force relayout\n\n\n forceRelayout(elem);\n var old = getOffset(elem);\n var originalStyle = {};\n\n for (var key in offset) {\n if (offset.hasOwnProperty(key)) {\n var dir = getOffsetDirection(key, option);\n var preset = key === 'left' ? presetH : presetV;\n var off = originalOffset[key] - old[key];\n\n if (dir === key) {\n originalStyle[dir] = preset + off;\n } else {\n originalStyle[dir] = preset - off;\n }\n }\n }\n\n css(elem, originalStyle); // force relayout\n\n forceRelayout(elem);\n\n if ('left' in offset || 'top' in offset) {\n setTransitionProperty(elem, originalTransition);\n }\n\n var ret = {};\n\n for (var _key in offset) {\n if (offset.hasOwnProperty(_key)) {\n var _dir = getOffsetDirection(_key, option);\n\n var _off = offset[_key] - originalOffset[_key];\n\n if (_key === _dir) {\n ret[_dir] = originalStyle[_dir] + _off;\n } else {\n ret[_dir] = originalStyle[_dir] - _off;\n }\n }\n }\n\n css(elem, ret);\n}\n\nfunction setTransform$1(elem, offset) {\n var originalOffset = getOffset(elem);\n var originalXY = getTransformXY(elem);\n var resultXY = {\n x: originalXY.x,\n y: originalXY.y\n };\n\n if ('left' in offset) {\n resultXY.x = originalXY.x + offset.left - originalOffset.left;\n }\n\n if ('top' in offset) {\n resultXY.y = originalXY.y + offset.top - originalOffset.top;\n }\n\n setTransformXY(elem, resultXY);\n}\n\nfunction setOffset(elem, offset, option) {\n if (option.ignoreShake) {\n var oriOffset = getOffset(elem);\n var oLeft = oriOffset.left.toFixed(0);\n var oTop = oriOffset.top.toFixed(0);\n var tLeft = offset.left.toFixed(0);\n var tTop = offset.top.toFixed(0);\n\n if (oLeft === tLeft && oTop === tTop) {\n return;\n }\n }\n\n if (option.useCssRight || option.useCssBottom) {\n setLeftTop(elem, offset, option);\n } else if (option.useCssTransform && getTransformName() in document.body.style) {\n setTransform$1(elem, offset);\n } else {\n setLeftTop(elem, offset, option);\n }\n}\n\nfunction each(arr, fn) {\n for (var i = 0; i < arr.length; i++) {\n fn(arr[i]);\n }\n}\n\nfunction isBorderBoxFn(elem) {\n return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\n\nvar BOX_MODELS = ['margin', 'border', 'padding'];\nvar CONTENT_INDEX = -1;\nvar PADDING_INDEX = 2;\nvar BORDER_INDEX = 1;\nvar MARGIN_INDEX = 0;\n\nfunction swap(elem, options, callback) {\n var old = {};\n var style = elem.style;\n var name; // Remember the old values, and insert the new ones\n\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n old[name] = style[name];\n style[name] = options[name];\n }\n }\n\n callback.call(elem); // Revert the old values\n\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n style[name] = old[name];\n }\n }\n}\n\nfunction getPBMWidth(elem, props, which) {\n var value = 0;\n var prop;\n var j;\n var i;\n\n for (j = 0; j < props.length; j++) {\n prop = props[j];\n\n if (prop) {\n for (i = 0; i < which.length; i++) {\n var cssProp = void 0;\n\n if (prop === 'border') {\n cssProp = \"\".concat(prop).concat(which[i], \"Width\");\n } else {\n cssProp = prop + which[i];\n }\n\n value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;\n }\n }\n }\n\n return value;\n}\n\nvar domUtils = {\n getParent: function getParent(element) {\n var parent = element;\n\n do {\n if (parent.nodeType === 11 && parent.host) {\n parent = parent.host;\n } else {\n parent = parent.parentNode;\n }\n } while (parent && parent.nodeType !== 1 && parent.nodeType !== 9);\n\n return parent;\n }\n};\neach(['Width', 'Height'], function (name) {\n domUtils[\"doc\".concat(name)] = function (refWin) {\n var d = refWin.document;\n return Math.max( // firefox chrome documentElement.scrollHeight< body.scrollHeight\n // ie standard mode : documentElement.scrollHeight> body.scrollHeight\n d.documentElement[\"scroll\".concat(name)], // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?\n d.body[\"scroll\".concat(name)], domUtils[\"viewport\".concat(name)](d));\n };\n\n domUtils[\"viewport\".concat(name)] = function (win) {\n // pc browser includes scrollbar in window.innerWidth\n var prop = \"client\".concat(name);\n var doc = win.document;\n var body = doc.body;\n var documentElement = doc.documentElement;\n var documentElementProp = documentElement[prop]; // 标准模式取 documentElement\n // backcompat 取 body\n\n return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;\n };\n});\n/*\n 得到元素的大小信息\n @param elem\n @param name\n @param {String} [extra] 'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\n\nfunction getWH(elem, name, ex) {\n var extra = ex;\n\n if (isWindow(elem)) {\n return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);\n } else if (elem.nodeType === 9) {\n return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);\n }\n\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n var borderBoxValue = name === 'width' ? elem.getBoundingClientRect().width : elem.getBoundingClientRect().height;\n var isBorderBox = isBorderBoxFn(elem);\n var cssBoxValue = 0;\n\n if (borderBoxValue === null || borderBoxValue === undefined || borderBoxValue <= 0) {\n borderBoxValue = undefined; // Fall back to computed then un computed css if necessary\n\n cssBoxValue = getComputedStyleX(elem, name);\n\n if (cssBoxValue === null || cssBoxValue === undefined || Number(cssBoxValue) < 0) {\n cssBoxValue = elem.style[name] || 0;\n } // Normalize '', auto, and prepare for extra\n\n\n cssBoxValue = parseFloat(cssBoxValue) || 0;\n }\n\n if (extra === undefined) {\n extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n }\n\n var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;\n var val = borderBoxValue || cssBoxValue;\n\n if (extra === CONTENT_INDEX) {\n if (borderBoxValueOrIsBorderBox) {\n return val - getPBMWidth(elem, ['border', 'padding'], which);\n }\n\n return cssBoxValue;\n } else if (borderBoxValueOrIsBorderBox) {\n if (extra === BORDER_INDEX) {\n return val;\n }\n\n return val + (extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which) : getPBMWidth(elem, ['margin'], which));\n }\n\n return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which);\n}\n\nvar cssShow = {\n position: 'absolute',\n visibility: 'hidden',\n display: 'block'\n}; // fix #119 : https://github.com/kissyteam/kissy/issues/119\n\nfunction getWHIgnoreDisplay() {\n for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var val;\n var elem = args[0]; // in case elem is window\n // elem.offsetWidth === undefined\n\n if (elem.offsetWidth !== 0) {\n val = getWH.apply(undefined, args);\n } else {\n swap(elem, cssShow, function () {\n val = getWH.apply(undefined, args);\n });\n }\n\n return val;\n}\n\neach(['width', 'height'], function (name) {\n var first = name.charAt(0).toUpperCase() + name.slice(1);\n\n domUtils[\"outer\".concat(first)] = function (el, includeMargin) {\n return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);\n };\n\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n\n domUtils[name] = function (elem, v) {\n var val = v;\n\n if (val !== undefined) {\n if (elem) {\n var isBorderBox = isBorderBoxFn(elem);\n\n if (isBorderBox) {\n val += getPBMWidth(elem, ['padding', 'border'], which);\n }\n\n return css(elem, name, val);\n }\n\n return undefined;\n }\n\n return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n };\n});\n\nfunction mix(to, from) {\n for (var i in from) {\n if (from.hasOwnProperty(i)) {\n to[i] = from[i];\n }\n }\n\n return to;\n}\n\nvar utils = {\n getWindow: function getWindow(node) {\n if (node && node.document && node.setTimeout) {\n return node;\n }\n\n var doc = node.ownerDocument || node;\n return doc.defaultView || doc.parentWindow;\n },\n getDocument: getDocument,\n offset: function offset(el, value, option) {\n if (typeof value !== 'undefined') {\n setOffset(el, value, option || {});\n } else {\n return getOffset(el);\n }\n },\n isWindow: isWindow,\n each: each,\n css: css,\n clone: function clone(obj) {\n var i;\n var ret = {};\n\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret[i] = obj[i];\n }\n }\n\n var overflow = obj.overflow;\n\n if (overflow) {\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret.overflow[i] = obj.overflow[i];\n }\n }\n }\n\n return ret;\n },\n mix: mix,\n getWindowScrollLeft: function getWindowScrollLeft(w) {\n return getScrollLeft(w);\n },\n getWindowScrollTop: function getWindowScrollTop(w) {\n return getScrollTop(w);\n },\n merge: function merge() {\n var ret = {};\n\n for (var i = 0; i < arguments.length; i++) {\n utils.mix(ret, i < 0 || arguments.length <= i ? undefined : arguments[i]);\n }\n\n return ret;\n },\n viewportWidth: 0,\n viewportHeight: 0\n};\nmix(utils, domUtils);\n\n/**\n * 得到会导致元素显示不全的祖先元素\n */\n\nvar getParent = utils.getParent;\n\nfunction getOffsetParent(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return null;\n } // ie 这个也不是完全可行\n\n /*\n
\n
\n 元素 6 高 100px 宽 50px
\n
\n
\n */\n // element.offsetParent does the right thing in ie7 and below. Return parent with layout!\n // In other browsers it only includes elements with position absolute, relative or\n // fixed, not elements with overflow set to auto or scroll.\n // if (UA.ie && ieMode < 8) {\n // return element.offsetParent;\n // }\n // 统一的 offsetParent 方法\n\n\n var doc = utils.getDocument(element);\n var body = doc.body;\n var parent;\n var positionStyle = utils.css(element, 'position');\n var skipStatic = positionStyle === 'fixed' || positionStyle === 'absolute';\n\n if (!skipStatic) {\n return element.nodeName.toLowerCase() === 'html' ? null : getParent(element);\n }\n\n for (parent = getParent(element); parent && parent !== body && parent.nodeType !== 9; parent = getParent(parent)) {\n positionStyle = utils.css(parent, 'position');\n\n if (positionStyle !== 'static') {\n return parent;\n }\n }\n\n return null;\n}\n\nvar getParent$1 = utils.getParent;\nfunction isAncestorFixed(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return false;\n }\n\n var doc = utils.getDocument(element);\n var body = doc.body;\n var parent = null;\n\n for (parent = getParent$1(element); // 修复元素位于 document.documentElement 下导致崩溃问题\n parent && parent !== body && parent !== doc; parent = getParent$1(parent)) {\n var positionStyle = utils.css(parent, 'position');\n\n if (positionStyle === 'fixed') {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * 获得元素的显示部分的区域\n */\n\nfunction getVisibleRectForElement(element, alwaysByViewport) {\n var visibleRect = {\n left: 0,\n right: Infinity,\n top: 0,\n bottom: Infinity\n };\n var el = getOffsetParent(element);\n var doc = utils.getDocument(element);\n var win = doc.defaultView || doc.parentWindow;\n var body = doc.body;\n var documentElement = doc.documentElement; // Determine the size of the visible rect by climbing the dom accounting for\n // all scrollable containers.\n\n while (el) {\n // clientWidth is zero for inline block elements in ie.\n if ((navigator.userAgent.indexOf('MSIE') === -1 || el.clientWidth !== 0) && // body may have overflow set on it, yet we still get the entire\n // viewport. In some browsers, el.offsetParent may be\n // document.documentElement, so check for that too.\n el !== body && el !== documentElement && utils.css(el, 'overflow') !== 'visible') {\n var pos = utils.offset(el); // add border\n\n pos.left += el.clientLeft;\n pos.top += el.clientTop;\n visibleRect.top = Math.max(visibleRect.top, pos.top);\n visibleRect.right = Math.min(visibleRect.right, // consider area without scrollBar\n pos.left + el.clientWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, pos.top + el.clientHeight);\n visibleRect.left = Math.max(visibleRect.left, pos.left);\n } else if (el === body || el === documentElement) {\n break;\n }\n\n el = getOffsetParent(el);\n } // Set element position to fixed\n // make sure absolute element itself don't affect it's visible area\n // https://github.com/ant-design/ant-design/issues/7601\n\n\n var originalPosition = null;\n\n if (!utils.isWindow(element) && element.nodeType !== 9) {\n originalPosition = element.style.position;\n var position = utils.css(element, 'position');\n\n if (position === 'absolute') {\n element.style.position = 'fixed';\n }\n }\n\n var scrollX = utils.getWindowScrollLeft(win);\n var scrollY = utils.getWindowScrollTop(win);\n var viewportWidth = utils.viewportWidth(win);\n var viewportHeight = utils.viewportHeight(win);\n var documentWidth = documentElement.scrollWidth;\n var documentHeight = documentElement.scrollHeight; // scrollXXX on html is sync with body which means overflow: hidden on body gets wrong scrollXXX.\n // We should cut this ourself.\n\n var bodyStyle = window.getComputedStyle(body);\n\n if (bodyStyle.overflowX === 'hidden') {\n documentWidth = win.innerWidth;\n }\n\n if (bodyStyle.overflowY === 'hidden') {\n documentHeight = win.innerHeight;\n } // Reset element position after calculate the visible area\n\n\n if (element.style) {\n element.style.position = originalPosition;\n }\n\n if (alwaysByViewport || isAncestorFixed(element)) {\n // Clip by viewport's size.\n visibleRect.left = Math.max(visibleRect.left, scrollX);\n visibleRect.top = Math.max(visibleRect.top, scrollY);\n visibleRect.right = Math.min(visibleRect.right, scrollX + viewportWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + viewportHeight);\n } else {\n // Clip by document's size.\n var maxVisibleWidth = Math.max(documentWidth, scrollX + viewportWidth);\n visibleRect.right = Math.min(visibleRect.right, maxVisibleWidth);\n var maxVisibleHeight = Math.max(documentHeight, scrollY + viewportHeight);\n visibleRect.bottom = Math.min(visibleRect.bottom, maxVisibleHeight);\n }\n\n return visibleRect.top >= 0 && visibleRect.left >= 0 && visibleRect.bottom > visibleRect.top && visibleRect.right > visibleRect.left ? visibleRect : null;\n}\n\nfunction adjustForViewport(elFuturePos, elRegion, visibleRect, overflow) {\n var pos = utils.clone(elFuturePos);\n var size = {\n width: elRegion.width,\n height: elRegion.height\n };\n\n if (overflow.adjustX && pos.left < visibleRect.left) {\n pos.left = visibleRect.left;\n } // Left edge inside and right edge outside viewport, try to resize it.\n\n\n if (overflow.resizeWidth && pos.left >= visibleRect.left && pos.left + size.width > visibleRect.right) {\n size.width -= pos.left + size.width - visibleRect.right;\n } // Right edge outside viewport, try to move it.\n\n\n if (overflow.adjustX && pos.left + size.width > visibleRect.right) {\n // 保证左边界和可视区域左边界对齐\n pos.left = Math.max(visibleRect.right - size.width, visibleRect.left);\n } // Top edge outside viewport, try to move it.\n\n\n if (overflow.adjustY && pos.top < visibleRect.top) {\n pos.top = visibleRect.top;\n } // Top edge inside and bottom edge outside viewport, try to resize it.\n\n\n if (overflow.resizeHeight && pos.top >= visibleRect.top && pos.top + size.height > visibleRect.bottom) {\n size.height -= pos.top + size.height - visibleRect.bottom;\n } // Bottom edge outside viewport, try to move it.\n\n\n if (overflow.adjustY && pos.top + size.height > visibleRect.bottom) {\n // 保证上边界和可视区域上边界对齐\n pos.top = Math.max(visibleRect.bottom - size.height, visibleRect.top);\n }\n\n return utils.mix(pos, size);\n}\n\nfunction getRegion(node) {\n var offset;\n var w;\n var h;\n\n if (!utils.isWindow(node) && node.nodeType !== 9) {\n offset = utils.offset(node);\n w = utils.outerWidth(node);\n h = utils.outerHeight(node);\n } else {\n var win = utils.getWindow(node);\n offset = {\n left: utils.getWindowScrollLeft(win),\n top: utils.getWindowScrollTop(win)\n };\n w = utils.viewportWidth(win);\n h = utils.viewportHeight(win);\n }\n\n offset.width = w;\n offset.height = h;\n return offset;\n}\n\n/**\n * 获取 node 上的 align 对齐点 相对于页面的坐标\n */\nfunction getAlignOffset(region, align) {\n var V = align.charAt(0);\n var H = align.charAt(1);\n var w = region.width;\n var h = region.height;\n var x = region.left;\n var y = region.top;\n\n if (V === 'c') {\n y += h / 2;\n } else if (V === 'b') {\n y += h;\n }\n\n if (H === 'c') {\n x += w / 2;\n } else if (H === 'r') {\n x += w;\n }\n\n return {\n left: x,\n top: y\n };\n}\n\nfunction getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset) {\n var p1 = getAlignOffset(refNodeRegion, points[1]);\n var p2 = getAlignOffset(elRegion, points[0]);\n var diff = [p2.left - p1.left, p2.top - p1.top];\n return {\n left: Math.round(elRegion.left - diff[0] + offset[0] - targetOffset[0]),\n top: Math.round(elRegion.top - diff[1] + offset[1] - targetOffset[1])\n };\n}\n\n/**\n * align dom node flexibly\n * @author yiminghe@gmail.com\n */\n\nfunction isFailX(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.left < visibleRect.left || elFuturePos.left + elRegion.width > visibleRect.right;\n}\n\nfunction isFailY(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.top < visibleRect.top || elFuturePos.top + elRegion.height > visibleRect.bottom;\n}\n\nfunction isCompleteFailX(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.left > visibleRect.right || elFuturePos.left + elRegion.width < visibleRect.left;\n}\n\nfunction isCompleteFailY(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.top > visibleRect.bottom || elFuturePos.top + elRegion.height < visibleRect.top;\n}\n\nfunction flip(points, reg, map) {\n var ret = [];\n utils.each(points, function (p) {\n ret.push(p.replace(reg, function (m) {\n return map[m];\n }));\n });\n return ret;\n}\n\nfunction flipOffset(offset, index) {\n offset[index] = -offset[index];\n return offset;\n}\n\nfunction convertOffset(str, offsetLen) {\n var n;\n\n if (/%$/.test(str)) {\n n = parseInt(str.substring(0, str.length - 1), 10) / 100 * offsetLen;\n } else {\n n = parseInt(str, 10);\n }\n\n return n || 0;\n}\n\nfunction normalizeOffset(offset, el) {\n offset[0] = convertOffset(offset[0], el.width);\n offset[1] = convertOffset(offset[1], el.height);\n}\n/**\n * @param el\n * @param tgtRegion 参照节点所占的区域: { left, top, width, height }\n * @param align\n */\n\n\nfunction doAlign(el, tgtRegion, align, isTgtRegionVisible) {\n var points = align.points;\n var offset = align.offset || [0, 0];\n var targetOffset = align.targetOffset || [0, 0];\n var overflow = align.overflow;\n var source = align.source || el;\n offset = [].concat(offset);\n targetOffset = [].concat(targetOffset);\n overflow = overflow || {};\n var newOverflowCfg = {};\n var fail = 0;\n var alwaysByViewport = !!(overflow && overflow.alwaysByViewport); // 当前节点可以被放置的显示区域\n\n var visibleRect = getVisibleRectForElement(source, alwaysByViewport); // 当前节点所占的区域, left/top/width/height\n\n var elRegion = getRegion(source); // 将 offset 转换成数值,支持百分比\n\n normalizeOffset(offset, elRegion);\n normalizeOffset(targetOffset, tgtRegion); // 当前节点将要被放置的位置\n\n var elFuturePos = getElFuturePos(elRegion, tgtRegion, points, offset, targetOffset); // 当前节点将要所处的区域\n\n var newElRegion = utils.merge(elRegion, elFuturePos); // 如果可视区域不能完全放置当前节点时允许调整\n\n if (visibleRect && (overflow.adjustX || overflow.adjustY) && isTgtRegionVisible) {\n if (overflow.adjustX) {\n // 如果横向不能放下\n if (isFailX(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n var newPoints = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l'\n }); // 偏移量也反下\n\n var newOffset = flipOffset(offset, 0);\n var newTargetOffset = flipOffset(targetOffset, 0);\n var newElFuturePos = getElFuturePos(elRegion, tgtRegion, newPoints, newOffset, newTargetOffset);\n\n if (!isCompleteFailX(newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = newPoints;\n offset = newOffset;\n targetOffset = newTargetOffset;\n }\n }\n }\n\n if (overflow.adjustY) {\n // 如果纵向不能放下\n if (isFailY(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n var _newPoints = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't'\n }); // 偏移量也反下\n\n\n var _newOffset = flipOffset(offset, 1);\n\n var _newTargetOffset = flipOffset(targetOffset, 1);\n\n var _newElFuturePos = getElFuturePos(elRegion, tgtRegion, _newPoints, _newOffset, _newTargetOffset);\n\n if (!isCompleteFailY(_newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = _newPoints;\n offset = _newOffset;\n targetOffset = _newTargetOffset;\n }\n }\n } // 如果失败,重新计算当前节点将要被放置的位置\n\n\n if (fail) {\n elFuturePos = getElFuturePos(elRegion, tgtRegion, points, offset, targetOffset);\n utils.mix(newElRegion, elFuturePos);\n }\n\n var isStillFailX = isFailX(elFuturePos, elRegion, visibleRect);\n var isStillFailY = isFailY(elFuturePos, elRegion, visibleRect); // 检查反下后的位置是否可以放下了,如果仍然放不下:\n // 1. 复原修改过的定位参数\n\n if (isStillFailX || isStillFailY) {\n var _newPoints2 = points; // 重置对应部分的翻转逻辑\n\n if (isStillFailX) {\n _newPoints2 = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l'\n });\n }\n\n if (isStillFailY) {\n _newPoints2 = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't'\n });\n }\n\n points = _newPoints2;\n offset = align.offset || [0, 0];\n targetOffset = align.targetOffset || [0, 0];\n } // 2. 只有指定了可以调整当前方向才调整\n\n\n newOverflowCfg.adjustX = overflow.adjustX && isStillFailX;\n newOverflowCfg.adjustY = overflow.adjustY && isStillFailY; // 确实要调整,甚至可能会调整高度宽度\n\n if (newOverflowCfg.adjustX || newOverflowCfg.adjustY) {\n newElRegion = adjustForViewport(elFuturePos, elRegion, visibleRect, newOverflowCfg);\n }\n } // need judge to in case set fixed with in css on height auto element\n\n\n if (newElRegion.width !== elRegion.width) {\n utils.css(source, 'width', utils.width(source) + newElRegion.width - elRegion.width);\n }\n\n if (newElRegion.height !== elRegion.height) {\n utils.css(source, 'height', utils.height(source) + newElRegion.height - elRegion.height);\n } // https://github.com/kissyteam/kissy/issues/190\n // 相对于屏幕位置没变,而 left/top 变了\n // 例如
\n\n\n utils.offset(source, {\n left: newElRegion.left,\n top: newElRegion.top\n }, {\n useCssRight: align.useCssRight,\n useCssBottom: align.useCssBottom,\n useCssTransform: align.useCssTransform,\n ignoreShake: align.ignoreShake\n });\n return {\n points: points,\n offset: offset,\n targetOffset: targetOffset,\n overflow: newOverflowCfg\n };\n}\n/**\n * 2012-04-26 yiminghe@gmail.com\n * - 优化智能对齐算法\n * - 慎用 resizeXX\n *\n * 2011-07-13 yiminghe@gmail.com note:\n * - 增加智能对齐,以及大小调整选项\n **/\n\nfunction isOutOfVisibleRect(target, alwaysByViewport) {\n var visibleRect = getVisibleRectForElement(target, alwaysByViewport);\n var targetRegion = getRegion(target);\n return !visibleRect || targetRegion.left + targetRegion.width <= visibleRect.left || targetRegion.top + targetRegion.height <= visibleRect.top || targetRegion.left >= visibleRect.right || targetRegion.top >= visibleRect.bottom;\n}\n\nfunction alignElement(el, refNode, align) {\n var target = align.target || refNode;\n var refNodeRegion = getRegion(target);\n var isTargetNotOutOfVisible = !isOutOfVisibleRect(target, align.overflow && align.overflow.alwaysByViewport);\n return doAlign(el, refNodeRegion, align, isTargetNotOutOfVisible);\n}\n\nalignElement.__getOffsetParent = getOffsetParent;\nalignElement.__getVisibleRectForElement = getVisibleRectForElement;\n\n/**\n * `tgtPoint`: { pageX, pageY } or { clientX, clientY }.\n * If client position provided, will internal convert to page position.\n */\n\nfunction alignPoint(el, tgtPoint, align) {\n var pageX;\n var pageY;\n var doc = utils.getDocument(el);\n var win = doc.defaultView || doc.parentWindow;\n var scrollX = utils.getWindowScrollLeft(win);\n var scrollY = utils.getWindowScrollTop(win);\n var viewportWidth = utils.viewportWidth(win);\n var viewportHeight = utils.viewportHeight(win);\n\n if ('pageX' in tgtPoint) {\n pageX = tgtPoint.pageX;\n } else {\n pageX = scrollX + tgtPoint.clientX;\n }\n\n if ('pageY' in tgtPoint) {\n pageY = tgtPoint.pageY;\n } else {\n pageY = scrollY + tgtPoint.clientY;\n }\n\n var tgtRegion = {\n left: pageX,\n top: pageY,\n width: 0,\n height: 0\n };\n var pointInView = pageX >= 0 && pageX <= scrollX + viewportWidth && pageY >= 0 && pageY <= scrollY + viewportHeight; // Provide default target point\n\n var points = [align.points[0], 'cc'];\n return doAlign(el, tgtRegion, _objectSpread2(_objectSpread2({}, align), {}, {\n points: points\n }), pointInView);\n}\n\nexport default alignElement;\nexport { alignElement, alignPoint };\n//# sourceMappingURL=index.js.map\n","'use strict'\nvar inherits = require('inherits')\nvar MD5 = require('md5.js')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Base = require('cipher-base')\n\nfunction Hash (hash) {\n Base.call(this, 'digest')\n\n this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n alg = alg.toLowerCase()\n if (alg === 'md5') return new MD5()\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n return new Hash(sha(alg))\n}\n","'use strict'\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar Base = require('cipher-base')\n\nvar ZEROS = Buffer.alloc(128)\nvar blocksize = 64\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n this._alg = alg\n this._key = key\n\n if (key.length > blocksize) {\n key = alg(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n this._hash = [ipad]\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.push(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._alg(Buffer.concat(this._hash))\n return this._alg(Buffer.concat([this._opad, h]))\n}\nmodule.exports = Hmac\n","var elliptic = require('elliptic')\nvar BN = require('bn.js')\n\nmodule.exports = function createECDH (curve) {\n return new ECDH(curve)\n}\n\nvar aliases = {\n secp256k1: {\n name: 'secp256k1',\n byteLength: 32\n },\n secp224r1: {\n name: 'p224',\n byteLength: 28\n },\n prime256v1: {\n name: 'p256',\n byteLength: 32\n },\n prime192v1: {\n name: 'p192',\n byteLength: 24\n },\n ed25519: {\n name: 'ed25519',\n byteLength: 32\n },\n secp384r1: {\n name: 'p384',\n byteLength: 48\n },\n secp521r1: {\n name: 'p521',\n byteLength: 66\n }\n}\n\naliases.p224 = aliases.secp224r1\naliases.p256 = aliases.secp256r1 = aliases.prime256v1\naliases.p192 = aliases.secp192r1 = aliases.prime192v1\naliases.p384 = aliases.secp384r1\naliases.p521 = aliases.secp521r1\n\nfunction ECDH (curve) {\n this.curveType = aliases[curve]\n if (!this.curveType) {\n this.curveType = {\n name: curve\n }\n }\n this.curve = new elliptic.ec(this.curveType.name) // eslint-disable-line new-cap\n this.keys = void 0\n}\n\nECDH.prototype.generateKeys = function (enc, format) {\n this.keys = this.curve.genKeyPair()\n return this.getPublicKey(enc, format)\n}\n\nECDH.prototype.computeSecret = function (other, inenc, enc) {\n inenc = inenc || 'utf8'\n if (!Buffer.isBuffer(other)) {\n other = new Buffer(other, inenc)\n }\n var otherPub = this.curve.keyFromPublic(other).getPublic()\n var out = otherPub.mul(this.keys.getPrivate()).getX()\n return formatReturnValue(out, enc, this.curveType.byteLength)\n}\n\nECDH.prototype.getPublicKey = function (enc, format) {\n var key = this.keys.getPublic(format === 'compressed', true)\n if (format === 'hybrid') {\n if (key[key.length - 1] % 2) {\n key[0] = 7\n } else {\n key[0] = 6\n }\n }\n return formatReturnValue(key, enc)\n}\n\nECDH.prototype.getPrivateKey = function (enc) {\n return formatReturnValue(this.keys.getPrivate(), enc)\n}\n\nECDH.prototype.setPublicKey = function (pub, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc)\n }\n this.keys._importPublic(pub)\n return this\n}\n\nECDH.prototype.setPrivateKey = function (priv, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc)\n }\n\n var _priv = new BN(priv)\n _priv = _priv.toString(16)\n this.keys = this.curve.genKeyPair()\n this.keys._importPrivate(_priv)\n return this\n}\n\nfunction formatReturnValue (bn, enc, len) {\n if (!Array.isArray(bn)) {\n bn = bn.toArray()\n }\n var buf = new Buffer(bn)\n if (len && buf.length < len) {\n var zeros = new Buffer(len - buf.length)\n zeros.fill(0)\n buf = Buffer.concat([zeros, buf])\n }\n if (!enc) {\n return buf\n } else {\n return buf.toString(enc)\n }\n}\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn decodeURIComponent(components.join(''));\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher);\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher);\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n"],"sourceRoot":""}