{"version":3,"sources":["../node_modules/inherits/inherits_browser.js","../node_modules/safe-buffer/index.js","../node_modules/react/jsx-runtime.js","../node_modules/process/browser.js","../node_modules/buffer/index.js","../node_modules/webpack/buildin/global.js","../node_modules/minimalistic-assert/index.js","../node_modules/elliptic/lib/elliptic/utils.js","../node_modules/hash.js/lib/hash/utils.js","../node_modules/react/index.js","../node_modules/elliptic/node_modules/bn.js/lib/bn.js","../node_modules/webpack/buildin/module.js","../node_modules/cipher-base/index.js","../node_modules/events/events.js","../node_modules/string_decoder/lib/string_decoder.js","../node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/randombytes/browser.js","../node_modules/hash-base/node_modules/readable-stream/errors-browser.js","../node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/sha.js/hash.js","../node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/create-hash/browser.js","../node_modules/core-util-is/lib/util.js","../node_modules/buffer-xor/index.js","../node_modules/hash.js/lib/hash/common.js","../node_modules/asn1.js/lib/asn1/base/buffer.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/process-nextick-args/index.js","../node_modules/browserify-aes/aes.js","../node_modules/evp_bytestokey/index.js","../node_modules/elliptic/lib/elliptic/curve/base.js","../node_modules/parse-asn1/index.js","../node_modules/object-assign/index.js","../node_modules/md5.js/index.js","../node_modules/util-deprecate/browser.js","../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","../node_modules/ripemd160/index.js","../node_modules/sha.js/index.js","../node_modules/readable-stream/readable-browser.js","../node_modules/readable-stream/lib/_stream_writable.js","../node_modules/des.js/lib/des/cipher.js","../node_modules/browserify-aes/browser.js","../node_modules/browserify-aes/modes/index.js","../node_modules/brorand/index.js","../node_modules/browserify-sign/node_modules/safe-buffer/index.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","../node_modules/browserify-rsa/index.js","../node_modules/bn.js/lib/bn.js","../node_modules/elliptic/lib/elliptic.js","../node_modules/elliptic/lib/elliptic/curves.js","../node_modules/hash.js/lib/hash.js","../node_modules/safer-buffer/safer.js","../node_modules/asn1.js/lib/asn1/base/node.js","../node_modules/asn1.js/lib/asn1/base/reporter.js","../node_modules/asn1.js/lib/asn1/constants/der.js","../node_modules/public-encrypt/node_modules/bn.js/lib/bn.js","../node_modules/@babel/runtime/regenerator/index.js","../node_modules/isarray/index.js","../node_modules/path-browserify/index.js","../node_modules/hash-base/index.js","../node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js","../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/stream-browser.js","../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/state.js","../node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js","../node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js","../node_modules/sha.js/sha256.js","../node_modules/sha.js/sha512.js","../node_modules/readable-stream/lib/_stream_readable.js","../node_modules/readable-stream/lib/internal/streams/stream-browser.js","../node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/readable-stream/lib/_stream_transform.js","../node_modules/create-hmac/browser.js","../node_modules/create-hash/md5.js","../node_modules/pbkdf2/browser.js","../node_modules/pbkdf2/lib/precondition.js","../node_modules/pbkdf2/lib/default-encoding.js","../node_modules/pbkdf2/lib/sync-browser.js","../node_modules/pbkdf2/lib/to-buffer.js","../node_modules/des.js/lib/des/utils.js","../node_modules/des.js/lib/des/des.js","../node_modules/browserify-aes/modes/ctr.js","../node_modules/browserify-aes/incr32.js","../node_modules/browserify-aes/authCipher.js","../node_modules/browserify-aes/streamCipher.js","../node_modules/diffie-hellman/lib/generatePrime.js","../node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js","../node_modules/miller-rabin/lib/mr.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js","../node_modules/minimalistic-crypto-utils/lib/utils.js","../node_modules/elliptic/lib/elliptic/curve/index.js","../node_modules/hash.js/lib/hash/sha/common.js","../node_modules/hash.js/lib/hash/sha/256.js","../node_modules/hash.js/lib/hash/sha/512.js","../node_modules/asn1.js/lib/asn1.js","../node_modules/asn1.js/node_modules/bn.js/lib/bn.js","../node_modules/asn1.js/lib/asn1/encoders/index.js","../node_modules/asn1.js/lib/asn1/encoders/der.js","../node_modules/asn1.js/lib/asn1/decoders/index.js","../node_modules/asn1.js/lib/asn1/decoders/der.js","../node_modules/public-encrypt/mgf.js","../node_modules/public-encrypt/xor.js","../node_modules/public-encrypt/withPublic.js","../node_modules/react-dom/index.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/sql.js/dist/sql-wasm.js","../node_modules/sql.js/dist/sql-wasm.wasm","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/base64-js/index.js","../node_modules/ieee754/index.js","../node_modules/crypto-browserify/index.js","../node_modules/hash-base/node_modules/safe-buffer/index.js","../node_modules/hash-base/node_modules/readable-stream/readable-browser.js","../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/buffer_list.js","../node_modules/string_decoder/node_modules/safe-buffer/index.js","../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/async_iterator.js","../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/from-browser.js","../node_modules/hash-base/node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/pipeline.js","../node_modules/sha.js/sha.js","../node_modules/sha.js/sha1.js","../node_modules/sha.js/sha224.js","../node_modules/sha.js/sha384.js","../node_modules/stream-browserify/index.js","../node_modules/readable-stream/lib/internal/streams/BufferList.js","../node_modules/timers-browserify/main.js","../node_modules/setimmediate/setImmediate.js","../node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/readable-stream/writable-browser.js","../node_modules/readable-stream/duplex-browser.js","../node_modules/readable-stream/transform.js","../node_modules/readable-stream/passthrough.js","../node_modules/create-hmac/legacy.js","../node_modules/browserify-sign/algos.js","../node_modules/pbkdf2/lib/async.js","../node_modules/browserify-cipher/browser.js","../node_modules/browserify-des/index.js","../node_modules/des.js/lib/des.js","../node_modules/des.js/lib/des/cbc.js","../node_modules/des.js/lib/des/ede.js","../node_modules/browserify-aes/encrypter.js","../node_modules/browserify-aes/modes/ecb.js","../node_modules/browserify-aes/modes/cbc.js","../node_modules/browserify-aes/modes/cfb.js","../node_modules/browserify-aes/modes/cfb8.js","../node_modules/browserify-aes/modes/cfb1.js","../node_modules/browserify-aes/modes/ofb.js","../node_modules/browserify-aes/ghash.js","../node_modules/browserify-aes/decrypter.js","../node_modules/browserify-des/modes.js","../node_modules/diffie-hellman/browser.js","../node_modules/miller-rabin/node_modules/bn.js/lib/bn.js","../node_modules/diffie-hellman/lib/dh.js","../node_modules/browserify-sign/browser/index.js","../node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/buffer_list.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/async_iterator.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/from-browser.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/pipeline.js","../node_modules/browserify-sign/browser/sign.js","../node_modules/elliptic/lib/elliptic/curve/short.js","../node_modules/elliptic/lib/elliptic/curve/mont.js","../node_modules/elliptic/lib/elliptic/curve/edwards.js","../node_modules/hash.js/lib/hash/sha.js","../node_modules/hash.js/lib/hash/sha/1.js","../node_modules/hash.js/lib/hash/sha/224.js","../node_modules/hash.js/lib/hash/sha/384.js","../node_modules/hash.js/lib/hash/ripemd.js","../node_modules/hash.js/lib/hash/hmac.js","../node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","../node_modules/elliptic/lib/elliptic/ec/index.js","../node_modules/hmac-drbg/lib/hmac-drbg.js","../node_modules/elliptic/lib/elliptic/ec/key.js","../node_modules/elliptic/lib/elliptic/ec/signature.js","../node_modules/elliptic/lib/elliptic/eddsa/index.js","../node_modules/elliptic/lib/elliptic/eddsa/key.js","../node_modules/elliptic/lib/elliptic/eddsa/signature.js","../node_modules/parse-asn1/asn1.js","../node_modules/asn1.js/lib/asn1/api.js","../node_modules/asn1.js/lib/asn1/encoders/pem.js","../node_modules/asn1.js/lib/asn1/decoders/pem.js","../node_modules/asn1.js/lib/asn1/base/index.js","../node_modules/asn1.js/lib/asn1/constants/index.js","../node_modules/parse-asn1/certificate.js","../node_modules/parse-asn1/fixProc.js","../node_modules/browserify-sign/browser/verify.js","../node_modules/create-ecdh/browser.js","../node_modules/create-ecdh/node_modules/bn.js/lib/bn.js","../node_modules/public-encrypt/browser.js","../node_modules/public-encrypt/publicEncrypt.js","../node_modules/public-encrypt/privateDecrypt.js","../node_modules/randomfill/browser.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js"],"names":["Object","create","module","exports","ctor","superCtor","super_","prototype","constructor","value","enumerable","writable","configurable","TempCtor","buffer","require","Buffer","copyProps","src","dst","key","SafeBuffer","arg","encodingOrOffset","length","from","alloc","allocUnsafe","allocUnsafeSlow","TypeError","size","fill","encoding","buf","undefined","SlowBuffer","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","setTimeout","e","call","this","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","len","run","marker","runClearTimeout","Item","array","noop","nextTick","args","Array","arguments","i","push","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","name","binding","cwd","chdir","dir","umask","base64","ieee754","isArray","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","Uint8Array","__proto__","ArrayBuffer","byteOffset","byteLength","fromArrayLike","fromArrayBuffer","string","isEncoding","actual","write","slice","fromString","obj","isBuffer","checked","copy","val","type","data","fromObject","assertSize","toString","isView","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","start","end","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","b","n","m","bidirectionalIndexOf","isNaN","arrayIndexOf","indexOf","lastIndexOf","arr","indexSize","arrLength","valLength","String","read","readUInt16BE","foundIndex","found","j","hexWrite","offset","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","charCodeAt","asciiToBytes","latin1Write","base64Write","ucs2Write","units","c","hi","lo","utf16leToBytes","fromByteArray","Math","min","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","decodeCodePointsArray","INSPECT_MAX_BYTES","global","foo","subarray","typedArraySupport","poolSize","_augment","Symbol","species","defineProperty","_isBuffer","compare","a","x","y","list","pos","swap16","swap32","swap64","equals","inspect","max","match","join","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","ret","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","floor","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","set","code","INVALID_BASE64_RE","Infinity","leadSurrogate","toByteArray","trim","replace","stringtrim","base64clean","g","Function","window","assert","msg","equal","l","r","utils","BN","minAssert","minUtils","toArray","zero2","encode","getNAF","num","w","bits","naf","bitLength","ws","k","clone","z","mod","andln","isOdd","isubn","iushrn","getJSF","k1","k2","jsf","m8","d1","d2","cmpn","u1","u2","m14","m24","cachedProperty","computer","parseBytes","intFromLE","inherits","isSurrogatePair","htonl","word","zero8","enc","p","toHex32","endian","join32","split32","rotr32","rotl32","sum32","sum32_3","sum32_4","d","sum32_5","sum64","ah","al","bh","sum64_hi","bl","sum64_lo","sum64_4_hi","ch","cl","dh","dl","carry","sum64_4_lo","sum64_5_hi","eh","el","sum64_5_lo","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","number","base","isBN","negative","words","red","_init","wordSize","parseHex4Bits","index","parseHexByte","lowerBound","parseBase","left","right","cmp","_initNumber","_initArray","_parseHex","_parseBase","ceil","strip","limbLen","limbPow","total","imuln","_iaddn","dest","_expand","_normSign","zeros","groupSizes","groupBases","smallMulTo","self","ncarry","rword","maxJ","padding","groupSize","groupBase","isZero","modn","idivn","toNumber","toBuffer","toArrayLike","ArrayType","reqLength","q","clz32","_countBits","t","_zeroBits","zeroBits","toTwos","width","abs","inotn","iaddn","fromTwos","testn","notn","ineg","isNeg","neg","iuor","ior","or","uor","iuand","iand","and","uand","iuxor","ixor","xor","uxor","bytesNeeded","bitsLeft","setn","bit","wbit","iadd","isub","add","comb10MulTo","mid","o","a0","al0","ah0","a1","al1","ah1","a2","al2","ah2","a3","al3","ah3","a4","al4","ah4","a5","al5","ah5","a6","al6","ah6","a7","al7","ah7","a8","al8","ah8","a9","al9","ah9","b0","bl0","bh0","b1","bl1","bh1","b2","bl2","bh2","b3","bl3","bh3","b4","bl4","bh4","b5","bl5","bh5","b6","bl6","bh6","b7","bl7","bh7","b8","bl8","bh8","b9","bl9","bh9","w0","imul","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","jumboMulTo","FFTM","mulp","mulTo","hncarry","bigMulTo","makeRBT","N","revBin","rb","permute","rbt","rws","iws","rtws","itws","transform","s","rtwdf","cos","PI","itwdf","sin","rtwdf_","itwdf_","re","ie","ro","io","rx","guessLen13b","odd","conjugate","normalize13b","round","convert13b","stub","ph","_","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","muln","sqr","isqr","toBitArray","iushln","carryMask","newCarry","ishln","hint","extended","h","mask","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","addn","subn","iabs","_ishlnsubmul","shift","_wordDiv","mode","bhi","diff","qj","div","divmod","positive","divn","umod","divRound","dm","half","r2","acc","egcd","A","B","C","D","isEven","yp","xp","im","jm","gcd","_invmp","x1","x2","delta","invm","bincn","ucmp","gtn","gt","gten","gte","ltn","lt","lten","lte","eqn","eq","Red","toRed","ctx","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","shl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","sqrt","redInvm","redNeg","redPow","primes","k256","p224","p192","p25519","MPrime","tmp","_tmp","K256","P224","P192","P25519","prime","_prime","Mont","imod","rinv","minv","ireduce","rlen","split","imulK","_strip","input","output","outLen","prev","next","mod3","one","nOne","lpow","inv","wnd","current","currentLen","mont","u","webpackPolyfill","deprecate","paths","children","get","Transform","StringDecoder","CipherBase","hashMode","_finalOrDigest","final","_final","__final","_decoder","_encoding","update","inputEnc","outputEnc","outData","_update","_toString","setAutoPadding","getAuthTag","setAuthTag","setAAD","_transform","err","_flush","done","fin","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","EventEmitter","init","emitter","Promise","resolve","reject","errorListener","resolver","eventTargetAgnosticAddListener","handler","flags","addErrorHandlerIfEventEmitter","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","_addListener","prepend","events","existing","warning","newListener","unshift","warned","count","console","warn","onceWrapper","fired","wrapFn","_onceWrap","state","wrapped","bind","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","addEventListener","wrapListener","removeEventListener","getPrototypeOf","setMaxListeners","getMaxListeners","doError","error","er","message","context","position","originalListener","pop","spliceOne","keys","rawListeners","eventNames","nb","nenc","retried","_normalizeEncoding","normalizeEncoding","text","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","utf8CheckExtraBytes","utf8CheckIncomplete","pna","objectKeys","Duplex","util","Readable","Writable","v","method","options","readable","allowHalfOpen","onend","_writableState","ended","onEndNT","highWaterMark","_readableState","destroyed","_destroy","cb","MAX_BYTES","MAX_UINT32","crypto","msCrypto","getRandomValues","generated","codes","createErrorType","Base","NodeError","_Base","subClass","superClass","arg1","arg2","arg3","getMessage","oneOf","expected","thing","map","determiner","search","this_len","substring","endsWith","getBuffer","Hash","blockSize","finalSize","_block","_finalSize","_blockSize","_len","block","accum","assigned","remainder","digest","rem","lowBits","highBits","hash","_hash","MD5","RIPEMD160","sha","alg","objectToString","isBoolean","isNull","isNullOrUndefined","isNumber","isString","isSymbol","isUndefined","isRegExp","isObject","isDate","isError","isFunction","isPrimitive","BlockHash","pending","pendingTotal","outSize","hmacStrength","padLength","_delta8","_delta32","_pad","_digest","Reporter","DecoderBuffer","EncoderBuffer","reporter","item","isEncoderBuffer","isDecoderBuffer","save","restore","isEmpty","skip","raw","fail","_reporterState","forEach","_arrayLikeToArray","arr2","_slicedToArray","iterator","_n","_d","_e","_s","_i","minLen","test","fn","asUInt32Array","scrubVec","cryptBlock","M","keySchedule","SUB_MIX","SBOX","nRounds","t0","t1","t2","t3","SUB_MIX0","SUB_MIX1","SUB_MIX2","SUB_MIX3","s0","s1","s2","s3","ksRow","RCON","G","INV_SBOX","INV_SUB_MIX","xi","sx","x4","x8","AES","_key","_reset","keySize","keyWords","ksRows","invKeySchedule","ik","ksR","tt","_nRounds","_keySchedule","_invKeySchedule","encryptBlockRaw","encryptBlock","decryptBlock","m1","scrub","password","salt","keyBits","ivLen","keyLen","iv","used","keyStart","ivStart","BaseCurve","conf","zero","two","pointFromJSON","gRed","_wnafT1","_wnafT2","_wnafT3","_wnafT4","_bitLength","adjustCount","redN","_maxwellTrick","BasePoint","curve","precomputed","point","validate","_fixedNafMul","doubles","_getDoubles","I","step","nafW","repr","jpoint","mixedAdd","points","toP","_wnafMul","nafPoints","_getNAFPoints","dblp","_wnafMulAdd","defW","coeffs","jacobianResult","wndWidth","comb","toJ","ja","jb","decodePoint","pointFromX","encodeCompressed","_encode","compact","getX","getY","precompute","power","beta","_getBeta","_hasDoubles","dbl","asn1","aesid","fixProc","ciphers","compat","parseKeys","passphrase","subtype","ndata","stripped","tag","certificate","decode","tbsCertificate","subjectPublicKeyInfo","PublicKey","algorithm","RSAPublicKey","subjectPublicKey","subjectPrivateKey","params","pub_key","DSAparam","decrypt","kde","kdeparams","iters","algo","cipher","cipherText","keylen","pbkdf2Sync","createDecipheriv","EncryptedPrivateKey","PrivateKey","RSAPrivateKey","privateKey","ECPrivateKey","priv_key","DSAPrivateKey","parameters","signature","hasOwnProperty","propIsEnumerable","propertyIsEnumerable","toObject","assign","test1","test2","test3","letter","shouldUseNative","source","symbols","to","HashBase","ARRAY16","_a","_b","_c","rotl","fnF","fnG","fnH","fnI","_blockOffset","_length","config","localStorage","trace","ERR_STREAM_PREMATURE_CLOSE","eos","stream","opts","callback","called","onlegacyfinish","onfinish","writableEnded","finished","readableEnded","endEmitted","onerror","onclose","onrequest","req","setHeader","abort","isRequest","zl","zr","sl","sr","hl","hr","fn1","fn2","fn3","fn4","fn5","ar","br","cr","dr","tl","tr","Algorithm","sha1","sha224","sha256","sha384","sha512","Stream","PassThrough","CorkedRequest","_this","entry","finish","corkReq","pendingcb","corkedRequestsFree","onCorkedFinish","asyncWrite","setImmediate","WritableState","internalUtil","OurUint8Array","realHasInstance","destroyImpl","nop","isDuplex","objectMode","writableObjectMode","hwm","writableHwm","writableHighWaterMark","defaultHwm","finalCalled","needDrain","ending","noDecode","decodeStrings","defaultEncoding","writing","corked","sync","bufferProcessing","onwrite","writecb","writelen","onwriteStateUpdate","finishMaybe","errorEmitted","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","_write","writev","_writev","destroy","doWrite","chunk","onwriteDrain","holder","allBuffers","isBuf","callFinal","need","prefinish","hasInstance","object","pipe","_uint8ArrayToBuffer","writeAfterEnd","valid","validChunk","newChunk","decodeChunk","last","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","_undestroy","undestroy","Cipher","bufferOff","_updateDecrypt","_updateEncrypt","_buffer","_flushBuffer","inputOff","outputOff","first","_finalEncrypt","_finalDecrypt","_unpad","deciphers","modes","createCipher","createCipheriv","Cipheriv","createDecipher","Decipher","Decipheriv","listCiphers","getCiphers","modeModules","ECB","CBC","CFB","CFB8","CFB1","OFB","CTR","GCM","Rand","rand","generate","_rand","getBytes","getByte","randomBytes","getr","priv","modulus","prime1","prime2","crt","blinds","blinder","publicExponent","unblinder","blind","blinded","c1","c2","qinv","coefficient","exponent1","m2","exponent2","move","_move","for","modrn","allocate","_toArrayLikeLE","_toArrayLikeBE","isNegNum","elliptic","curves","ec","eddsa","pre","PresetCurve","short","edwards","isInfinity","defineCurve","lambda","basis","common","ripemd","hmac","ripemd160","safer","Safer","kStringMaxLength","constants","MAX_LENGTH","MAX_STRING_LENGTH","tags","methods","Node","parent","_baseState","reverseArgs","choice","optional","any","use","useDecoder","explicit","implicit","contains","_wrap","stateProps","cstate","prop","body","filter","child","_useArgs","def","newKey","_decode","wrapResult","prevObj","result","present","prevKey","enterKey","_peekTag","_decodeGeneric","_decodeChoice","enterObject","_decodeTag","track","path","_getUse","leaveObject","exitKey","leaveKey","_decodeList","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeBool","_decodeInt","entity","_use","some","node","_createEncoderBuffer","_encodeValue","_skipDefault","content","primitive","_encodeChoice","_encodePrimitive","cls","_encodeComposite","JSON","stringify","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool","_isNumstr","_isPrintstr","errors","ReporterError","rethrow","pathLen","now","inherited","elem","stack","partial","captureStackTrace","reverse","tagClass","tagClassByName","tagByName","normalizeArray","parts","allowAboveRoot","up","splice","xs","f","resolvedPath","resolvedAbsolute","charAt","normalize","isAbsolute","trailingSlash","relative","fromParts","toParts","samePartsLength","outputParts","sep","delimiter","dirname","hasRoot","matchedSlash","basename","extname","startDot","startPart","preDotState","_finalized","prefix","throwIfNotStringOrBuffer","ReadableState","EElistenerCount","debug","debugUtil","debuglog","createReadableStreamAsyncIterator","BufferList","getHighWaterMark","_require$codes","ERR_INVALID_ARG_TYPE","ERR_STREAM_PUSH_AFTER_EOF","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","errorOrDestroy","kProxyEvents","readableObjectMode","pipes","pipesCount","flowing","reading","needReadable","emittedReadable","readableListening","resumeScheduled","paused","emitClose","autoDestroy","awaitDrain","readingMore","decoder","_read","readableAddChunk","addToFront","skipChunkCheck","emitReadable","emitReadable_","onEofChunk","chunkInvalid","addChunk","maybeReadMore","isPaused","setEncoding","head","clear","MAX_HWM","howMuchToRead","computeNewHighWaterMark","flow","maybeReadMore_","updateReadableListening","resume","nReadingNextTick","resume_","fromList","consume","endReadable","endReadableNT","wState","nOrig","doRead","pipeOpts","endFn","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","ondrain","ondata","cleanedUp","pipeOnDrain","pause","event","dests","ev","wrap","asyncIterator","_fromList","iterable","emitErrorAndCloseNT","emitErrorNT","emitCloseNT","readableDestroyed","writableDestroyed","rState","ERR_INVALID_OPT_VALUE","duplexKey","highWaterMarkFrom","ERR_MULTIPLE_CALLBACK","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","afterTransform","ts","_transformState","transforming","writechunk","rs","needTransform","writeencoding","flush","err2","K","W","Sha256","_w","maj","sigma0","sigma1","gamma0","_f","_g","_h","T1","T2","H","Sha512","Ch","xl","Gamma0","Gamma0l","Gamma1","Gamma1l","getCarry","_ah","_bh","_ch","_dh","_eh","_fh","_gh","_hh","_al","_bl","_cl","_dl","_el","_fl","_gl","_hl","fh","gh","hh","fl","gl","xh","gamma0l","gamma1","gamma1l","Wi7h","Wi7l","Wi16h","Wi16l","Wil","Wih","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Kih","Kil","chh","chl","t1l","t1h","t2l","t2h","writeInt64BE","readableHwm","readableHighWaterMark","needMoreData","hasStrings","tail","copyFromBufferString","copyFromBuffer","fromListPartial","increasedAwaitDrain","_this2","Legacy","md5","ZEROS","Hmac","blocksize","_alg","ipad","_ipad","opad","_opad","pbkdf2","MAX_ALLOC","iterations","checkParameters","sizes","rmd160","saltLen","shaFunc","rmd160Func","getDigest","ipad1","ipad2","DK","block1","destPos","hLen","T","U","ip","inL","inR","outL","outR","rip","pc1","r28shl","pc2table","pc2","expand","sTable","substitute","permuteTable","padSplit","group","DESState","DES","_desState","deriveKeys","shiftTable","kL","kR","inp","inOff","outOff","_encrypt","_decrypt","pad","lStart","rStart","keyL","keyR","incr32","getBlock","_cipher","_prev","encrypt","chunkNum","_cache","aes","GHASH","StreamCipher","ck","_ghash","_finID","ghash","toPad","ivBits","calcIv","_secCache","_alen","_mode","_authTag","_called","rump","xorTest","findPrime","simpleSieve","fermatTest","TWENTYFOUR","millerRabin","ONE","TWO","FIVE","TEN","THREE","ELEVEN","FOUR","_getPrimes","gen","n2","bn","brorand","MillerRabin","_randbelow","min_bytes","_randrange","stop","rone","n1","rn1","getDivisor","ch32","maj32","p32","ft_1","s0_256","s1_256","g0_256","g1_256","shaCommon","sha256_K","SHA256","sha512_K","SHA512","ch64_hi","yh","yl","zh","ch64_lo","maj64_hi","maj64_lo","s0_512_hi","s0_512_lo","s1_512_hi","s1_512_lo","g0_512_hi","g0_512_lo","g1_512_hi","g1_512_lo","_prepareBlock","c0_hi","c0_lo","c1_hi","c1_lo","c2_hi","c2_lo","c3_hi","c3_lo","c4_hi","c4_lo","T1_hi","T1_lo","T2_hi","T2_lo","bignum","define","decoders","encoders","der","pem","DEREncoder","tree","DERNode","encodedTag","encodeTag","header","lenOctets","unused","id","values","ident","objid","time","date","Date","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","numArray","sign","_getEncoder","dataBuffer","defaultBuffer","DERDecoder","derDecodeTag","oct","tagStr","derDecodeLen","decodedTag","_skipUntilEnd","possibleEnd","numstr","printstr","identifiers","subident","second","year","mon","day","hour","sec","UTC","_getDecoder","createHash","i2ops","seed","paddedMsg","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","asyncGeneratorStep","_next","_throw","info","then","_asyncToGenerator","initSqlJsPromise","initSqlJs","moduleConfig","resolveModule","Module","originalOnAbortFunction","errorThatCausedAbort","onRuntimeInitialized","Ra","db","Qa","lb","aa","eb","ba","$a","pb","filename","random","da","ca","ha","ea","fa","ka","handleError","nc","fb","Xa","cwrap","Y","oc","pc","qc","rc","sc","tc","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","qb","Mc","Nc","Oc","reset","Bb","Cb","Ib","Jb","getBlob","getColumnNames","getAsObject","getSQL","getNormalizedSQL","Fb","ma","la","Ab","Eb","Db","tb","freemem","na","free","oa","pa","qa","getRemainingSQL","prepare","exec","ia","columns","E","each","iterateStatements","ra","jc","Sc","Va","sa","close","ta","getRowsModified","create_function","ua","Ja","Ia","WeakMap","has","Ha","grow","WebAssembly","results","Instance","va","wb","Ea","Rc","Database","F","wa","ya","za","Aa","xa","importScripts","Ba","Ca","Da","Fa","__dirname","readFileSync","readbuffer","print","log","printErr","location","href","document","currentScript","XMLHttpRequest","open","send","responseText","responseType","response","Ga","J","thisProgram","Ka","delete","La","L","Ma","Na","wasmBinary","noExitRuntime","Oa","Pa","Ua","TextDecoder","Wa","Ya","HEAP8","Int8Array","HEAP16","Int16Array","HEAP32","Int32Array","HEAPU8","HEAPU16","Uint16Array","HEAPU32","Uint32Array","HEAPF32","Float32Array","HEAPF64","Float64Array","Za","INITIAL_MEMORY","wasmMemory","Memory","initial","maximum","ab","bb","preRun","gb","onAbort","RuntimeError","hb","ib","startsWith","preloadedImages","preloadedAudios","kb","locateFile","Hb","mb","yb","zb","Gb","rdev","O","tty","seekable","xb","timestamp","readSync","stdin","fd","prompt","readline","Kb","P","createNode","Ta","lookup","rename","unlink","rmdir","readdir","symlink","file","sb","link","readlink","ub","Lb","Q","Mb","Sa","Sb","Tb","vb","Pb","dev","ino","nlink","uid","gid","atime","mtime","ctime","blocks","Nb","Ob","Qb","S","Rb","V","root","Ub","Vb","Wb","Xb","Yb","Zb","wx","xw","ax","$b","ac","bc","dc","cc","Uc","fc","hc","ic","willDeletePath","onDeletePath","kc","lc","mc","logReadFiles","Pc","onOpenFile","ob","Qc","onWriteToFile","Tc","Vc","Wc","X","Xc","Yc","getTime","Zc","$c","Z","cd","dd","ad","bd","USER","LOGNAME","PATH","PWD","HOME","LANG","navigator","languages","ed","hrtime","dateNow","performance","_usleep","defineProperties","toTimeString","getTimezoneOffset","getFullYear","getSeconds","getMinutes","getHours","getDate","getMonth","getDay","gd","hd","copyWithin","fsync","hardwareConcurrency","extraStackTrace","asm","monitorRunDependencies","clearInterval","instance","fetch","credentials","ok","arrayBuffer","catch","instantiate","instantiateWasm","instantiateStreaming","___wasm_call_ctors","_memset","_sqlite3_free","___errno_location","_sqlite3_finalize","_sqlite3_reset","_sqlite3_clear_bindings","_sqlite3_value_blob","_sqlite3_value_text","_sqlite3_value_bytes","_sqlite3_value_double","_sqlite3_value_int","_sqlite3_value_type","_sqlite3_result_blob","_sqlite3_result_double","$","_sqlite3_result_error","_sqlite3_result_int","_sqlite3_result_int64","_sqlite3_result_null","_sqlite3_result_text","_sqlite3_step","_sqlite3_column_count","ga","_sqlite3_data_count","_sqlite3_column_blob","_sqlite3_column_bytes","_sqlite3_column_double","_sqlite3_column_text","_sqlite3_column_type","_sqlite3_column_name","_sqlite3_bind_blob","_sqlite3_bind_double","_sqlite3_bind_int","_sqlite3_bind_text","_sqlite3_bind_parameter_index","_sqlite3_sql","_sqlite3_normalized_sql","_sqlite3_errmsg","_sqlite3_exec","_sqlite3_prepare_v2","_sqlite3_changes","_sqlite3_close_v2","_sqlite3_create_function_v2","_sqlite3_open","_malloc","_free","_RegisterExtensionFunctions","jd","__get_tzname","__get_daylight","__get_timezone","stackSave","stackRestore","stackAlloc","_memalign","ld","calledRun","noFSInit","postRun","setStatus","every","UTF8ToString","kd","preInit","default","Fragment","StrictMode","Profiler","Suspense","encodeURIComponent","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","props","refs","updater","isReactComponent","setState","forceUpdate","isPureReactComponent","ref","__self","__source","defaultProps","$$typeof","_owner","escape","_status","_result","ReactCurrentDispatcher","ReactCurrentBatchConfig","transition","ReactCurrentOwner","IsSomeRendererActing","Children","only","Component","PureComponent","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","createContext","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_context","createElement","createFactory","createRef","forwardRef","render","isValidElement","lazy","_payload","memo","useCallback","useContext","useDebugValue","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","Set","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","toUpperCase","removeAttribute","setAttribute","setAttributeNS","xlinkHref","prepareStackTrace","construct","displayName","_render","nodeName","_valueTracker","getOwnPropertyDescriptor","getValue","setValue","stopTracking","activeElement","defaultChecked","defaultValue","_wrapperState","initialChecked","initialValue","controlled","ownerDocument","selected","defaultSelected","disabled","dangerouslySetInnerHTML","textContent","namespaceURI","innerHTML","valueOf","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","lastChild","nodeType","nodeValue","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","style","setProperty","menuitem","area","col","embed","img","keygen","meta","param","wbr","is","srcElement","correspondingUseElement","parentNode","stateNode","onError","alternate","return","memoizedState","dehydrated","sibling","gc","Map","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","pointerId","lanePriority","unstable_runWithPriority","priority","hydrate","containerInfo","unstable_scheduleCallback","unstable_NormalPriority","animationend","animationiteration","animationstart","transitionend","animation","unstable_now","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","eventTimes","LN2","unstable_UserBlockingPriority","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","stopPropagation","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Jd","clipboardData","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Rd","repeat","locale","which","Td","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Zd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","le","color","datetime","email","month","range","tel","url","week","me","ne","oe","pe","qe","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","nextSibling","Me","compareDocumentPosition","Ne","HTMLIFrameElement","contentWindow","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","selectionStart","selectionEnd","anchorNode","defaultView","getSelection","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","$e","af","bf","cf","df","capture","passive","ef","ff","parentWindow","gf","hf","je","char","ke","jf","kf","lf","mf","autoFocus","nf","__html","of","pf","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","childContextTypes","Gf","Hf","If","getChildContext","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","observedBits","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","effects","yg","zg","eventTime","lane","payload","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","_reactInternals","Hg","Ig","Jg","Lg","shouldComponentUpdate","Mg","contextType","Ng","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Og","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Pg","Qg","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","elementType","Vg","implementation","Wg","Xg","Yg","Zg","$g","documentElement","tagName","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","qh","rh","sh","th","uh","_workInProgressVersionPrimary","vh","wh","Ah","Bh","Dh","Eh","Fh","Gh","Hh","baseQueue","Ih","Jh","Kh","lastRenderedReducer","action","eagerReducer","eagerState","lastRenderedState","dispatch","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","getSnapshot","subscribe","setSnapshot","Oh","Ph","Qh","Rh","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","fi","gi","ii","ji","ki","li","mi","baseLanes","ni","oi","pi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","qi","getDerivedStateFromError","ri","pendingContext","Bi","Di","Ei","si","retryLane","ti","fallback","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","yi","zi","isBackwards","rendering","renderingStartTime","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onClick","onclick","createElementNS","createTextNode","Hi","Ii","Ji","Ki","Li","Mi","Ni","Oi","Pi","element","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","focus","aj","display","bj","onCommitFiberUnmount","componentWillUnmount","cj","dj","ej","fj","gj","hj","insertBefore","_reactRootContainer","ij","jj","kj","lj","mj","nj","oj","pj","rj","sj","tj","uj","vj","wj","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","extend","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","top","scrollTop","onCommitFiberRoot","fk","gk","pendingChildren","jk","mutableSourceEagerHydrationData","kk","lk","mk","nk","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","hasAttribute","sk","uk","hk","unstable_observedBits","unmount","querySelectorAll","form","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","yk","isDisabled","supportsFiber","inject","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","cancelAnimationFrame","requestAnimationFrame","port2","port1","onmessage","postMessage","sortIndex","startTime","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","delay","unstable_wrapCallback","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","toStringTag","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","isGeneratorFunction","genFun","mark","setPrototypeOf","awrap","async","iter","skipTempReset","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","maxChunkLength","len2","encodeChunk","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","rng","pseudoRandomBytes","prng","createHmac","algos","algoKeys","hashes","getHashes","DiffieHellmanGroup","createDiffieHellmanGroup","getDiffieHellman","createDiffieHellman","DiffieHellman","createSign","Sign","createVerify","Verify","createECDH","publicEncrypt","privateEncrypt","publicDecrypt","privateDecrypt","randomFill","randomFillSync","createCredentials","pipeline","enumerableOnly","sym","_defineProperty","_defineProperties","descriptor","custom","Constructor","_classCallCheck","protoProps","staticProps","_getString","_getBuffer","getOwnPropertyDescriptors","_objectSpread","depth","customInspect","_Object$setPrototypeO","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","onReadable","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","promise","lastPromise","wrapForNext","_Object$create","ERR_MISSING_ARGS","destroyer","closed","popCallback","streams","destroys","reduce","Sha","rotl30","ft","Sha1","rotl5","Sha224","Sha384","EE","_isStdio","didOnEnd","cleanup","scope","Timeout","clearFn","_id","_clearFn","setInterval","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","clearImmediate","registerImmediate","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","runIfPresent","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","messagePrefix","onGlobalMessage","installPostMessageImplementation","channel","installMessageChannelImplementation","html","script","onreadystatechange","installReadyStateChangeImplementation","task","ZERO_BUF","subtle","toBrowser","checks","getNextTick","queueMicrotask","browserPbkdf2","importKey","deriveBits","resolvePromise","prom","checkNative","resp","aesModes","desModes","ebtk","suite","des","EDE","modeName","_des","des3","proto","CBCState","_cbcInit","_cbcState","superProto","EDEState","k3","_edeState","MODES","AuthCipher","Splitter","_autopadding","PADDING","cache","setTo","padBuff","encryptStart","encryptByte","byteParam","shiftIn","ZEROES","fromArray","_multiply","lsbVi","abl","_last","padded","unpad","autoPadding","generatePrime","DH","ENCODINGS","genc","SEVEN","setPublicKey","pub","_pub","setPrivateKey","_priv","primeCache","malleable","setGenerator","__prime","_primeLen","_primeCode","formatReturnValue","hex","checkPrime","__gen","generateKeys","_gen","getPublicKey","computeSecret","other","secret","getPrime","front","getPrivateKey","getGenerator","verify","algorithms","_hashType","_tag","_signType","sig","EC","getKey","hlen","hbits","bits2int","bits2octets","obits","makeKey","kv","makeR","hashType","signType","curveId","keyFromPrivate","toDER","ecSign","dsaSign","ShortCurve","tinv","zeroA","threeA","endo","_getEndomorphism","_endoWnafT1","_endoWnafT2","Point","isRed","inf","JPoint","zOne","betas","_getEndoRoots","lambdas","vec","_getEndoBasis","ntinv","prevR","aprxSqrt","y1","y2","len1","_endoSplit","v1","v2","p1","p2","q1","q2","rhs","_endoWnafMulAdd","npoints","ncoeffs","fromJSON","endoMul","parse","obj2point","nx","ny","ys1","dyinv","mulAdd","jmulAdd","_precompute","negate","zinv","zinv2","ay","pz2","z2","h2","h3","nz","jx","jy","jz","jz4","jyd","jx2","jyd2","jyd4","dny","_zeroDbl","_threeDbl","_dbl","xx","yy","yyyy","yyyy8","c8","gamma","alpha","beta4","beta8","ggamma8","jy2","jxd4","jyd8","trpl","zz","mm","yyu4","kbase","z3","pz3","eqXToP","zs","MontCurve","i4","a24","diffAdd","jumlAdd","EdwardsCurve","twisted","mOneA","oneC","_mulA","_mulC","lhs","pointFromY","_extDbl","nt","_projDbl","_extAdd","_projAdd","sha1_K","SHA1","SHA224","SHA384","inner","outer","HmacDRBG","KeyPair","Signature","keyPair","fromPrivate","keyFromPublic","fromPublic","genKeyPair","drbg","pers","persEnc","entropy","entropyEnc","nonce","ns2","_truncateToN","truncOnly","bkey","getPrivate","ns1","kp","kpX","recoveryParam","canonical","sinv","getPublic","recoverPubKey","isYOdd","isSecondKey","rInv","getKeyRecoveryParam","Qprime","predResist","minEntropy","_reseed","reseedInterval","nonceEnc","_hmac","kmac","reseed","addEnc","temp","_importPrivate","privEnc","_importPublic","pubEnc","reason","derive","_importDER","Position","place","getLength","octetLen","rmPadding","constructLength","octets","slen","backHalf","EDDSA","pointClass","encodingLength","keyFromSecret","hashInt","Rencoded","encodePoint","s_","pubBytes","makeSignature","SG","fromSecret","lastIx","normed","xIsOdd","encodeInt","decodeInt","isPoint","_secret","_pubBytes","privBytes","getSecret","_R","_S","_Rencoded","_Sencoded","Sencoded","toBytes","seq","int","AlgorithmIdentifier","bitstr","null_","PrivateKeyInfo","octstr","EncryptedPrivateKeyInfo","ECParameters","namedCurve","Entity","_createNamed","Generated","_initNamed","PEMEncoder","label","PEMDecoder","lines","_reverse","asn","Time","utcTime","utctime","generalTime","gentime","AttributeTypeValue","SubjectPublicKeyInfo","RelativeDistinguishedName","setof","RDNSequence","seqof","Name","rdnSequence","Validity","Extension","bool","TBSCertificate","X509Certificate","findProc","startRegex","fullRegex","evp","okey","decrypted","cipherKey","match2","checkValue","pubkey","ecVerify","unpacked","montp","dsaVerify","padNum","ECDH","aliases","secp256k1","secp224r1","prime256v1","prime192v1","ed25519","secp384r1","secp521r1","curveType","p256","secp256r1","secp192r1","p384","p521","format","inenc","mgf","withPublic","publicKey","iHash","hLen2","ps","dblen","maskedDb","maskedSeed","oaep","cur","nonZero","pkcs1","zBuffer","dif","status","oldBrowser","safeBuffer","randombytes","kBufferMaxLength","kMaxUint32","assertOffset","actualFill","ourBuf","uint","jsx","jsxs"],"mappings":"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ACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,sEAINjuB,IAAK,CACHwZ,IAAK,EACLyU,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,iEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mE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","file":"static/js/2.bc8fac1e.chunk.js","sourcesContent":["if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","var Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar StringDecoder = require('string_decoder').StringDecoder\nvar inherits = require('inherits')\n\nfunction CipherBase (hashMode) {\n Transform.call(this)\n this.hashMode = typeof hashMode === 'string'\n if (this.hashMode) {\n this[hashMode] = this._finalOrDigest\n } else {\n this.final = this._finalOrDigest\n }\n if (this._final) {\n this.__final = this._final\n this._final = null\n }\n this._decoder = null\n this._encoding = null\n}\ninherits(CipherBase, Transform)\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n if (typeof data === 'string') {\n data = Buffer.from(data, inputEnc)\n }\n\n var outData = this._update(data)\n if (this.hashMode) return this\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc)\n }\n\n return outData\n}\n\nCipherBase.prototype.setAutoPadding = function () {}\nCipherBase.prototype.getAuthTag = function () {\n throw new Error('trying to get auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAuthTag = function () {\n throw new Error('trying to set auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAAD = function () {\n throw new Error('trying to set aad in unsupported state')\n}\n\nCipherBase.prototype._transform = function (data, _, next) {\n var err\n try {\n if (this.hashMode) {\n this._update(data)\n } else {\n this.push(this._update(data))\n }\n } catch (e) {\n err = e\n } finally {\n next(err)\n }\n}\nCipherBase.prototype._flush = function (done) {\n var err\n try {\n this.push(this.__final())\n } catch (e) {\n err = e\n }\n\n done(err)\n}\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n var outData = this.__final() || Buffer.alloc(0)\n if (outputEnc) {\n outData = this._toString(outData, outputEnc, true)\n }\n return outData\n}\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n if (!this._decoder) {\n this._decoder = new StringDecoder(enc)\n this._encoding = enc\n }\n\n if (this._encoding !== enc) throw new Error('can\\'t switch encodings')\n\n var out = this._decoder.write(value)\n if (fin) {\n out += this._decoder.end()\n }\n\n return out\n}\n\nmodule.exports = CipherBase\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","var Buffer = require('safe-buffer').Buffer\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n this._block = Buffer.alloc(blockSize)\n this._finalSize = finalSize\n this._blockSize = blockSize\n this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n if (typeof data === 'string') {\n enc = enc || 'utf8'\n data = Buffer.from(data, enc)\n }\n\n var block = this._block\n var blockSize = this._blockSize\n var length = data.length\n var accum = this._len\n\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize\n var remainder = Math.min(length - offset, blockSize - assigned)\n\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i]\n }\n\n accum += remainder\n offset += remainder\n\n if ((accum % blockSize) === 0) {\n this._update(block)\n }\n }\n\n this._len += length\n return this\n}\n\nHash.prototype.digest = function (enc) {\n var rem = this._len % this._blockSize\n\n this._block[rem] = 0x80\n\n // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n this._block.fill(0, rem + 1)\n\n if (rem >= this._finalSize) {\n this._update(this._block)\n this._block.fill(0)\n }\n\n var bits = this._len * 8\n\n // uint32\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n // uint64\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0\n var highBits = (bits - lowBits) / 0x100000000\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8)\n this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n }\n\n this._update(this._block)\n var hash = this._hash()\n\n return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\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","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","module.exports = function xor (a, b) {\n var length = Math.min(a.length, b.length)\n var buffer = new Buffer(length)\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i]\n }\n\n return buffer\n}\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","'use strict';\n\nconst inherits = require('inherits');\nconst Reporter = require('../base/reporter').Reporter;\nconst Buffer = require('safer-buffer').Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.isDecoderBuffer = function isDecoderBuffer(data) {\n if (data instanceof DecoderBuffer) {\n return true;\n }\n\n // Or accept compatible API\n const isCompatible = typeof data === 'object' &&\n Buffer.isBuffer(data.base) &&\n data.constructor.name === 'DecoderBuffer' &&\n typeof data.offset === 'number' &&\n typeof data.length === 'number' &&\n typeof data.save === 'function' &&\n typeof data.restore === 'function' &&\n typeof data.isEmpty === 'function' &&\n typeof data.readUInt8 === 'function' &&\n typeof data.skip === 'function' &&\n typeof data.raw === 'function';\n\n return isCompatible;\n};\n\nDecoderBuffer.prototype.save = function save() {\n return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n const res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length)\n return this.base.readUInt8(this.offset++, true);\n else\n return this.error(fail || 'DecoderBuffer overrun');\n};\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length))\n return this.error(fail || 'DecoderBuffer overrun');\n\n const res = new DecoderBuffer(this.base);\n\n // Share reporter state\n res._reporterState = this._reporterState;\n\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n};\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n};\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function(item) {\n if (!EncoderBuffer.isEncoderBuffer(item))\n item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff))\n return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.isEncoderBuffer = function isEncoderBuffer(data) {\n if (data instanceof EncoderBuffer) {\n return true;\n }\n\n // Or accept compatible API\n const isCompatible = typeof data === 'object' &&\n data.constructor.name === 'EncoderBuffer' &&\n typeof data.length === 'number' &&\n typeof data.join === 'function';\n\n return isCompatible;\n};\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out)\n out = Buffer.alloc(this.length);\n if (!offset)\n offset = 0;\n\n if (this.length === 0)\n return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function(item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number')\n out[offset] = this.value;\n else if (typeof this.value === 'string')\n out.write(this.value, offset);\n else if (Buffer.isBuffer(this.value))\n this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayWithHoles from \"@babel/runtime/helpers/esm/arrayWithHoles\";\nimport iterableToArrayLimit from \"@babel/runtime/helpers/esm/iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableRest from \"@babel/runtime/helpers/esm/nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\n\nvar Buffer = require('safe-buffer').Buffer\n\nfunction asUInt32Array (buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var len = (buf.length / 4) | 0\n var out = new Array(len)\n\n for (var i = 0; i < len; i++) {\n out[i] = buf.readUInt32BE(i * 4)\n }\n\n return out\n}\n\nfunction scrubVec (v) {\n for (var i = 0; i < v.length; v++) {\n v[i] = 0\n }\n}\n\nfunction cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {\n var SUB_MIX0 = SUB_MIX[0]\n var SUB_MIX1 = SUB_MIX[1]\n var SUB_MIX2 = SUB_MIX[2]\n var SUB_MIX3 = SUB_MIX[3]\n\n var s0 = M[0] ^ keySchedule[0]\n var s1 = M[1] ^ keySchedule[1]\n var s2 = M[2] ^ keySchedule[2]\n var s3 = M[3] ^ keySchedule[3]\n var t0, t1, t2, t3\n var ksRow = 4\n\n for (var round = 1; round < nRounds; round++) {\n t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]\n t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]\n t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]\n t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]\n s0 = t0\n s1 = t1\n s2 = t2\n s3 = t3\n }\n\n t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]\n t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]\n t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]\n t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]\n t0 = t0 >>> 0\n t1 = t1 >>> 0\n t2 = t2 >>> 0\n t3 = t3 >>> 0\n\n return [t0, t1, t2, t3]\n}\n\n// AES constants\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]\nvar G = (function () {\n // Compute double table\n var d = new Array(256)\n for (var j = 0; j < 256; j++) {\n if (j < 128) {\n d[j] = j << 1\n } else {\n d[j] = (j << 1) ^ 0x11b\n }\n }\n\n var SBOX = []\n var INV_SBOX = []\n var SUB_MIX = [[], [], [], []]\n var INV_SUB_MIX = [[], [], [], []]\n\n // Walk GF(2^8)\n var x = 0\n var xi = 0\n for (var i = 0; i < 256; ++i) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63\n SBOX[x] = sx\n INV_SBOX[sx] = x\n\n // Compute multiplication\n var x2 = d[x]\n var x4 = d[x2]\n var x8 = d[x4]\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100)\n SUB_MIX[0][x] = (t << 24) | (t >>> 8)\n SUB_MIX[1][x] = (t << 16) | (t >>> 16)\n SUB_MIX[2][x] = (t << 8) | (t >>> 24)\n SUB_MIX[3][x] = t\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)\n INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)\n INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)\n INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)\n INV_SUB_MIX[3][sx] = t\n\n if (x === 0) {\n x = xi = 1\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]]\n xi ^= d[d[xi]]\n }\n }\n\n return {\n SBOX: SBOX,\n INV_SBOX: INV_SBOX,\n SUB_MIX: SUB_MIX,\n INV_SUB_MIX: INV_SUB_MIX\n }\n})()\n\nfunction AES (key) {\n this._key = asUInt32Array(key)\n this._reset()\n}\n\nAES.blockSize = 4 * 4\nAES.keySize = 256 / 8\nAES.prototype.blockSize = AES.blockSize\nAES.prototype.keySize = AES.keySize\nAES.prototype._reset = function () {\n var keyWords = this._key\n var keySize = keyWords.length\n var nRounds = keySize + 6\n var ksRows = (nRounds + 1) * 4\n\n var keySchedule = []\n for (var k = 0; k < keySize; k++) {\n keySchedule[k] = keyWords[k]\n }\n\n for (k = keySize; k < ksRows; k++) {\n var t = keySchedule[k - 1]\n\n if (k % keySize === 0) {\n t = (t << 8) | (t >>> 24)\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n\n t ^= RCON[(k / keySize) | 0] << 24\n } else if (keySize > 6 && k % keySize === 4) {\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t\n }\n\n var invKeySchedule = []\n for (var ik = 0; ik < ksRows; ik++) {\n var ksR = ksRows - ik\n var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]\n\n if (ik < 4 || ksR <= 4) {\n invKeySchedule[ik] = tt\n } else {\n invKeySchedule[ik] =\n G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^\n G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^\n G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^\n G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]\n }\n }\n\n this._nRounds = nRounds\n this._keySchedule = keySchedule\n this._invKeySchedule = invKeySchedule\n}\n\nAES.prototype.encryptBlockRaw = function (M) {\n M = asUInt32Array(M)\n return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)\n}\n\nAES.prototype.encryptBlock = function (M) {\n var out = this.encryptBlockRaw(M)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[1], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[3], 12)\n return buf\n}\n\nAES.prototype.decryptBlock = function (M) {\n M = asUInt32Array(M)\n\n // swap\n var m1 = M[1]\n M[1] = M[3]\n M[3] = m1\n\n var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[3], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[1], 12)\n return buf\n}\n\nAES.prototype.scrub = function () {\n scrubVec(this._keySchedule)\n scrubVec(this._invKeySchedule)\n scrubVec(this._key)\n}\n\nmodule.exports.AES = AES\n","var Buffer = require('safe-buffer').Buffer\nvar MD5 = require('md5.js')\n\n/* eslint-disable camelcase */\nfunction EVP_BytesToKey (password, salt, keyBits, ivLen) {\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')\n if (salt) {\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')\n if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')\n }\n\n var keyLen = keyBits / 8\n var key = Buffer.alloc(keyLen)\n var iv = Buffer.alloc(ivLen || 0)\n var tmp = Buffer.alloc(0)\n\n while (keyLen > 0 || ivLen > 0) {\n var hash = new MD5()\n hash.update(tmp)\n hash.update(password)\n if (salt) hash.update(salt)\n tmp = hash.digest()\n\n var used = 0\n\n if (keyLen > 0) {\n var keyStart = key.length - keyLen\n used = Math.min(keyLen, tmp.length)\n tmp.copy(key, keyStart, 0, used)\n keyLen -= used\n }\n\n if (used < tmp.length && ivLen > 0) {\n var ivStart = iv.length - ivLen\n var length = Math.min(ivLen, tmp.length - used)\n tmp.copy(iv, ivStart, used, used + length)\n ivLen -= length\n }\n }\n\n tmp.fill(0)\n return { key: key, iv: iv }\n}\n\nmodule.exports = EVP_BytesToKey\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","var asn1 = require('./asn1')\nvar aesid = require('./aesid.json')\nvar fixProc = require('./fixProc')\nvar ciphers = require('browserify-aes')\nvar compat = require('pbkdf2')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = parseKeys\n\nfunction parseKeys (buffer) {\n var password\n if (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n password = buffer.passphrase\n buffer = buffer.key\n }\n if (typeof buffer === 'string') {\n buffer = Buffer.from(buffer)\n }\n\n var stripped = fixProc(buffer, password)\n\n var type = stripped.tag\n var data = stripped.data\n var subtype, ndata\n switch (type) {\n case 'CERTIFICATE':\n ndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo\n // falls through\n case 'PUBLIC KEY':\n if (!ndata) {\n ndata = asn1.PublicKey.decode(data, 'der')\n }\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der')\n case '1.2.840.10045.2.1':\n ndata.subjectPrivateKey = ndata.subjectPublicKey\n return {\n type: 'ec',\n data: ndata\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der')\n return {\n type: 'dsa',\n data: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n // throw new Error('unknown key type ' + type)\n case 'ENCRYPTED PRIVATE KEY':\n data = asn1.EncryptedPrivateKey.decode(data, 'der')\n data = decrypt(data, password)\n // falls through\n case 'PRIVATE KEY':\n ndata = asn1.PrivateKey.decode(data, 'der')\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der')\n case '1.2.840.10045.2.1':\n return {\n curve: ndata.algorithm.curve,\n privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der')\n return {\n type: 'dsa',\n params: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n // throw new Error('unknown key type ' + type)\n case 'RSA PUBLIC KEY':\n return asn1.RSAPublicKey.decode(data, 'der')\n case 'RSA PRIVATE KEY':\n return asn1.RSAPrivateKey.decode(data, 'der')\n case 'DSA PRIVATE KEY':\n return {\n type: 'dsa',\n params: asn1.DSAPrivateKey.decode(data, 'der')\n }\n case 'EC PRIVATE KEY':\n data = asn1.ECPrivateKey.decode(data, 'der')\n return {\n curve: data.parameters.value,\n privateKey: data.privateKey\n }\n default: throw new Error('unknown key type ' + type)\n }\n}\nparseKeys.signature = asn1.signature\nfunction decrypt (data, password) {\n var salt = data.algorithm.decrypt.kde.kdeparams.salt\n var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10)\n var algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')]\n var iv = data.algorithm.decrypt.cipher.iv\n var cipherText = data.subjectPrivateKey\n var keylen = parseInt(algo.split('-')[1], 10) / 8\n var key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1')\n var cipher = ciphers.createDecipheriv(algo, key, iv)\n var out = []\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n return Buffer.concat(out)\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","'use strict'\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\nvar Buffer = require('safe-buffer').Buffer\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n var M = ARRAY16\n for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n var a = this._a\n var b = this._b\n var c = this._c\n var d = this._d\n\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n this._a = (this._a + a) | 0\n this._b = (this._b + b) | 0\n this._c = (this._c + c) | 0\n this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.allocUnsafe(16)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","'use strict'\nvar Buffer = require('buffer').Buffer\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\n\nvar ARRAY16 = new Array(16)\n\nvar zl = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n]\n\nvar zr = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n]\n\nvar sl = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n]\n\nvar sr = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n]\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]\n\nfunction RIPEMD160 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n}\n\ninherits(RIPEMD160, HashBase)\n\nRIPEMD160.prototype._update = function () {\n var words = ARRAY16\n for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4)\n\n var al = this._a | 0\n var bl = this._b | 0\n var cl = this._c | 0\n var dl = this._d | 0\n var el = this._e | 0\n\n var ar = this._a | 0\n var br = this._b | 0\n var cr = this._c | 0\n var dr = this._d | 0\n var er = this._e | 0\n\n // computation\n for (var i = 0; i < 80; i += 1) {\n var tl\n var tr\n if (i < 16) {\n tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i])\n tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i])\n } else if (i < 32) {\n tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i])\n tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i])\n } else if (i < 48) {\n tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i])\n tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i])\n } else if (i < 64) {\n tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i])\n tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i])\n } else { // if (i<80) {\n tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i])\n tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i])\n }\n\n al = el\n el = dl\n dl = rotl(cl, 10)\n cl = bl\n bl = tl\n\n ar = er\n er = dr\n dr = rotl(cr, 10)\n cr = br\n br = tr\n }\n\n // update state\n var t = (this._b + cl + dr) | 0\n this._b = (this._c + dl + er) | 0\n this._c = (this._d + el + ar) | 0\n this._d = (this._e + al + br) | 0\n this._e = (this._a + bl + cr) | 0\n this._a = t\n}\n\nRIPEMD160.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n buffer.writeInt32LE(this._e, 16)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fn1 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn2 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn3 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn4 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn5 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0\n}\n\nmodule.exports = RIPEMD160\n","var exports = module.exports = function SHA (algorithm) {\n algorithm = algorithm.toLowerCase()\n\n var Algorithm = exports[algorithm]\n if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')\n\n return new Algorithm()\n}\n\nexports.sha = require('./sha')\nexports.sha1 = require('./sha1')\nexports.sha224 = require('./sha224')\nexports.sha256 = require('./sha256')\nexports.sha384 = require('./sha384')\nexports.sha512 = require('./sha512')\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\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","var ciphers = require('./encrypter')\nvar deciphers = require('./decrypter')\nvar modes = require('./modes/list.json')\n\nfunction getCiphers () {\n return Object.keys(modes)\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv\nexports.createDecipher = exports.Decipher = deciphers.createDecipher\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var modeModules = {\n ECB: require('./ecb'),\n CBC: require('./cbc'),\n CFB: require('./cfb'),\n CFB8: require('./cfb8'),\n CFB1: require('./cfb1'),\n OFB: require('./ofb'),\n CTR: require('./ctr'),\n GCM: require('./ctr')\n}\n\nvar modes = require('./list.json')\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","var BN = require('bn.js')\nvar randomBytes = require('randombytes')\n\nfunction blind (priv) {\n var r = getr(priv)\n var blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed()\n return { blinder: blinder, unblinder: r.invm(priv.modulus) }\n}\n\nfunction getr (priv) {\n var len = priv.modulus.byteLength()\n var r\n do {\n r = new BN(randomBytes(len))\n } while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2))\n return r\n}\n\nfunction crt (msg, priv) {\n var blinds = blind(priv)\n var len = priv.modulus.byteLength()\n var blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus)\n var c1 = blinded.toRed(BN.mont(priv.prime1))\n var c2 = blinded.toRed(BN.mont(priv.prime2))\n var qinv = priv.coefficient\n var p = priv.prime1\n var q = priv.prime2\n var m1 = c1.redPow(priv.exponent1).fromRed()\n var m2 = c2.redPow(priv.exponent2).fromRed()\n var h = m1.isub(m2).imul(qinv).umod(p).imul(q)\n return m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len)\n}\ncrt.getr = getr\n\nmodule.exports = crt\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","/* eslint-disable node/no-deprecated-api */\n\n'use strict'\n\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\nvar safer = {}\n\nvar key\n\nfor (key in buffer) {\n if (!buffer.hasOwnProperty(key)) continue\n if (key === 'SlowBuffer' || key === 'Buffer') continue\n safer[key] = buffer[key]\n}\n\nvar Safer = safer.Buffer = {}\nfor (key in Buffer) {\n if (!Buffer.hasOwnProperty(key)) continue\n if (key === 'allocUnsafe' || key === 'allocUnsafeSlow') continue\n Safer[key] = Buffer[key]\n}\n\nsafer.Buffer.prototype = Buffer.prototype\n\nif (!Safer.from || Safer.from === Uint8Array.from) {\n Safer.from = function (value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('The \"value\" argument must not be of type number. Received type ' + typeof value)\n }\n if (value && typeof value.length === 'undefined') {\n throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' + typeof value)\n }\n return Buffer(value, encodingOrOffset, length)\n }\n}\n\nif (!Safer.alloc) {\n Safer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('The \"size\" argument must be of type number. Received type ' + typeof size)\n }\n if (size < 0 || size >= 2 * (1 << 30)) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n var buf = Buffer(size)\n if (!fill || fill.length === 0) {\n buf.fill(0)\n } else if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n return buf\n }\n}\n\nif (!safer.kStringMaxLength) {\n try {\n safer.kStringMaxLength = process.binding('buffer').kStringMaxLength\n } catch (e) {\n // we can't determine kStringMaxLength in environments where process.binding\n // is unsupported, so let's not set it\n }\n}\n\nif (!safer.constants) {\n safer.constants = {\n MAX_LENGTH: safer.kMaxLength\n }\n if (safer.kStringMaxLength) {\n safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength\n }\n}\n\nmodule.exports = safer\n","'use strict';\n\nconst Reporter = require('../base/reporter').Reporter;\nconst EncoderBuffer = require('../base/buffer').EncoderBuffer;\nconst DecoderBuffer = require('../base/buffer').DecoderBuffer;\nconst assert = require('minimalistic-assert');\n\n// Supported tags\nconst tags = [\n 'seq', 'seqof', 'set', 'setof', 'objid', 'bool',\n 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc',\n 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str',\n 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr'\n];\n\n// Public methods list\nconst methods = [\n 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice',\n 'any', 'contains'\n].concat(tags);\n\n// Overrided methods list\nconst overrided = [\n '_peekTag', '_decodeTag', '_use',\n '_decodeStr', '_decodeObjid', '_decodeTime',\n '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList',\n\n '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime',\n '_encodeNull', '_encodeInt', '_encodeBool'\n];\n\nfunction Node(enc, parent, name) {\n const state = {};\n this._baseState = state;\n\n state.name = name;\n state.enc = enc;\n\n state.parent = parent || null;\n state.children = null;\n\n // State\n state.tag = null;\n state.args = null;\n state.reverseArgs = null;\n state.choice = null;\n state.optional = false;\n state.any = false;\n state.obj = false;\n state.use = null;\n state.useDecoder = null;\n state.key = null;\n state['default'] = null;\n state.explicit = null;\n state.implicit = null;\n state.contains = null;\n\n // Should create new instance on each method\n if (!state.parent) {\n state.children = [];\n this._wrap();\n }\n}\nmodule.exports = Node;\n\nconst stateProps = [\n 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice',\n 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit',\n 'implicit', 'contains'\n];\n\nNode.prototype.clone = function clone() {\n const state = this._baseState;\n const cstate = {};\n stateProps.forEach(function(prop) {\n cstate[prop] = state[prop];\n });\n const res = new this.constructor(cstate.parent);\n res._baseState = cstate;\n return res;\n};\n\nNode.prototype._wrap = function wrap() {\n const state = this._baseState;\n methods.forEach(function(method) {\n this[method] = function _wrappedMethod() {\n const clone = new this.constructor(this);\n state.children.push(clone);\n return clone[method].apply(clone, arguments);\n };\n }, this);\n};\n\nNode.prototype._init = function init(body) {\n const state = this._baseState;\n\n assert(state.parent === null);\n body.call(this);\n\n // Filter children\n state.children = state.children.filter(function(child) {\n return child._baseState.parent === this;\n }, this);\n assert.equal(state.children.length, 1, 'Root node can have only one child');\n};\n\nNode.prototype._useArgs = function useArgs(args) {\n const state = this._baseState;\n\n // Filter children and args\n const children = args.filter(function(arg) {\n return arg instanceof this.constructor;\n }, this);\n args = args.filter(function(arg) {\n return !(arg instanceof this.constructor);\n }, this);\n\n if (children.length !== 0) {\n assert(state.children === null);\n state.children = children;\n\n // Replace parent to maintain backward link\n children.forEach(function(child) {\n child._baseState.parent = this;\n }, this);\n }\n if (args.length !== 0) {\n assert(state.args === null);\n state.args = args;\n state.reverseArgs = args.map(function(arg) {\n if (typeof arg !== 'object' || arg.constructor !== Object)\n return arg;\n\n const res = {};\n Object.keys(arg).forEach(function(key) {\n if (key == (key | 0))\n key |= 0;\n const value = arg[key];\n res[value] = key;\n });\n return res;\n });\n }\n};\n\n//\n// Overrided methods\n//\n\noverrided.forEach(function(method) {\n Node.prototype[method] = function _overrided() {\n const state = this._baseState;\n throw new Error(method + ' not implemented for encoding: ' + state.enc);\n };\n});\n\n//\n// Public methods\n//\n\ntags.forEach(function(tag) {\n Node.prototype[tag] = function _tagMethod() {\n const state = this._baseState;\n const args = Array.prototype.slice.call(arguments);\n\n assert(state.tag === null);\n state.tag = tag;\n\n this._useArgs(args);\n\n return this;\n };\n});\n\nNode.prototype.use = function use(item) {\n assert(item);\n const state = this._baseState;\n\n assert(state.use === null);\n state.use = item;\n\n return this;\n};\n\nNode.prototype.optional = function optional() {\n const state = this._baseState;\n\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.def = function def(val) {\n const state = this._baseState;\n\n assert(state['default'] === null);\n state['default'] = val;\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n const state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.explicit = num;\n\n return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n const state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.implicit = num;\n\n return this;\n};\n\nNode.prototype.obj = function obj() {\n const state = this._baseState;\n const args = Array.prototype.slice.call(arguments);\n\n state.obj = true;\n\n if (args.length !== 0)\n this._useArgs(args);\n\n return this;\n};\n\nNode.prototype.key = function key(newKey) {\n const state = this._baseState;\n\n assert(state.key === null);\n state.key = newKey;\n\n return this;\n};\n\nNode.prototype.any = function any() {\n const state = this._baseState;\n\n state.any = true;\n\n return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n const state = this._baseState;\n\n assert(state.choice === null);\n state.choice = obj;\n this._useArgs(Object.keys(obj).map(function(key) {\n return obj[key];\n }));\n\n return this;\n};\n\nNode.prototype.contains = function contains(item) {\n const state = this._baseState;\n\n assert(state.use === null);\n state.contains = item;\n\n return this;\n};\n\n//\n// Decoding\n//\n\nNode.prototype._decode = function decode(input, options) {\n const state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return input.wrapResult(state.children[0]._decode(input, options));\n\n let result = state['default'];\n let present = true;\n\n let prevKey = null;\n if (state.key !== null)\n prevKey = input.enterKey(state.key);\n\n // Check if tag is there\n if (state.optional) {\n let tag = null;\n if (state.explicit !== null)\n tag = state.explicit;\n else if (state.implicit !== null)\n tag = state.implicit;\n else if (state.tag !== null)\n tag = state.tag;\n\n if (tag === null && !state.any) {\n // Trial and Error\n const save = input.save();\n try {\n if (state.choice === null)\n this._decodeGeneric(state.tag, input, options);\n else\n this._decodeChoice(input, options);\n present = true;\n } catch (e) {\n present = false;\n }\n input.restore(save);\n } else {\n present = this._peekTag(input, tag, state.any);\n\n if (input.isError(present))\n return present;\n }\n }\n\n // Push object on stack\n let prevObj;\n if (state.obj && present)\n prevObj = input.enterObject();\n\n if (present) {\n // Unwrap explicit values\n if (state.explicit !== null) {\n const explicit = this._decodeTag(input, state.explicit);\n if (input.isError(explicit))\n return explicit;\n input = explicit;\n }\n\n const start = input.offset;\n\n // Unwrap implicit and normal values\n if (state.use === null && state.choice === null) {\n let save;\n if (state.any)\n save = input.save();\n const body = this._decodeTag(\n input,\n state.implicit !== null ? state.implicit : state.tag,\n state.any\n );\n if (input.isError(body))\n return body;\n\n if (state.any)\n result = input.raw(save);\n else\n input = body;\n }\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), start, input.length, 'tagged');\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), input.offset, input.length, 'content');\n\n // Select proper method for tag\n if (state.any) {\n // no-op\n } else if (state.choice === null) {\n result = this._decodeGeneric(state.tag, input, options);\n } else {\n result = this._decodeChoice(input, options);\n }\n\n if (input.isError(result))\n return result;\n\n // Decode children\n if (!state.any && state.choice === null && state.children !== null) {\n state.children.forEach(function decodeChildren(child) {\n // NOTE: We are ignoring errors here, to let parser continue with other\n // parts of encoded data\n child._decode(input, options);\n });\n }\n\n // Decode contained/encoded by schema, only in bit or octet strings\n if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n const data = new DecoderBuffer(result);\n result = this._getUse(state.contains, input._reporterState.obj)\n ._decode(data, options);\n }\n }\n\n // Pop object\n if (state.obj && present)\n result = input.leaveObject(prevObj);\n\n // Set key\n if (state.key !== null && (result !== null || present === true))\n input.leaveKey(prevKey, state.key, result);\n else if (prevKey !== null)\n input.exitKey(prevKey);\n\n return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n const state = this._baseState;\n\n if (tag === 'seq' || tag === 'set')\n return null;\n if (tag === 'seqof' || tag === 'setof')\n return this._decodeList(input, tag, state.args[0], options);\n else if (/str$/.test(tag))\n return this._decodeStr(input, tag, options);\n else if (tag === 'objid' && state.args)\n return this._decodeObjid(input, state.args[0], state.args[1], options);\n else if (tag === 'objid')\n return this._decodeObjid(input, null, null, options);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._decodeTime(input, tag, options);\n else if (tag === 'null_')\n return this._decodeNull(input, options);\n else if (tag === 'bool')\n return this._decodeBool(input, options);\n else if (tag === 'objDesc')\n return this._decodeStr(input, tag, options);\n else if (tag === 'int' || tag === 'enum')\n return this._decodeInt(input, state.args && state.args[0], options);\n\n if (state.use !== null) {\n return this._getUse(state.use, input._reporterState.obj)\n ._decode(input, options);\n } else {\n return input.error('unknown tag: ' + tag);\n }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n\n const state = this._baseState;\n // Create altered use decoder if implicit is set\n state.useDecoder = this._use(entity, obj);\n assert(state.useDecoder._baseState.parent === null);\n state.useDecoder = state.useDecoder._baseState.children[0];\n if (state.implicit !== state.useDecoder._baseState.implicit) {\n state.useDecoder = state.useDecoder.clone();\n state.useDecoder._baseState.implicit = state.implicit;\n }\n return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n const state = this._baseState;\n let result = null;\n let match = false;\n\n Object.keys(state.choice).some(function(key) {\n const save = input.save();\n const node = state.choice[key];\n try {\n const value = node._decode(input, options);\n if (input.isError(value))\n return false;\n\n result = { type: key, value: value };\n match = true;\n } catch (e) {\n input.restore(save);\n return false;\n }\n return true;\n }, this);\n\n if (!match)\n return input.error('Choice not matched');\n\n return result;\n};\n\n//\n// Encoding\n//\n\nNode.prototype._createEncoderBuffer = function createEncoderBuffer(data) {\n return new EncoderBuffer(data, this.reporter);\n};\n\nNode.prototype._encode = function encode(data, reporter, parent) {\n const state = this._baseState;\n if (state['default'] !== null && state['default'] === data)\n return;\n\n const result = this._encodeValue(data, reporter, parent);\n if (result === undefined)\n return;\n\n if (this._skipDefault(result, reporter, parent))\n return;\n\n return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n const state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return state.children[0]._encode(data, reporter || new Reporter());\n\n let result = null;\n\n // Set reporter to share it with a child class\n this.reporter = reporter;\n\n // Check if data is there\n if (state.optional && data === undefined) {\n if (state['default'] !== null)\n data = state['default'];\n else\n return;\n }\n\n // Encode children first\n let content = null;\n let primitive = false;\n if (state.any) {\n // Anything that was given is translated to buffer\n result = this._createEncoderBuffer(data);\n } else if (state.choice) {\n result = this._encodeChoice(data, reporter);\n } else if (state.contains) {\n content = this._getUse(state.contains, parent)._encode(data, reporter);\n primitive = true;\n } else if (state.children) {\n content = state.children.map(function(child) {\n if (child._baseState.tag === 'null_')\n return child._encode(null, reporter, data);\n\n if (child._baseState.key === null)\n return reporter.error('Child should have a key');\n const prevKey = reporter.enterKey(child._baseState.key);\n\n if (typeof data !== 'object')\n return reporter.error('Child expected, but input is not object');\n\n const res = child._encode(data[child._baseState.key], reporter, data);\n reporter.leaveKey(prevKey);\n\n return res;\n }, this).filter(function(child) {\n return child;\n });\n content = this._createEncoderBuffer(content);\n } else {\n if (state.tag === 'seqof' || state.tag === 'setof') {\n // TODO(indutny): this should be thrown on DSL level\n if (!(state.args && state.args.length === 1))\n return reporter.error('Too many args for : ' + state.tag);\n\n if (!Array.isArray(data))\n return reporter.error('seqof/setof, but data is not Array');\n\n const child = this.clone();\n child._baseState.implicit = null;\n content = this._createEncoderBuffer(data.map(function(item) {\n const state = this._baseState;\n\n return this._getUse(state.args[0], data)._encode(item, reporter);\n }, child));\n } else if (state.use !== null) {\n result = this._getUse(state.use, parent)._encode(data, reporter);\n } else {\n content = this._encodePrimitive(state.tag, data);\n primitive = true;\n }\n }\n\n // Encode data itself\n if (!state.any && state.choice === null) {\n const tag = state.implicit !== null ? state.implicit : state.tag;\n const cls = state.implicit === null ? 'universal' : 'context';\n\n if (tag === null) {\n if (state.use === null)\n reporter.error('Tag could be omitted only for .use()');\n } else {\n if (state.use === null)\n result = this._encodeComposite(tag, primitive, cls, content);\n }\n }\n\n // Wrap in explicit\n if (state.explicit !== null)\n result = this._encodeComposite(state.explicit, false, 'context', result);\n\n return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n const state = this._baseState;\n\n const node = state.choice[data.type];\n if (!node) {\n assert(\n false,\n data.type + ' not found in ' +\n JSON.stringify(Object.keys(state.choice)));\n }\n return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n const state = this._baseState;\n\n if (/str$/.test(tag))\n return this._encodeStr(data, tag);\n else if (tag === 'objid' && state.args)\n return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);\n else if (tag === 'objid')\n return this._encodeObjid(data, null, null);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._encodeTime(data, tag);\n else if (tag === 'null_')\n return this._encodeNull();\n else if (tag === 'int' || tag === 'enum')\n return this._encodeInt(data, state.args && state.reverseArgs[0]);\n else if (tag === 'bool')\n return this._encodeBool(data);\n else if (tag === 'objDesc')\n return this._encodeStr(data, tag);\n else\n throw new Error('Unsupported tag: ' + tag);\n};\n\nNode.prototype._isNumstr = function isNumstr(str) {\n return /^[0-9 ]*$/.test(str);\n};\n\nNode.prototype._isPrintstr = function isPrintstr(str) {\n return /^[A-Za-z0-9 '()+,-./:=?]*$/.test(str);\n};\n","'use strict';\n\nconst inherits = require('inherits');\n\nfunction Reporter(options) {\n this._reporterState = {\n obj: null,\n path: [],\n options: options || {},\n errors: []\n };\n}\nexports.Reporter = Reporter;\n\nReporter.prototype.isError = function isError(obj) {\n return obj instanceof ReporterError;\n};\n\nReporter.prototype.save = function save() {\n const state = this._reporterState;\n\n return { obj: state.obj, pathLen: state.path.length };\n};\n\nReporter.prototype.restore = function restore(data) {\n const state = this._reporterState;\n\n state.obj = data.obj;\n state.path = state.path.slice(0, data.pathLen);\n};\n\nReporter.prototype.enterKey = function enterKey(key) {\n return this._reporterState.path.push(key);\n};\n\nReporter.prototype.exitKey = function exitKey(index) {\n const state = this._reporterState;\n\n state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n const state = this._reporterState;\n\n this.exitKey(index);\n if (state.obj !== null)\n state.obj[key] = value;\n};\n\nReporter.prototype.path = function path() {\n return this._reporterState.path.join('/');\n};\n\nReporter.prototype.enterObject = function enterObject() {\n const state = this._reporterState;\n\n const prev = state.obj;\n state.obj = {};\n return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n const state = this._reporterState;\n\n const now = state.obj;\n state.obj = prev;\n return now;\n};\n\nReporter.prototype.error = function error(msg) {\n let err;\n const state = this._reporterState;\n\n const inherited = msg instanceof ReporterError;\n if (inherited) {\n err = msg;\n } else {\n err = new ReporterError(state.path.map(function(elem) {\n return '[' + JSON.stringify(elem) + ']';\n }).join(''), msg.message || msg, msg.stack);\n }\n\n if (!state.options.partial)\n throw err;\n\n if (!inherited)\n state.errors.push(err);\n\n return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n const state = this._reporterState;\n if (!state.options.partial)\n return result;\n\n return {\n result: this.isError(result) ? null : result,\n errors: state.errors\n };\n};\n\nfunction ReporterError(path, msg) {\n this.path = path;\n this.rethrow(msg);\n}\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n this.message = msg + ' at: ' + (this.path || '(shallow)');\n if (Error.captureStackTrace)\n Error.captureStackTrace(this, ReporterError);\n\n if (!this.stack) {\n try {\n // IE only adds stack when thrown\n throw new Error(this.message);\n } catch (e) {\n this.stack = e.stack;\n }\n }\n return this;\n};\n","'use strict';\n\n// Helper\nfunction reverse(map) {\n const res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n const value = map[key];\n res[value] = key;\n });\n\n return res;\n}\n\nexports.tagClass = {\n 0: 'universal',\n 1: 'application',\n 2: 'context',\n 3: 'private'\n};\nexports.tagClassByName = reverse(exports.tagClass);\n\nexports.tag = {\n 0x00: 'end',\n 0x01: 'bool',\n 0x02: 'int',\n 0x03: 'bitstr',\n 0x04: 'octstr',\n 0x05: 'null_',\n 0x06: 'objid',\n 0x07: 'objDesc',\n 0x08: 'external',\n 0x09: 'real',\n 0x0a: 'enum',\n 0x0b: 'embed',\n 0x0c: 'utf8str',\n 0x0d: 'relativeOid',\n 0x10: 'seq',\n 0x11: 'set',\n 0x12: 'numstr',\n 0x13: 'printstr',\n 0x14: 't61str',\n 0x15: 'videostr',\n 0x16: 'ia5str',\n 0x17: 'utctime',\n 0x18: 'gentime',\n 0x19: 'graphstr',\n 0x1a: 'iso646str',\n 0x1b: 'genstr',\n 0x1c: 'unistr',\n 0x1d: 'charstr',\n 0x1e: 'bmpstr'\n};\nexports.tagByName = reverse(exports.tag);\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","module.exports = require(\"regenerator-runtime\");\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { return str.substr(start, len) }\n : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('readable-stream').Transform\nvar inherits = require('inherits')\n\nfunction throwIfNotStringOrBuffer (val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer')\n }\n}\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","module.exports = require('events').EventEmitter;\n","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n]\n\nvar W = new Array(64)\n\nfunction Sha256 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha256, Hash)\n\nSha256.prototype.init = function () {\n this._a = 0x6a09e667\n this._b = 0xbb67ae85\n this._c = 0x3c6ef372\n this._d = 0xa54ff53a\n this._e = 0x510e527f\n this._f = 0x9b05688c\n this._g = 0x1f83d9ab\n this._h = 0x5be0cd19\n\n return this\n}\n\nfunction ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x) {\n return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)\n}\n\nfunction sigma1 (x) {\n return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)\n}\n\nfunction gamma0 (x) {\n return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)\n}\n\nfunction gamma1 (x) {\n return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)\n}\n\nSha256.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n var f = this._f | 0\n var g = this._g | 0\n var h = this._h | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0\n\n for (var j = 0; j < 64; ++j) {\n var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0\n var T2 = (sigma0(a) + maj(a, b, c)) | 0\n\n h = g\n g = f\n f = e\n e = (d + T1) | 0\n d = c\n c = b\n b = a\n a = (T1 + T2) | 0\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n this._f = (f + this._f) | 0\n this._g = (g + this._g) | 0\n this._h = (h + this._h) | 0\n}\n\nSha256.prototype._hash = function () {\n var H = Buffer.allocUnsafe(32)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n H.writeInt32BE(this._h, 28)\n\n return H\n}\n\nmodule.exports = Sha256\n","var inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]\n\nvar W = new Array(160)\n\nfunction Sha512 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n this._ah = 0x6a09e667\n this._bh = 0xbb67ae85\n this._ch = 0x3c6ef372\n this._dh = 0xa54ff53a\n this._eh = 0x510e527f\n this._fh = 0x9b05688c\n this._gh = 0x1f83d9ab\n this._hh = 0x5be0cd19\n\n this._al = 0xf3bcc908\n this._bl = 0x84caa73b\n this._cl = 0xfe94f82b\n this._dl = 0x5f1d36f1\n this._el = 0xade682d1\n this._fl = 0x2b3e6c1f\n this._gl = 0xfb41bd6b\n this._hl = 0x137e2179\n\n return this\n}\n\nfunction Ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n var W = this._w\n\n var ah = this._ah | 0\n var bh = this._bh | 0\n var ch = this._ch | 0\n var dh = this._dh | 0\n var eh = this._eh | 0\n var fh = this._fh | 0\n var gh = this._gh | 0\n var hh = this._hh | 0\n\n var al = this._al | 0\n var bl = this._bl | 0\n var cl = this._cl | 0\n var dl = this._dl | 0\n var el = this._el | 0\n var fl = this._fl | 0\n var gl = this._gl | 0\n var hl = this._hl | 0\n\n for (var i = 0; i < 32; i += 2) {\n W[i] = M.readInt32BE(i * 4)\n W[i + 1] = M.readInt32BE(i * 4 + 4)\n }\n for (; i < 160; i += 2) {\n var xh = W[i - 15 * 2]\n var xl = W[i - 15 * 2 + 1]\n var gamma0 = Gamma0(xh, xl)\n var gamma0l = Gamma0l(xl, xh)\n\n xh = W[i - 2 * 2]\n xl = W[i - 2 * 2 + 1]\n var gamma1 = Gamma1(xh, xl)\n var gamma1l = Gamma1l(xl, xh)\n\n // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n var Wi7h = W[i - 7 * 2]\n var Wi7l = W[i - 7 * 2 + 1]\n\n var Wi16h = W[i - 16 * 2]\n var Wi16l = W[i - 16 * 2 + 1]\n\n var Wil = (gamma0l + Wi7l) | 0\n var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n Wil = (Wil + gamma1l) | 0\n Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n Wil = (Wil + Wi16l) | 0\n Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n W[i] = Wih\n W[i + 1] = Wil\n }\n\n for (var j = 0; j < 160; j += 2) {\n Wih = W[j]\n Wil = W[j + 1]\n\n var majh = maj(ah, bh, ch)\n var majl = maj(al, bl, cl)\n\n var sigma0h = sigma0(ah, al)\n var sigma0l = sigma0(al, ah)\n var sigma1h = sigma1(eh, el)\n var sigma1l = sigma1(el, eh)\n\n // t1 = h + sigma1 + ch + K[j] + W[j]\n var Kih = K[j]\n var Kil = K[j + 1]\n\n var chh = Ch(eh, fh, gh)\n var chl = Ch(el, fl, gl)\n\n var t1l = (hl + sigma1l) | 0\n var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n t1l = (t1l + chl) | 0\n t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n t1l = (t1l + Kil) | 0\n t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n t1l = (t1l + Wil) | 0\n t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n // t2 = sigma0 + maj\n var t2l = (sigma0l + majl) | 0\n var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n hh = gh\n hl = gl\n gh = fh\n gl = fl\n fh = eh\n fl = el\n el = (dl + t1l) | 0\n eh = (dh + t1h + getCarry(el, dl)) | 0\n dh = ch\n dl = cl\n ch = bh\n cl = bl\n bh = ah\n bl = al\n al = (t1l + t2l) | 0\n ah = (t1h + t2h + getCarry(al, t1l)) | 0\n }\n\n this._al = (this._al + al) | 0\n this._bl = (this._bl + bl) | 0\n this._cl = (this._cl + cl) | 0\n this._dl = (this._dl + dl) | 0\n this._el = (this._el + el) | 0\n this._fl = (this._fl + fl) | 0\n this._gl = (this._gl + gl) | 0\n this._hl = (this._hl + hl) | 0\n\n this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n var H = Buffer.allocUnsafe(64)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n writeInt64BE(this._gh, this._gl, 48)\n writeInt64BE(this._hh, this._hl, 56)\n\n return H\n}\n\nmodule.exports = Sha512\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, unpipeInfo);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","module.exports = require('events').EventEmitter;\n","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\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","var MD5 = require('md5.js')\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest()\n}\n","exports.pbkdf2 = require('./lib/async')\nexports.pbkdf2Sync = require('./lib/sync')\n","var MAX_ALLOC = Math.pow(2, 30) - 1 // default in iojs\n\nmodule.exports = function (iterations, keylen) {\n if (typeof iterations !== 'number') {\n throw new TypeError('Iterations not a number')\n }\n\n if (iterations < 0) {\n throw new TypeError('Bad iterations')\n }\n\n if (typeof keylen !== 'number') {\n throw new TypeError('Key length not a number')\n }\n\n if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */\n throw new TypeError('Bad key length')\n }\n}\n","var defaultEncoding\n/* istanbul ignore next */\nif (global.process && global.process.browser) {\n defaultEncoding = 'utf-8'\n} else if (global.process && global.process.version) {\n var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10)\n\n defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary'\n} else {\n defaultEncoding = 'utf-8'\n}\nmodule.exports = defaultEncoding\n","var md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar toBuffer = require('./to-buffer')\n\nvar ZEROS = Buffer.alloc(128)\nvar sizes = {\n md5: 16,\n sha1: 20,\n sha224: 28,\n sha256: 32,\n sha384: 48,\n sha512: 64,\n rmd160: 20,\n ripemd160: 20\n}\n\nfunction Hmac (alg, key, saltLen) {\n var hash = getDigest(alg)\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n if (key.length > blocksize) {\n key = hash(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = Buffer.allocUnsafe(blocksize + sizes[alg])\n var opad = Buffer.allocUnsafe(blocksize + sizes[alg])\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4)\n ipad.copy(ipad1, 0, 0, blocksize)\n this.ipad1 = ipad1\n this.ipad2 = ipad\n this.opad = opad\n this.alg = alg\n this.blocksize = blocksize\n this.hash = hash\n this.size = sizes[alg]\n}\n\nHmac.prototype.run = function (data, ipad) {\n data.copy(ipad, this.blocksize)\n var h = this.hash(ipad)\n h.copy(this.opad, this.blocksize)\n return this.hash(this.opad)\n}\n\nfunction getDigest (alg) {\n function shaFunc (data) {\n return sha(alg).update(data).digest()\n }\n function rmd160Func (data) {\n return new RIPEMD160().update(data).digest()\n }\n\n if (alg === 'rmd160' || alg === 'ripemd160') return rmd160Func\n if (alg === 'md5') return md5\n return shaFunc\n}\n\nfunction pbkdf2 (password, salt, iterations, keylen, digest) {\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n\n digest = digest || 'sha1'\n\n var hmac = new Hmac(digest, password, salt.length)\n\n var DK = Buffer.allocUnsafe(keylen)\n var block1 = Buffer.allocUnsafe(salt.length + 4)\n salt.copy(block1, 0, 0, salt.length)\n\n var destPos = 0\n var hLen = sizes[digest]\n var l = Math.ceil(keylen / hLen)\n\n for (var i = 1; i <= l; i++) {\n block1.writeUInt32BE(i, salt.length)\n\n var T = hmac.run(block1, hmac.ipad1)\n var U = T\n\n for (var j = 1; j < iterations; j++) {\n U = hmac.run(U, hmac.ipad2)\n for (var k = 0; k < hLen; k++) T[k] ^= U[k]\n }\n\n T.copy(DK, destPos)\n destPos += hLen\n }\n\n return DK\n}\n\nmodule.exports = pbkdf2\n","var Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (thing, encoding, name) {\n if (Buffer.isBuffer(thing)) {\n return thing\n } else if (typeof thing === 'string') {\n return Buffer.from(thing, encoding)\n } else if (ArrayBuffer.isView(thing)) {\n return Buffer.from(thing.buffer)\n } else {\n throw new TypeError(name + ' must be a string, a Buffer, a typed array or a DataView')\n }\n}\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","'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 xor = require('buffer-xor')\nvar Buffer = require('safe-buffer').Buffer\nvar incr32 = require('../incr32')\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","function incr32 (iv) {\n var len = iv.length\n var item\n while (len--) {\n item = iv.readUInt8(len)\n if (item === 255) {\n iv.writeUInt8(0, len)\n } else {\n item++\n iv.writeUInt8(item, len)\n break\n }\n }\n}\nmodule.exports = incr32\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\nvar GHASH = require('./ghash')\nvar xor = require('buffer-xor')\nvar incr32 = require('./incr32')\n\nfunction xorTest (a, b) {\n var out = 0\n if (a.length !== b.length) out++\n\n var len = Math.min(a.length, b.length)\n for (var i = 0; i < len; ++i) {\n out += (a[i] ^ b[i])\n }\n\n return out\n}\n\nfunction calcIv (self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n }\n var ghash = new GHASH(ck)\n var len = iv.length\n var toPad = len % 16\n ghash.update(iv)\n if (toPad) {\n toPad = 16 - toPad\n ghash.update(Buffer.alloc(toPad, 0))\n }\n ghash.update(Buffer.alloc(8, 0))\n var ivBits = len * 8\n var tail = Buffer.alloc(8)\n tail.writeUIntBE(ivBits, 0, 8)\n ghash.update(tail)\n self._finID = ghash.state\n var out = Buffer.from(self._finID)\n incr32(out)\n return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n var h = Buffer.alloc(4, 0)\n\n this._cipher = new aes.AES(key)\n var ck = this._cipher.encryptBlock(h)\n this._ghash = new GHASH(ck)\n iv = calcIv(this, iv, ck)\n\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._alen = 0\n this._len = 0\n this._mode = mode\n\n this._authTag = null\n this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - (this._alen % 16)\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0)\n this._ghash.update(rump)\n }\n }\n\n this._called = true\n var out = this._mode.encrypt(this, chunk)\n if (this._decrypt) {\n this._ghash.update(chunk)\n } else {\n this._ghash.update(out)\n }\n this._len += chunk.length\n return out\n}\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')\n\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')\n\n this._authTag = tag\n this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')\n\n return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')\n\n this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n if (this._called) throw new Error('Attempting to set AAD in unsupported state')\n\n this._ghash.update(buf)\n this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\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","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var bn = require('bn.js');\nvar brorand = require('brorand');\n\nfunction MillerRabin(rand) {\n this.rand = rand || new brorand.Rand();\n}\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n var len = n.bitLength();\n var min_bytes = Math.ceil(len / 8);\n\n // Generage random bytes until a number less than n is found.\n // This ensures that 0..n-1 have an equal probability of being selected.\n do\n var a = new bn(this.rand.generate(min_bytes));\n while (a.cmp(n) >= 0);\n\n return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n // Generate a random number greater than or equal to start and less than stop.\n var size = stop.sub(start);\n return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n var prime = true;\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n if (cb)\n cb(a);\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return false;\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s)\n return false;\n }\n\n return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n\n var g = n.gcd(a);\n if (g.cmpn(1) !== 0)\n return g;\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return x.fromRed().subn(1).gcd(n);\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s) {\n x = x.redSqr();\n return x.fromRed().subn(1).gcd(n);\n }\n }\n\n return false;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","module.exports = require('events').EventEmitter;\n","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","'use strict';\n\nconst asn1 = exports;\n\nasn1.bignum = require('bn.js');\n\nasn1.define = require('./asn1/api').define;\nasn1.base = require('./asn1/base');\nasn1.constants = require('./asn1/constants');\nasn1.decoders = require('./asn1/decoders');\nasn1.encoders = require('./asn1/encoders');\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nconst encoders = exports;\n\nencoders.der = require('./der');\nencoders.pem = require('./pem');\n","'use strict';\n\nconst inherits = require('inherits');\nconst Buffer = require('safer-buffer').Buffer;\nconst Node = require('../base/node');\n\n// Import DER constants\nconst der = require('../constants/der');\n\nfunction DEREncoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n}\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n return this.tree._encode(data, reporter).join();\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n Node.call(this, 'der', parent);\n}\ninherits(DERNode, Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag,\n primitive,\n cls,\n content) {\n const encodedTag = encodeTag(tag, primitive, cls, this.reporter);\n\n // Short form\n if (content.length < 0x80) {\n const header = Buffer.alloc(2);\n header[0] = encodedTag;\n header[1] = content.length;\n return this._createEncoderBuffer([ header, content ]);\n }\n\n // Long form\n // Count octets required to store length\n let lenOctets = 1;\n for (let i = content.length; i >= 0x100; i >>= 8)\n lenOctets++;\n\n const header = Buffer.alloc(1 + 1 + lenOctets);\n header[0] = encodedTag;\n header[1] = 0x80 | lenOctets;\n\n for (let i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)\n header[i] = j & 0xff;\n\n return this._createEncoderBuffer([ header, content ]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n if (tag === 'bitstr') {\n return this._createEncoderBuffer([ str.unused | 0, str.data ]);\n } else if (tag === 'bmpstr') {\n const buf = Buffer.alloc(str.length * 2);\n for (let i = 0; i < str.length; i++) {\n buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n }\n return this._createEncoderBuffer(buf);\n } else if (tag === 'numstr') {\n if (!this._isNumstr(str)) {\n return this.reporter.error('Encoding of string type: numstr supports ' +\n 'only digits and space');\n }\n return this._createEncoderBuffer(str);\n } else if (tag === 'printstr') {\n if (!this._isPrintstr(str)) {\n return this.reporter.error('Encoding of string type: printstr supports ' +\n 'only latin upper and lower case letters, ' +\n 'digits, space, apostrophe, left and rigth ' +\n 'parenthesis, plus sign, comma, hyphen, ' +\n 'dot, slash, colon, equal sign, ' +\n 'question mark');\n }\n return this._createEncoderBuffer(str);\n } else if (/str$/.test(tag)) {\n return this._createEncoderBuffer(str);\n } else if (tag === 'objDesc') {\n return this._createEncoderBuffer(str);\n } else {\n return this.reporter.error('Encoding of string type: ' + tag +\n ' unsupported');\n }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n if (typeof id === 'string') {\n if (!values)\n return this.reporter.error('string objid given, but no values map found');\n if (!values.hasOwnProperty(id))\n return this.reporter.error('objid not found in values map');\n id = values[id].split(/[\\s.]+/g);\n for (let i = 0; i < id.length; i++)\n id[i] |= 0;\n } else if (Array.isArray(id)) {\n id = id.slice();\n for (let i = 0; i < id.length; i++)\n id[i] |= 0;\n }\n\n if (!Array.isArray(id)) {\n return this.reporter.error('objid() should be either array or string, ' +\n 'got: ' + JSON.stringify(id));\n }\n\n if (!relative) {\n if (id[1] >= 40)\n return this.reporter.error('Second objid identifier OOB');\n id.splice(0, 2, id[0] * 40 + id[1]);\n }\n\n // Count number of octets\n let size = 0;\n for (let i = 0; i < id.length; i++) {\n let ident = id[i];\n for (size++; ident >= 0x80; ident >>= 7)\n size++;\n }\n\n const objid = Buffer.alloc(size);\n let offset = objid.length - 1;\n for (let i = id.length - 1; i >= 0; i--) {\n let ident = id[i];\n objid[offset--] = ident & 0x7f;\n while ((ident >>= 7) > 0)\n objid[offset--] = 0x80 | (ident & 0x7f);\n }\n\n return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n if (num < 10)\n return '0' + num;\n else\n return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n let str;\n const date = new Date(time);\n\n if (tag === 'gentime') {\n str = [\n two(date.getUTCFullYear()),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else if (tag === 'utctime') {\n str = [\n two(date.getUTCFullYear() % 100),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else {\n this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n }\n\n return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n if (typeof num === 'string') {\n if (!values)\n return this.reporter.error('String int or enum given, but no values map');\n if (!values.hasOwnProperty(num)) {\n return this.reporter.error('Values map doesn\\'t contain: ' +\n JSON.stringify(num));\n }\n num = values[num];\n }\n\n // Bignum, assume big endian\n if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n const numArray = num.toArray();\n if (!num.sign && numArray[0] & 0x80) {\n numArray.unshift(0);\n }\n num = Buffer.from(numArray);\n }\n\n if (Buffer.isBuffer(num)) {\n let size = num.length;\n if (num.length === 0)\n size++;\n\n const out = Buffer.alloc(size);\n num.copy(out);\n if (num.length === 0)\n out[0] = 0;\n return this._createEncoderBuffer(out);\n }\n\n if (num < 0x80)\n return this._createEncoderBuffer(num);\n\n if (num < 0x100)\n return this._createEncoderBuffer([0, num]);\n\n let size = 1;\n for (let i = num; i >= 0x100; i >>= 8)\n size++;\n\n const out = new Array(size);\n for (let i = out.length - 1; i >= 0; i--) {\n out[i] = num & 0xff;\n num >>= 8;\n }\n if(out[0] & 0x80) {\n out.unshift(0);\n }\n\n return this._createEncoderBuffer(Buffer.from(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n const state = this._baseState;\n let i;\n if (state['default'] === null)\n return false;\n\n const data = dataBuffer.join();\n if (state.defaultBuffer === undefined)\n state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n\n if (data.length !== state.defaultBuffer.length)\n return false;\n\n for (i=0; i < data.length; i++)\n if (data[i] !== state.defaultBuffer[i])\n return false;\n\n return true;\n};\n\n// Utility methods\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n let res;\n\n if (tag === 'seqof')\n tag = 'seq';\n else if (tag === 'setof')\n tag = 'set';\n\n if (der.tagByName.hasOwnProperty(tag))\n res = der.tagByName[tag];\n else if (typeof tag === 'number' && (tag | 0) === tag)\n res = tag;\n else\n return reporter.error('Unknown tag: ' + tag);\n\n if (res >= 0x1f)\n return reporter.error('Multi-octet tag encoding unsupported');\n\n if (!primitive)\n res |= 0x20;\n\n res |= (der.tagClassByName[cls || 'universal'] << 6);\n\n return res;\n}\n","'use strict';\n\nconst decoders = exports;\n\ndecoders.der = require('./der');\ndecoders.pem = require('./pem');\n","'use strict';\n\nconst inherits = require('inherits');\n\nconst bignum = require('bn.js');\nconst DecoderBuffer = require('../base/buffer').DecoderBuffer;\nconst Node = require('../base/node');\n\n// Import DER constants\nconst der = require('../constants/der');\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n}\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n if (!DecoderBuffer.isDecoderBuffer(data)) {\n data = new DecoderBuffer(data, options);\n }\n\n return this.tree._decode(data, options);\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n Node.call(this, 'der', parent);\n}\ninherits(DERNode, Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty())\n return false;\n\n const state = buffer.save();\n const decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n buffer.restore(state);\n\n return decodedTag.tag === tag || decodedTag.tagStr === tag ||\n (decodedTag.tagStr + 'of') === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n const decodedTag = derDecodeTag(buffer,\n 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n let len = derDecodeLen(buffer,\n decodedTag.primitive,\n 'Failed to get length of \"' + tag + '\"');\n\n // Failure\n if (buffer.isError(len))\n return len;\n\n if (!any &&\n decodedTag.tag !== tag &&\n decodedTag.tagStr !== tag &&\n decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null)\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n\n // Indefinite length... find END tag\n const state = buffer.save();\n const res = this._skipUntilEnd(\n buffer,\n 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n if (buffer.isError(res))\n return res;\n\n len = buffer.offset - state.offset;\n buffer.restore(state);\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n for (;;) {\n const tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag))\n return tag;\n const len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len))\n return len;\n\n let res;\n if (tag.primitive || len !== null)\n res = buffer.skip(len);\n else\n res = this._skipUntilEnd(buffer, fail);\n\n // Failure\n if (buffer.isError(res))\n return res;\n\n if (tag.tagStr === 'end')\n break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,\n options) {\n const result = [];\n while (!buffer.isEmpty()) {\n const possibleEnd = this._peekTag(buffer, 'end');\n if (buffer.isError(possibleEnd))\n return possibleEnd;\n\n const res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd)\n break;\n result.push(res);\n }\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n const unused = buffer.readUInt8();\n if (buffer.isError(unused))\n return unused;\n return { unused: unused, data: buffer.raw() };\n } else if (tag === 'bmpstr') {\n const raw = buffer.raw();\n if (raw.length % 2 === 1)\n return buffer.error('Decoding of string type: bmpstr length mismatch');\n\n let str = '';\n for (let i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n return str;\n } else if (tag === 'numstr') {\n const numstr = buffer.raw().toString('ascii');\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' +\n 'numstr unsupported characters');\n }\n return numstr;\n } else if (tag === 'octstr') {\n return buffer.raw();\n } else if (tag === 'objDesc') {\n return buffer.raw();\n } else if (tag === 'printstr') {\n const printstr = buffer.raw().toString('ascii');\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' +\n 'printstr unsupported characters');\n }\n return printstr;\n } else if (/str$/.test(tag)) {\n return buffer.raw().toString();\n } else {\n return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n let result;\n const identifiers = [];\n let ident = 0;\n let subident = 0;\n while (!buffer.isEmpty()) {\n subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n if (subident & 0x80)\n identifiers.push(ident);\n\n const first = (identifiers[0] / 40) | 0;\n const second = identifiers[0] % 40;\n\n if (relative)\n result = identifiers;\n else\n result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n let tmp = values[result.join(' ')];\n if (tmp === undefined)\n tmp = values[result.join('.')];\n if (tmp !== undefined)\n result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n const str = buffer.raw().toString();\n\n let year;\n let mon;\n let day;\n let hour;\n let min;\n let sec;\n if (tag === 'gentime') {\n year = str.slice(0, 4) | 0;\n mon = str.slice(4, 6) | 0;\n day = str.slice(6, 8) | 0;\n hour = str.slice(8, 10) | 0;\n min = str.slice(10, 12) | 0;\n sec = str.slice(12, 14) | 0;\n } else if (tag === 'utctime') {\n year = str.slice(0, 2) | 0;\n mon = str.slice(2, 4) | 0;\n day = str.slice(4, 6) | 0;\n hour = str.slice(6, 8) | 0;\n min = str.slice(8, 10) | 0;\n sec = str.slice(10, 12) | 0;\n if (year < 70)\n year = 2000 + year;\n else\n year = 1900 + year;\n } else {\n return buffer.error('Decoding ' + tag + ' time is not supported yet');\n }\n\n return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull() {\n return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n const res = buffer.readUInt8();\n if (buffer.isError(res))\n return res;\n else\n return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n const raw = buffer.raw();\n let res = new bignum(raw);\n\n if (values)\n res = values[res.toString(10)] || res;\n\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getDecoder('der').tree;\n};\n\n// Utility methods\n\nfunction derDecodeTag(buf, fail) {\n let tag = buf.readUInt8(fail);\n if (buf.isError(tag))\n return tag;\n\n const cls = der.tagClass[tag >> 6];\n const primitive = (tag & 0x20) === 0;\n\n // Multi-octet tag - load\n if ((tag & 0x1f) === 0x1f) {\n let oct = tag;\n tag = 0;\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct))\n return oct;\n\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n const tagStr = der.tag[tag];\n\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n let len = buf.readUInt8(fail);\n if (buf.isError(len))\n return len;\n\n // Indefinite form\n if (!primitive && len === 0x80)\n return null;\n\n // Definite form\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n }\n\n // Long form\n const num = len & 0x7f;\n if (num > 4)\n return buf.error('length octect is too long');\n\n len = 0;\n for (let i = 0; i < num; i++) {\n len <<= 8;\n const j = buf.readUInt8(fail);\n if (buf.isError(j))\n return j;\n len |= j;\n }\n\n return len;\n}\n","var createHash = require('create-hash')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (seed, len) {\n var t = Buffer.alloc(0)\n var i = 0\n var c\n while (t.length < len) {\n c = i2ops(i++)\n t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()])\n }\n return t.slice(0, len)\n}\n\nfunction i2ops (c) {\n var out = Buffer.allocUnsafe(4)\n out.writeUInt32BE(c, 0)\n return out\n}\n","module.exports = function xor (a, b) {\n var len = a.length\n var i = -1\n while (++i < len) {\n a[i] ^= b[i]\n }\n return a\n}\n","var BN = require('bn.js')\nvar Buffer = require('safe-buffer').Buffer\n\nfunction withPublic (paddedMsg, key) {\n return Buffer.from(paddedMsg\n .toRed(BN.mont(key.modulus))\n .redPow(new BN(key.publicExponent))\n .fromRed()\n .toArray())\n}\n\nmodule.exports = withPublic\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","\n// We are modularizing this manually because the current modularize setting in Emscripten has some issues:\n// https://github.com/kripken/emscripten/issues/5820\n// In addition, When you use emcc's modularization, it still expects to export a global object called `Module`,\n// which is able to be used/called before the WASM is loaded.\n// The modularization below exports a promise that loads and resolves to the actual sql.js module.\n// That way, this module can't be used before the WASM is finished loading.\n\n// We are going to define a function that a user will call to start loading initializing our Sql.js library\n// However, that function might be called multiple times, and on subsequent calls, we don't actually want it to instantiate a new instance of the Module\n// Instead, we want to return the previously loaded module\n\n// TODO: Make this not declare a global if used in the browser\nvar initSqlJsPromise = undefined;\n\nvar initSqlJs = function (moduleConfig) {\n\n if (initSqlJsPromise){\n return initSqlJsPromise;\n }\n // If we're here, we've never called this function before\n initSqlJsPromise = new Promise(function (resolveModule, reject) {\n\n // We are modularizing this manually because the current modularize setting in Emscripten has some issues:\n // https://github.com/kripken/emscripten/issues/5820\n\n // The way to affect the loading of emcc compiled modules is to create a variable called `Module` and add\n // properties to it, like `preRun`, `postRun`, etc\n // We are using that to get notified when the WASM has finished loading.\n // Only then will we return our promise\n\n // If they passed in a moduleConfig object, use that\n // Otherwise, initialize Module to the empty object\n var Module = typeof moduleConfig !== 'undefined' ? moduleConfig : {};\n\n // EMCC only allows for a single onAbort function (not an array of functions)\n // So if the user defined their own onAbort function, we remember it and call it\n var originalOnAbortFunction = Module['onAbort'];\n Module['onAbort'] = function (errorThatCausedAbort) {\n reject(new Error(errorThatCausedAbort));\n if (originalOnAbortFunction){\n originalOnAbortFunction(errorThatCausedAbort);\n }\n };\n\n Module['postRun'] = Module['postRun'] || [];\n Module['postRun'].push(function () {\n // When Emscripted calls postRun, this promise resolves with the built Module\n resolveModule(Module);\n });\n\n // There is a section of code in the emcc-generated code below that looks like this:\n // (Note that this is lowercase `module`)\n // if (typeof module !== 'undefined') {\n // module['exports'] = Module;\n // }\n // When that runs, it's going to overwrite our own modularization export efforts in shell-post.js!\n // The only way to tell emcc not to emit it is to pass the MODULARIZE=1 or MODULARIZE_INSTANCE=1 flags,\n // but that carries with it additional unnecessary baggage/bugs we don't want either.\n // So, we have three options:\n // 1) We undefine `module`\n // 2) We remember what `module['exports']` was at the beginning of this function and we restore it later\n // 3) We write a script to remove those lines of code as part of the Make process.\n //\n // Since those are the only lines of code that care about module, we will undefine it. It's the most straightforward\n // of the options, and has the side effect of reducing emcc's efforts to modify the module if its output were to change in the future.\n // That's a nice side effect since we're handling the modularization efforts ourselves\n module = undefined;\n\n // The emcc-generated code and shell-post.js code goes below,\n // meaning that all of it runs inside of this promise. If anything throws an exception, our promise will abort\n\nvar e;e||(e=typeof Module !== 'undefined' ? Module : {});null;\ne.onRuntimeInitialized=function(){function a(h,l){this.Ra=h;this.db=l;this.Qa=1;this.lb=[]}function b(h,l){this.db=l;l=aa(h)+1;this.eb=ba(l);if(null===this.eb)throw Error(\"Unable to allocate memory for the SQL string\");k(h,m,this.eb,l);this.jb=this.eb;this.$a=this.pb=null}function c(h){this.filename=\"dbfile_\"+(4294967295*Math.random()>>>0);if(null!=h){var l=this.filename,p=l?r(\"//\"+l):\"/\";l=ca(!0,!0);p=da(p,(void 0!==l?l:438)&4095|32768,0);if(h){if(\"string\"===typeof h){for(var q=Array(h.length),B=\n0,ha=h.length;Bd;++d)g.parameters.push(f[\"viii\"[d]]);\nd=new WebAssembly.Function(g,a)}else{f=[1,0,1,96];g={i:127,j:126,f:125,d:124};f.push(3);for(d=0;3>d;++d)f.push(g[\"iii\"[d]]);f.push(0);f[1]=f.length-2;d=new Uint8Array([0,97,115,109,1,0,0,0].concat(f,[2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0]));d=new WebAssembly.Module(d);d=(new WebAssembly.Instance(d,{e:{f:a}})).exports.f}b.set(c,d)}Ia.set(a,c);a=c}return a}function ra(a){ua(a)}var Ka;e.wasmBinary&&(Ka=e.wasmBinary);var noExitRuntime;e.noExitRuntime&&(noExitRuntime=e.noExitRuntime);\n\"object\"!==typeof WebAssembly&&K(\"no native wasm support detected\");\nfunction pa(a){var b=\"i32\";\"*\"===b.charAt(b.length-1)&&(b=\"i32\");switch(b){case \"i1\":z[a>>0]=0;break;case \"i8\":z[a>>0]=0;break;case \"i16\":La[a>>1]=0;break;case \"i32\":L[a>>2]=0;break;case \"i64\":M=[0,(N=0,1<=+Math.abs(N)?0>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)];L[a>>2]=M[0];L[a+4>>2]=M[1];break;case \"float\":Ma[a>>2]=0;break;case \"double\":Na[a>>3]=0;break;default:K(\"invalid type for setValue: \"+b)}}\nfunction x(a,b){b=b||\"i8\";\"*\"===b.charAt(b.length-1)&&(b=\"i32\");switch(b){case \"i1\":return z[a>>0];case \"i8\":return z[a>>0];case \"i16\":return La[a>>1];case \"i32\":return L[a>>2];case \"i64\":return L[a>>2];case \"float\":return Ma[a>>2];case \"double\":return Na[a>>3];default:K(\"invalid type for getValue: \"+b)}return null}var Oa,Ja,Pa=!1;function assert(a,b){a||K(\"Assertion failed: \"+b)}function Qa(a){var b=e[\"_\"+a];assert(b,\"Cannot call unknown function \"+a+\", make sure it is exported\");return b}\nfunction Ra(a,b,c,d){var f={string:function(v){var C=0;if(null!==v&&void 0!==v&&0!==v){var H=(v.length<<2)+1;C=y(H);k(v,m,C,H)}return C},array:function(v){var C=y(v.length);z.set(v,C);return C}},g=Qa(a),n=[];a=0;if(d)for(var t=0;t=d);)++c;if(16f?d+=String.fromCharCode(f):(f-=65536,d+=String.fromCharCode(55296|f>>10,56320|f&1023))}}else d+=String.fromCharCode(f)}return d}function A(a,b){return a?Va(m,a,b):\"\"}\nfunction k(a,b,c,d){if(!(0=n){var t=a.charCodeAt(++g);n=65536+((n&1023)<<10)|t&1023}if(127>=n){if(c>=d)break;b[c++]=n}else{if(2047>=n){if(c+1>=d)break;b[c++]=192|n>>6}else{if(65535>=n){if(c+2>=d)break;b[c++]=224|n>>12}else{if(c+3>=d)break;b[c++]=240|n>>18;b[c++]=128|n>>12&63}b[c++]=128|n>>6&63}b[c++]=128|n&63}}b[c]=0;return c-f}\nfunction aa(a){for(var b=0,c=0;c=d&&(d=65536+((d&1023)<<10)|a.charCodeAt(++c)&1023);127>=d?++b:b=2047>=d?b+2:65535>=d?b+3:b+4}return b}function Wa(a){var b=aa(a)+1,c=ba(b);c&&k(a,z,c,b);return c}var Xa,z,m,La,L,Ma,Na;\nfunction Ya(a){Xa=a;e.HEAP8=z=new Int8Array(a);e.HEAP16=La=new Int16Array(a);e.HEAP32=L=new Int32Array(a);e.HEAPU8=m=new Uint8Array(a);e.HEAPU16=new Uint16Array(a);e.HEAPU32=new Uint32Array(a);e.HEAPF32=Ma=new Float32Array(a);e.HEAPF64=Na=new Float64Array(a)}var Za=e.INITIAL_MEMORY||16777216;e.wasmMemory?Oa=e.wasmMemory:Oa=new WebAssembly.Memory({initial:Za/65536,maximum:32768});Oa&&(Xa=Oa.buffer);Za=Xa.byteLength;Ya(Xa);var $a=[],ab=[],bb=[],cb=[];\nfunction db(){var a=e.preRun.shift();$a.unshift(a)}var eb=0,fb=null,gb=null;e.preloadedImages={};e.preloadedAudios={};function K(a){if(e.onAbort)e.onAbort(a);J(a);Pa=!0;throw new WebAssembly.RuntimeError(\"abort(\"+a+\"). Build with -s ASSERTIONS=1 for more info.\");}function hb(a){var b=ib;return String.prototype.startsWith?b.startsWith(a):0===b.indexOf(a)}function jb(){return hb(\"data:application/octet-stream;base64,\")}var ib=\"sql-wasm.wasm\";\nif(!jb()){var kb=ib;ib=e.locateFile?e.locateFile(kb,I):I+kb}function lb(){try{if(Ka)return new Uint8Array(Ka);if(Ca)return Ca(ib);throw\"both async and sync fetching of the wasm failed\";}catch(a){K(a)}}function mb(){return Ka||!ya&&!G||\"function\"!==typeof fetch||hb(\"file://\")?Promise.resolve().then(lb):fetch(ib,{credentials:\"same-origin\"}).then(function(a){if(!a.ok)throw\"failed to load wasm binary file at '\"+ib+\"'\";return a.arrayBuffer()}).catch(function(){return lb()})}var N,M;\nfunction nb(a){for(;0>2]=60*(new Date).getTimezoneOffset();var b=(new Date).getFullYear(),c=new Date(b,0,1);b=new Date(b,6,1);L[vb()>>2]=Number(c.getTimezoneOffset()!=b.getTimezoneOffset());var d=a(c),f=a(b);d=Wa(d);f=Wa(f);b.getTimezoneOffset()>2]=d,L[xb()+4>>2]=f):(L[xb()>>2]=f,L[xb()+4>>2]=d)}}var tb;\nfunction yb(a,b){for(var c=0,d=a.length-1;0<=d;d--){var f=a[d];\".\"===f?a.splice(d,1):\"..\"===f?(a.splice(d,1),c++):c&&(a.splice(d,1),c--)}if(b)for(;c;c--)a.unshift(\"..\");return a}function r(a){var b=\"/\"===a.charAt(0),c=\"/\"===a.substr(-1);(a=yb(a.split(\"/\").filter(function(d){return!!d}),!b).join(\"/\"))||b||(a=\".\");a&&c&&(a+=\"/\");return(b?\"/\":\"\")+a}\nfunction zb(a){var b=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/.exec(a).slice(1);a=b[0];b=b[1];if(!a&&!b)return\".\";b&&(b=b.substr(0,b.length-1));return a+b}function Ab(a){if(\"/\"===a)return\"/\";a=r(a);a=a.replace(/\\/$/,\"\");var b=a.lastIndexOf(\"/\");return-1===b?a:a.substr(b+1)}function Bb(a){L[Cb()>>2]=a}\nfunction Db(){if(\"object\"===typeof crypto&&\"function\"===typeof crypto.getRandomValues){var a=new Uint8Array(1);return function(){crypto.getRandomValues(a);return a[0]}}if(za)try{var b=require(\"crypto\");return function(){return b.randomBytes(1)[0]}}catch(c){}return function(){K(\"randomDevice\")}}\nfunction Eb(){for(var a=\"\",b=!1,c=arguments.length-1;-1<=c&&!b;c--){b=0<=c?arguments[c]:\"/\";if(\"string\"!==typeof b)throw new TypeError(\"Arguments to path.resolve must be strings\");if(!b)return\"\";a=b+\"/\"+a;b=\"/\"===b.charAt(0)}a=yb(a.split(\"/\").filter(function(d){return!!d}),!b).join(\"/\");return(b?\"/\":\"\")+a||\".\"}var Fb=[];function Gb(a,b){Fb[a]={input:[],output:[],cb:b};Hb(a,Ib)}\nvar Ib={open:function(a){var b=Fb[a.node.rdev];if(!b)throw new O(43);a.tty=b;a.seekable=!1},close:function(a){a.tty.cb.flush(a.tty)},flush:function(a){a.tty.cb.flush(a.tty)},read:function(a,b,c,d){if(!a.tty||!a.tty.cb.xb)throw new O(60);for(var f=0,g=0;g=b||(b=Math.max(b,c*(1048576>c?2:1.125)>>>0),0!=c&&(b=Math.max(b,256)),c=a.Ma,a.Ma=new Uint8Array(b),0b)a.Ma.length=b;else for(;a.Ma.length=a.node.Sa)return 0;a=Math.min(a.node.Sa-f,d);if(8b)throw new O(28);return b},sb:function(a,b,c){P.vb(a.node,b+c);a.node.Sa=Math.max(a.node.Sa,b+c)},hb:function(a,b,c,d,f,g){assert(0===b);if(32768!==(a.node.mode&61440))throw new O(43);a=a.node.Ma;\nif(g&2||a.buffer!==Xa){if(0>>0)%T.length}function Wb(a){var b=Vb(a.parent.id,a.name);if(T[b]===a)T[b]=a.bb;else for(b=T[b];b;){if(b.bb===a){b.bb=a.bb;break}b=b.bb}}\nfunction Ob(a,b){var c;if(c=(c=Xb(a,\"x\"))?c:a.Na.lookup?0:2)throw new O(c,a);for(c=T[Vb(a.id,b)];c;c=c.bb){var d=c.name;if(c.parent.id===a.id&&d===b)return c}return a.Na.lookup(a,b)}function Mb(a,b,c,d){a=new Yb(a,b,c,d);b=Vb(a.parent.id,a.name);a.bb=T[b];return T[b]=a}function Q(a){return 16384===(a&61440)}var Zb={r:0,rs:1052672,\"r+\":2,w:577,wx:705,xw:705,\"w+\":578,\"wx+\":706,\"xw+\":706,a:1089,ax:1217,xa:1217,\"a+\":1090,\"ax+\":1218,\"xa+\":1218};\nfunction $b(a){var b=[\"r\",\"w\",\"rw\"][a&3];a&512&&(b+=\"w\");return b}function Xb(a,b){if(Sb)return 0;if(-1===b.indexOf(\"r\")||a.mode&292){if(-1!==b.indexOf(\"w\")&&!(a.mode&146)||-1!==b.indexOf(\"x\")&&!(a.mode&73))return 2}else return 2;return 0}function ac(a,b){try{return Ob(a,b),20}catch(c){}return Xb(a,\"wx\")}function bc(a,b,c){try{var d=Ob(a,b)}catch(f){return f.Pa}if(a=Xb(a,\"wx\"))return a;if(c){if(!Q(d.mode))return 54;if(d===d.parent||\"/\"===Ub(d))return 10}else if(Q(d.mode))return 31;return 0}\nfunction cc(a){var b=4096;for(a=a||0;a<=b;a++)if(!S[a])return a;throw new O(33);}function dc(a,b){ec||(ec=function(){},ec.prototype={});var c=new ec,d;for(d in a)c[d]=a[d];a=c;b=cc(b);a.fd=b;return S[b]=a}var Lb={open:function(a){a.Oa=Qb[a.node.rdev].Oa;a.Oa.open&&a.Oa.open(a)},Za:function(){throw new O(70);}};function Hb(a,b){Qb[a]={Oa:b}}\nfunction fc(a,b){var c=\"/\"===b,d=!b;if(c&&Pb)throw new O(10);if(!c&&!d){var f=V(b,{wb:!1});b=f.path;f=f.node;if(f.ab)throw new O(10);if(!Q(f.mode))throw new O(54);}b={type:a,Ub:{},yb:b,Mb:[]};a=a.Wa(b);a.Wa=b;b.root=a;c?Pb=a:f&&(f.ab=b,f.Wa&&f.Wa.Mb.push(b))}function da(a,b,c){var d=V(a,{parent:!0}).node;a=Ab(a);if(!a||\".\"===a||\"..\"===a)throw new O(28);var f=ac(d,a);if(f)throw new O(f);if(!d.Na.gb)throw new O(63);return d.Na.gb(d,a,b,c)}function W(a,b){da(a,(void 0!==b?b:511)&1023|16384,0)}\nfunction hc(a,b,c){\"undefined\"===typeof c&&(c=b,b=438);da(a,b|8192,c)}function ic(a,b){if(!Eb(a))throw new O(44);var c=V(b,{parent:!0}).node;if(!c)throw new O(44);b=Ab(b);var d=ac(c,b);if(d)throw new O(d);if(!c.Na.symlink)throw new O(63);c.Na.symlink(c,b,a)}\nfunction ta(a){var b=V(a,{parent:!0}).node,c=Ab(a),d=Ob(b,c),f=bc(b,c,!1);if(f)throw new O(f);if(!b.Na.unlink)throw new O(63);if(d.ab)throw new O(10);try{U.willDeletePath&&U.willDeletePath(a)}catch(g){J(\"FS.trackingDelegate['willDeletePath']('\"+a+\"') threw an exception: \"+g.message)}b.Na.unlink(b,c);Wb(d);try{if(U.onDeletePath)U.onDeletePath(a)}catch(g){J(\"FS.trackingDelegate['onDeletePath']('\"+a+\"') threw an exception: \"+g.message)}}\nfunction Tb(a){a=V(a).node;if(!a)throw new O(44);if(!a.Na.readlink)throw new O(28);return Eb(Ub(a.parent),a.Na.readlink(a))}function jc(a,b){a=V(a,{Ya:!b}).node;if(!a)throw new O(44);if(!a.Na.Ua)throw new O(63);return a.Na.Ua(a)}function kc(a){return jc(a,!0)}function ea(a,b){var c;\"string\"===typeof a?c=V(a,{Ya:!0}).node:c=a;if(!c.Na.Ta)throw new O(63);c.Na.Ta(c,{mode:b&4095|c.mode&-4096,timestamp:Date.now()})}\nfunction lc(a){var b;\"string\"===typeof a?b=V(a,{Ya:!0}).node:b=a;if(!b.Na.Ta)throw new O(63);b.Na.Ta(b,{timestamp:Date.now()})}function mc(a,b){if(0>b)throw new O(28);var c;\"string\"===typeof a?c=V(a,{Ya:!0}).node:c=a;if(!c.Na.Ta)throw new O(63);if(Q(c.mode))throw new O(31);if(32768!==(c.mode&61440))throw new O(28);if(a=Xb(c,\"w\"))throw new O(a);c.Na.Ta(c,{size:b,timestamp:Date.now()})}\nfunction u(a,b,c,d){if(\"\"===a)throw new O(44);if(\"string\"===typeof b){var f=Zb[b];if(\"undefined\"===typeof f)throw Error(\"Unknown file open mode: \"+b);b=f}c=b&64?(\"undefined\"===typeof c?438:c)&4095|32768:0;if(\"object\"===typeof a)var g=a;else{a=r(a);try{g=V(a,{Ya:!(b&131072)}).node}catch(n){}}f=!1;if(b&64)if(g){if(b&128)throw new O(20);}else g=da(a,c,0),f=!0;if(!g)throw new O(44);8192===(g.mode&61440)&&(b&=-513);if(b&65536&&!Q(g.mode))throw new O(54);if(!f&&(c=g?40960===(g.mode&61440)?32:Q(g.mode)&&\n(\"r\"!==$b(b)||b&512)?31:Xb(g,$b(b)):44))throw new O(c);b&512&&mc(g,0);b&=-131713;d=dc({node:g,path:Ub(g),flags:b,seekable:!0,position:0,Oa:g.Oa,Rb:[],error:!1},d);d.Oa.open&&d.Oa.open(d);!e.logReadFiles||b&1||(Pc||(Pc={}),a in Pc||(Pc[a]=1,J(\"FS.trackingDelegate error on read file: \"+a)));try{U.onOpenFile&&(g=0,1!==(b&2097155)&&(g|=1),0!==(b&2097155)&&(g|=2),U.onOpenFile(a,g))}catch(n){J(\"FS.trackingDelegate['onOpenFile']('\"+a+\"', flags) threw an exception: \"+n.message)}return d}\nfunction ka(a){if(null===a.fd)throw new O(8);a.ob&&(a.ob=null);try{a.Oa.close&&a.Oa.close(a)}catch(b){throw b;}finally{S[a.fd]=null}a.fd=null}function Qc(a,b,c){if(null===a.fd)throw new O(8);if(!a.seekable||!a.Oa.Za)throw new O(70);if(0!=c&&1!=c&&2!=c)throw new O(28);a.position=a.Oa.Za(a,b,c);a.Rb=[]}\nfunction Sc(a,b,c,d,f){if(0>d||0>f)throw new O(28);if(null===a.fd)throw new O(8);if(1===(a.flags&2097155))throw new O(8);if(Q(a.node.mode))throw new O(31);if(!a.Oa.read)throw new O(28);var g=\"undefined\"!==typeof f;if(!g)f=a.position;else if(!a.seekable)throw new O(70);b=a.Oa.read(a,b,c,d,f);g||(a.position+=b);return b}\nfunction fa(a,b,c,d,f,g){if(0>d||0>f)throw new O(28);if(null===a.fd)throw new O(8);if(0===(a.flags&2097155))throw new O(8);if(Q(a.node.mode))throw new O(31);if(!a.Oa.write)throw new O(28);a.seekable&&a.flags&1024&&Qc(a,0,2);var n=\"undefined\"!==typeof f;if(!n)f=a.position;else if(!a.seekable)throw new O(70);b=a.Oa.write(a,b,c,d,f,g);n||(a.position+=b);try{if(a.path&&U.onWriteToFile)U.onWriteToFile(a.path)}catch(t){J(\"FS.trackingDelegate['onWriteToFile']('\"+a.path+\"') threw an exception: \"+t.message)}return b}\nfunction sa(a){var b={encoding:\"binary\"};b=b||{};b.flags=b.flags||\"r\";b.encoding=b.encoding||\"binary\";if(\"utf8\"!==b.encoding&&\"binary\"!==b.encoding)throw Error('Invalid encoding type \"'+b.encoding+'\"');var c,d=u(a,b.flags);a=jc(a).size;var f=new Uint8Array(a);Sc(d,f,0,a,0);\"utf8\"===b.encoding?c=Va(f,0):\"binary\"===b.encoding&&(c=f);ka(d);return c}\nfunction Tc(){O||(O=function(a,b){this.node=b;this.Qb=function(c){this.Pa=c};this.Qb(a);this.message=\"FS error\"},O.prototype=Error(),O.prototype.constructor=O,[44].forEach(function(a){Nb[a]=new O(a);Nb[a].stack=\"\"}))}var Uc;function ca(a,b){var c=0;a&&(c|=365);b&&(c|=146);return c}\nfunction Vc(a,b,c){a=r(\"/dev/\"+a);var d=ca(!!b,!!c);Wc||(Wc=64);var f=Wc++<<8|0;Hb(f,{open:function(g){g.seekable=!1},close:function(){c&&c.buffer&&c.buffer.length&&c(10)},read:function(g,n,t,w){for(var v=0,C=0;C>2]=d.dev;L[c+4>>2]=0;L[c+8>>2]=d.ino;L[c+12>>2]=d.mode;L[c+16>>2]=d.nlink;L[c+20>>2]=d.uid;L[c+24>>2]=d.gid;L[c+28>>2]=d.rdev;L[c+32>>2]=0;M=[d.size>>>0,(N=d.size,1<=+Math.abs(N)?0>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)];L[c+40>>2]=M[0];L[c+44>>2]=M[1];L[c+48>>2]=4096;L[c+52>>2]=d.blocks;L[c+56>>2]=d.atime.getTime()/1E3|0;L[c+60>>2]=\n0;L[c+64>>2]=d.mtime.getTime()/1E3|0;L[c+68>>2]=0;L[c+72>>2]=d.ctime.getTime()/1E3|0;L[c+76>>2]=0;M=[d.ino>>>0,(N=d.ino,1<=+Math.abs(N)?0>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)];L[c+80>>2]=M[0];L[c+84>>2]=M[1];return 0}var Zc=void 0;function $c(){Zc+=4;return L[Zc-4>>2]}function Z(a){a=S[a];if(!a)throw new O(8);return a}var ad={};\nfunction bd(){if(!cd){var a={USER:\"web_user\",LOGNAME:\"web_user\",PATH:\"/\",PWD:\"/\",HOME:\"/home/web_user\",LANG:(\"object\"===typeof navigator&&navigator.languages&&navigator.languages[0]||\"C\").replace(\"-\",\"_\")+\".UTF-8\",_:xa||\"./this.program\"},b;for(b in ad)a[b]=ad[b];var c=[];for(b in a)c.push(b+\"=\"+a[b]);cd=c}return cd}var cd,dd;za?dd=function(){var a=process.hrtime();return 1E3*a[0]+a[1]/1E6}:\"undefined\"!==typeof dateNow?dd=dateNow:dd=function(){return performance.now()};\nfunction ed(a){for(var b=dd();dd()-b>2]);L[b>>2]=a.getSeconds();L[b+4>>2]=a.getMinutes();L[b+8>>2]=a.getHours();L[b+12>>2]=a.getDate();L[b+16>>2]=a.getMonth();L[b+20>>2]=a.getFullYear()-1900;L[b+24>>2]=a.getDay();var c=new Date(a.getFullYear(),0,1);L[b+28>>2]=(a.getTime()-c.getTime())/864E5|0;L[b+36>>2]=-(60*a.getTimezoneOffset());var d=(new Date(a.getFullYear(),6,1)).getTimezoneOffset();\nc=c.getTimezoneOffset();a=(d!=c&&a.getTimezoneOffset()==Math.min(c,d))|0;L[b+32>>2]=a;a=L[xb()+(a?4:0)>>2];L[b+40>>2]=a;return b},z:function(a,b){try{a=A(a);if(b&-8)var c=-28;else{var d;(d=V(a,{Ya:!0}).node)?(a=\"\",b&4&&(a+=\"r\"),b&2&&(a+=\"w\"),b&1&&(a+=\"x\"),c=a&&Xb(d,a)?-2:0):c=-44}return c}catch(f){return\"undefined\"!==typeof X&&f instanceof O||K(f),-f.Pa}},i:function(a,b){try{return a=A(a),ea(a,b),0}catch(c){return\"undefined\"!==typeof X&&c instanceof O||K(c),-c.Pa}},t:function(a){try{return a=A(a),\nlc(a),0}catch(b){return\"undefined\"!==typeof X&&b instanceof O||K(b),-b.Pa}},j:function(a,b){try{var c=S[a];if(!c)throw new O(8);ea(c.node,b);return 0}catch(d){return\"undefined\"!==typeof X&&d instanceof O||K(d),-d.Pa}},u:function(a){try{var b=S[a];if(!b)throw new O(8);lc(b.node);return 0}catch(c){return\"undefined\"!==typeof X&&c instanceof O||K(c),-c.Pa}},c:function(a,b,c){Zc=c;try{var d=Z(a);switch(b){case 0:var f=$c();return 0>f?-28:u(d.path,d.flags,0,f).fd;case 1:case 2:return 0;case 3:return d.flags;\ncase 4:return f=$c(),d.flags|=f,0;case 12:return f=$c(),La[f+0>>1]=2,0;case 13:case 14:return 0;case 16:case 8:return-28;case 9:return Bb(28),-1;default:return-28}}catch(g){return\"undefined\"!==typeof X&&g instanceof O||K(g),-g.Pa}},K:function(a,b){try{var c=Z(a);return Yc(jc,c.path,b)}catch(d){return\"undefined\"!==typeof X&&d instanceof O||K(d),-d.Pa}},v:function(a,b,c){try{var d=S[a];if(!d)throw new O(8);if(0===(d.flags&2097155))throw new O(28);mc(d.node,c);return 0}catch(f){return\"undefined\"!==typeof X&&\nf instanceof O||K(f),-f.Pa}},w:function(a,b){try{if(0===b)return-28;if(b=c)var d=-28;else{var f=Tb(a),g=Math.min(c,aa(f)),n=z[b+g];k(f,m,b,c+1);z[b+g]=n;d=g}return d}catch(t){return\"undefined\"!==typeof X&&t instanceof O||K(t),-t.Pa}},E:function(a){try{a=A(a);var b=V(a,{parent:!0}).node,c=Ab(a),d=Ob(b,c),f=bc(b,c,!0);if(f)throw new O(f);if(!b.Na.rmdir)throw new O(63);if(d.ab)throw new O(10);try{U.willDeletePath&&U.willDeletePath(a)}catch(g){J(\"FS.trackingDelegate['willDeletePath']('\"+a+\"') threw an exception: \"+\ng.message)}b.Na.rmdir(b,c);Wb(d);try{if(U.onDeletePath)U.onDeletePath(a)}catch(g){J(\"FS.trackingDelegate['onDeletePath']('\"+a+\"') threw an exception: \"+g.message)}return 0}catch(g){return\"undefined\"!==typeof X&&g instanceof O||K(g),-g.Pa}},g:function(a,b){try{return a=A(a),Yc(jc,a,b)}catch(c){return\"undefined\"!==typeof X&&c instanceof O||K(c),-c.Pa}},y:function(a){try{return a=A(a),ta(a),0}catch(b){return\"undefined\"!==typeof X&&b instanceof O||K(b),-b.Pa}},m:function(a,b,c){m.copyWithin(a,b,b+c)},\nd:function(a){a>>>=0;var b=m.length;if(2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);d=Math.max(16777216,a,d);0>>16);Ya(Oa.buffer);var f=1;break a}catch(g){}f=void 0}if(f)return!0}return!1},o:function(a,b){var c=0;bd().forEach(function(d,f){var g=b+c;f=L[a+4*f>>2]=g;for(g=0;g>0]=d.charCodeAt(g);z[f>>0]=0;c+=d.length+1});return 0},p:function(a,b){var c=\nbd();L[a>>2]=c.length;var d=0;c.forEach(function(f){d+=f.length+1});L[b>>2]=d;return 0},f:function(a){try{var b=Z(a);ka(b);return 0}catch(c){return\"undefined\"!==typeof X&&c instanceof O||K(c),c.Pa}},n:function(a,b){try{var c=Z(a);z[b>>0]=c.tty?2:Q(c.mode)?3:40960===(c.mode&61440)?7:4;return 0}catch(d){return\"undefined\"!==typeof X&&d instanceof O||K(d),d.Pa}},l:function(a,b,c,d,f){try{var g=Z(a);a=4294967296*c+(b>>>0);if(-9007199254740992>=a||9007199254740992<=a)return-61;Qc(g,a,d);M=[g.position>>>\n0,(N=g.position,1<=+Math.abs(N)?0>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)];L[f>>2]=M[0];L[f+4>>2]=M[1];g.ob&&0===a&&0===d&&(g.ob=null);return 0}catch(n){return\"undefined\"!==typeof X&&n instanceof O||K(n),n.Pa}},x:function(a){try{var b=Z(a);return b.Oa&&b.Oa.fsync?-b.Oa.fsync(b):0}catch(c){return\"undefined\"!==typeof X&&c instanceof O||K(c),c.Pa}},F:function(a,b,c,d){try{a:{for(var f=Z(a),g=a=0;g>2],L[b+(8*\ng+4)>>2],void 0);if(0>n){var t=-1;break a}a+=n}t=a}L[d>>2]=t;return 0}catch(w){return\"undefined\"!==typeof X&&w instanceof O||K(w),w.Pa}},h:function(a){var b=Date.now();L[a>>2]=b/1E3|0;L[a+4>>2]=b%1E3*1E3|0;return 0},a:Oa,A:function(a,b){if(0===a)return Bb(28),-1;var c=L[a>>2];a=L[a+4>>2];if(0>a||999999999c)return Bb(28),-1;0!==b&&(L[b>>2]=0,L[b+4>>2]=0);return ed(1E6*c+a/1E3)},B:function(a){switch(a){case 30:return 16384;case 85:return 131072;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;\ncase 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;\ncase 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1E3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return\"object\"===typeof navigator?navigator.hardwareConcurrency||1:1}Bb(28);return-1},\nL:function(a){var b=Date.now()/1E3|0;a&&(L[a>>2]=b);return b},r:function(a,b){if(b){var c=1E3*L[b+8>>2];c+=L[b+12>>2]/1E3}else c=Date.now();a=A(a);try{b=c;var d=V(a,{Ya:!0}).node;d.Na.Ta(d,{timestamp:Math.max(b,c)});return 0}catch(f){a=f;if(!(a instanceof O)){a+=\" : \";a:{d=Error();if(!d.stack){try{throw Error();}catch(g){d=g}if(!d.stack){d=\"(no stack trace available)\";break a}}d=d.stack.toString()}e.extraStackTrace&&(d+=\"\\n\"+e.extraStackTrace());d=ob(d);throw a+d;}Bb(a.Pa);return-1}}};\n(function(){function a(f){e.asm=f.exports;Ja=e.asm.M;eb--;e.monitorRunDependencies&&e.monitorRunDependencies(eb);0==eb&&(null!==fb&&(clearInterval(fb),fb=null),gb&&(f=gb,gb=null,f()))}function b(f){a(f.instance)}function c(f){return mb().then(function(g){return WebAssembly.instantiate(g,d)}).then(f,function(g){J(\"failed to asynchronously prepare wasm: \"+g);K(g)})}var d={a:id};eb++;e.monitorRunDependencies&&e.monitorRunDependencies(eb);if(e.instantiateWasm)try{return e.instantiateWasm(d,a)}catch(f){return J(\"Module.instantiateWasm callback failed with error: \"+\nf),!1}(function(){if(Ka||\"function\"!==typeof WebAssembly.instantiateStreaming||jb()||hb(\"file://\")||\"function\"!==typeof fetch)return c(b);fetch(ib,{credentials:\"same-origin\"}).then(function(f){return WebAssembly.instantiateStreaming(f,d).then(b,function(g){J(\"wasm streaming compile failed: \"+g);J(\"falling back to ArrayBuffer instantiation\");return c(b)})})})();return{}})();\nvar fd=e.___wasm_call_ctors=function(){return(fd=e.___wasm_call_ctors=e.asm.N).apply(null,arguments)},hd=e._memset=function(){return(hd=e._memset=e.asm.O).apply(null,arguments)};e._sqlite3_free=function(){return(e._sqlite3_free=e.asm.P).apply(null,arguments)};var Cb=e.___errno_location=function(){return(Cb=e.___errno_location=e.asm.Q).apply(null,arguments)};e._sqlite3_finalize=function(){return(e._sqlite3_finalize=e.asm.R).apply(null,arguments)};\ne._sqlite3_reset=function(){return(e._sqlite3_reset=e.asm.S).apply(null,arguments)};e._sqlite3_clear_bindings=function(){return(e._sqlite3_clear_bindings=e.asm.T).apply(null,arguments)};e._sqlite3_value_blob=function(){return(e._sqlite3_value_blob=e.asm.U).apply(null,arguments)};e._sqlite3_value_text=function(){return(e._sqlite3_value_text=e.asm.V).apply(null,arguments)};e._sqlite3_value_bytes=function(){return(e._sqlite3_value_bytes=e.asm.W).apply(null,arguments)};\ne._sqlite3_value_double=function(){return(e._sqlite3_value_double=e.asm.X).apply(null,arguments)};e._sqlite3_value_int=function(){return(e._sqlite3_value_int=e.asm.Y).apply(null,arguments)};e._sqlite3_value_type=function(){return(e._sqlite3_value_type=e.asm.Z).apply(null,arguments)};e._sqlite3_result_blob=function(){return(e._sqlite3_result_blob=e.asm._).apply(null,arguments)};e._sqlite3_result_double=function(){return(e._sqlite3_result_double=e.asm.$).apply(null,arguments)};\ne._sqlite3_result_error=function(){return(e._sqlite3_result_error=e.asm.aa).apply(null,arguments)};e._sqlite3_result_int=function(){return(e._sqlite3_result_int=e.asm.ba).apply(null,arguments)};e._sqlite3_result_int64=function(){return(e._sqlite3_result_int64=e.asm.ca).apply(null,arguments)};e._sqlite3_result_null=function(){return(e._sqlite3_result_null=e.asm.da).apply(null,arguments)};e._sqlite3_result_text=function(){return(e._sqlite3_result_text=e.asm.ea).apply(null,arguments)};\ne._sqlite3_step=function(){return(e._sqlite3_step=e.asm.fa).apply(null,arguments)};e._sqlite3_column_count=function(){return(e._sqlite3_column_count=e.asm.ga).apply(null,arguments)};e._sqlite3_data_count=function(){return(e._sqlite3_data_count=e.asm.ha).apply(null,arguments)};e._sqlite3_column_blob=function(){return(e._sqlite3_column_blob=e.asm.ia).apply(null,arguments)};e._sqlite3_column_bytes=function(){return(e._sqlite3_column_bytes=e.asm.ja).apply(null,arguments)};\ne._sqlite3_column_double=function(){return(e._sqlite3_column_double=e.asm.ka).apply(null,arguments)};e._sqlite3_column_text=function(){return(e._sqlite3_column_text=e.asm.la).apply(null,arguments)};e._sqlite3_column_type=function(){return(e._sqlite3_column_type=e.asm.ma).apply(null,arguments)};e._sqlite3_column_name=function(){return(e._sqlite3_column_name=e.asm.na).apply(null,arguments)};e._sqlite3_bind_blob=function(){return(e._sqlite3_bind_blob=e.asm.oa).apply(null,arguments)};\ne._sqlite3_bind_double=function(){return(e._sqlite3_bind_double=e.asm.pa).apply(null,arguments)};e._sqlite3_bind_int=function(){return(e._sqlite3_bind_int=e.asm.qa).apply(null,arguments)};e._sqlite3_bind_text=function(){return(e._sqlite3_bind_text=e.asm.ra).apply(null,arguments)};e._sqlite3_bind_parameter_index=function(){return(e._sqlite3_bind_parameter_index=e.asm.sa).apply(null,arguments)};e._sqlite3_sql=function(){return(e._sqlite3_sql=e.asm.ta).apply(null,arguments)};\ne._sqlite3_normalized_sql=function(){return(e._sqlite3_normalized_sql=e.asm.ua).apply(null,arguments)};e._sqlite3_errmsg=function(){return(e._sqlite3_errmsg=e.asm.va).apply(null,arguments)};e._sqlite3_exec=function(){return(e._sqlite3_exec=e.asm.wa).apply(null,arguments)};e._sqlite3_prepare_v2=function(){return(e._sqlite3_prepare_v2=e.asm.xa).apply(null,arguments)};e._sqlite3_changes=function(){return(e._sqlite3_changes=e.asm.ya).apply(null,arguments)};\ne._sqlite3_close_v2=function(){return(e._sqlite3_close_v2=e.asm.za).apply(null,arguments)};e._sqlite3_create_function_v2=function(){return(e._sqlite3_create_function_v2=e.asm.Aa).apply(null,arguments)};e._sqlite3_open=function(){return(e._sqlite3_open=e.asm.Ba).apply(null,arguments)};var ba=e._malloc=function(){return(ba=e._malloc=e.asm.Ca).apply(null,arguments)},na=e._free=function(){return(na=e._free=e.asm.Da).apply(null,arguments)};\ne._RegisterExtensionFunctions=function(){return(e._RegisterExtensionFunctions=e.asm.Ea).apply(null,arguments)};\nvar xb=e.__get_tzname=function(){return(xb=e.__get_tzname=e.asm.Fa).apply(null,arguments)},vb=e.__get_daylight=function(){return(vb=e.__get_daylight=e.asm.Ga).apply(null,arguments)},ub=e.__get_timezone=function(){return(ub=e.__get_timezone=e.asm.Ha).apply(null,arguments)},oa=e.stackSave=function(){return(oa=e.stackSave=e.asm.Ia).apply(null,arguments)},qa=e.stackRestore=function(){return(qa=e.stackRestore=e.asm.Ja).apply(null,arguments)},y=e.stackAlloc=function(){return(y=e.stackAlloc=e.asm.Ka).apply(null,\narguments)},gd=e._memalign=function(){return(gd=e._memalign=e.asm.La).apply(null,arguments)};e.cwrap=function(a,b,c,d){c=c||[];var f=c.every(function(g){return\"number\"===g});return\"string\"!==b&&f&&!d?Qa(a):function(){return Ra(a,b,c,arguments)}};e.UTF8ToString=A;e.stackSave=oa;e.stackRestore=qa;e.stackAlloc=y;var jd;gb=function kd(){jd||ld();jd||(gb=kd)};\nfunction ld(){function a(){if(!jd&&(jd=!0,e.calledRun=!0,!Pa)){e.noFSInit||Uc||(Uc=!0,Tc(),e.stdin=e.stdin,e.stdout=e.stdout,e.stderr=e.stderr,e.stdin?Vc(\"stdin\",e.stdin):ic(\"/dev/tty\",\"/dev/stdin\"),e.stdout?Vc(\"stdout\",null,e.stdout):ic(\"/dev/tty\",\"/dev/stdout\"),e.stderr?Vc(\"stderr\",null,e.stderr):ic(\"/dev/tty1\",\"/dev/stderr\"),u(\"/dev/stdin\",\"r\"),u(\"/dev/stdout\",\"w\"),u(\"/dev/stderr\",\"w\"));nb(ab);Sb=!1;nb(bb);if(e.onRuntimeInitialized)e.onRuntimeInitialized();if(e.postRun)for(\"function\"==typeof e.postRun&&\n(e.postRun=[e.postRun]);e.postRun.length;){var b=e.postRun.shift();cb.unshift(b)}nb(cb)}}if(!(0b}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\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","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha, Hash)\n\nSha.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha1 () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha1, Hash)\n\nSha1.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl1 (num) {\n return (num << 1) | (num >>> 31)\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha1.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha1.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha1\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Sha256 = require('./sha256')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(64)\n\nfunction Sha224 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha224, Sha256)\n\nSha224.prototype.init = function () {\n this._a = 0xc1059ed8\n this._b = 0x367cd507\n this._c = 0x3070dd17\n this._d = 0xf70e5939\n this._e = 0xffc00b31\n this._f = 0x68581511\n this._g = 0x64f98fa7\n this._h = 0xbefa4fa4\n\n return this\n}\n\nSha224.prototype._hash = function () {\n var H = Buffer.allocUnsafe(28)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n\n return H\n}\n\nmodule.exports = Sha224\n","var inherits = require('inherits')\nvar SHA512 = require('./sha512')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(160)\n\nfunction Sha384 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha384, SHA512)\n\nSha384.prototype.init = function () {\n this._ah = 0xcbbb9d5d\n this._bh = 0x629a292a\n this._ch = 0x9159015a\n this._dh = 0x152fecd8\n this._eh = 0x67332667\n this._fh = 0x8eb44a87\n this._gh = 0xdb0c2e0d\n this._hh = 0x47b5481d\n\n this._al = 0xc1059ed8\n this._bl = 0x367cd507\n this._cl = 0x3070dd17\n this._dl = 0xf70e5939\n this._el = 0xffc00b31\n this._fl = 0x68581511\n this._gl = 0x64f98fa7\n this._hl = 0xbefa4fa4\n\n return this\n}\n\nSha384.prototype._hash = function () {\n var H = Buffer.allocUnsafe(48)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n\n return H\n}\n\nmodule.exports = Sha384\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/readable.js');\nStream.Writable = require('readable-stream/writable.js');\nStream.Duplex = require('readable-stream/duplex.js');\nStream.Transform = require('readable-stream/transform.js');\nStream.PassThrough = require('readable-stream/passthrough.js');\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a