diff --git a/dist/web3.min.js b/dist/web3.min.js deleted file mode 100644 index 1d36011f089..00000000000 --- a/dist/web3.min.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";var _typeof2="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_typeof="function"==typeof Symbol&&"symbol"===_typeof2(Symbol.iterator)?function(t){return void 0===t?"undefined":_typeof2(t)}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":void 0===t?"undefined":_typeof2(t)};!function(t){if("object"===("undefined"==typeof exports?"undefined":_typeof(exports))&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Web3=t()}}(function(){var define,module,exports;return function t(e,r,n){function i(s,a){if(!r[s]){if(!e[s]){var u="function"==typeof require&&require;if(!a&&u)return u(s,!0);if(o)return o(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var f=r[s]={exports:{}};e[s][0].call(f.exports,function(t){var r=e[s][1][t];return i(r||t)},f,f.exports,t,e,r,n)}return r[s].exports}for(var o="function"==typeof require&&require,s=0;s>6],i=0==(32&r);if(31==(31&r)){var o=r;for(r=0;128==(128&o);){if(o=t.readUInt8(e),t.isError(o))return o;r<<=7,r|=127&o}}else r&=31;return{cls:n,primitive:i,tag:r,tagStr:h.tag[r]}}function s(t,e,r){var n=t.readUInt8(r);if(t.isError(n))return n;if(!e&&128===n)return null;if(0==(128&n))return n;var i=127&n;if(i>4)return t.error("length octect is too long");n=0;for(var o=0;o=31?n.error("Multi-octet tag encoding unsupported"):(e||(i|=32),i|=f.tagClassByName[r||"universal"]<<6)}(t,e,r,this.reporter);if(n.length<128){return(u=new a(2))[0]=i,u[1]=n.length,this._createEncoderBuffer([u,n])}for(var o=1,s=n.length;s>=256;s>>=8)o++;var u;(u=new a(2+o))[0]=i,u[1]=128|o;s=1+o;for(var c=n.length;c>0;s--,c>>=8)u[s]=255&c;return this._createEncoderBuffer([u,n])},i.prototype._encodeStr=function(t,e){if("bitstr"===e)return this._createEncoderBuffer([0|t.unused,t.data]);if("bmpstr"===e){for(var r=new a(2*t.length),n=0;n=40)return this.reporter.error("Second objid identifier OOB");t.splice(0,2,40*t[0]+t[1])}var i=0;for(n=0;n=128;o>>=7)i++}var s=new a(i),u=s.length-1;for(n=t.length-1;n>=0;n--){o=t[n];for(s[u--]=127&o;(o>>=7)>0;)s[u--]=128|127&o}return this._createEncoderBuffer(s)},i.prototype._encodeTime=function(t,e){var r,n=new Date(t);return"gentime"===e?r=[o(n.getFullYear()),o(n.getUTCMonth()+1),o(n.getUTCDate()),o(n.getUTCHours()),o(n.getUTCMinutes()),o(n.getUTCSeconds()),"Z"].join(""):"utctime"===e?r=[o(n.getFullYear()%100),o(n.getUTCMonth()+1),o(n.getUTCDate()),o(n.getUTCHours()),o(n.getUTCMinutes()),o(n.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+e+" time is not supported yet"),this._encodeStr(r,"octstr")},i.prototype._encodeNull=function(){return this._createEncoderBuffer("")},i.prototype._encodeInt=function(t,e){if("string"==typeof t){if(!e)return this.reporter.error("String int or enum given, but no values map");if(!e.hasOwnProperty(t))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(t));t=e[t]}if("number"!=typeof t&&!a.isBuffer(t)){var r=t.toArray();!t.sign&&128&r[0]&&r.unshift(0),t=new a(r)}if(a.isBuffer(t)){var n=t.length;0===t.length&&n++;var i=new a(n);return t.copy(i),0===t.length&&(i[0]=0),this._createEncoderBuffer(i)}if(t<128)return this._createEncoderBuffer(t);if(t<256)return this._createEncoderBuffer([0,t]);n=1;for(var o=t;o>=256;o>>=8)n++;for(o=(i=new Array(n)).length-1;o>=0;o--)i[o]=255&t,t>>=8;return 128&i[0]&&i.unshift(0),this._createEncoderBuffer(new a(i))},i.prototype._encodeBool=function(t){return this._createEncoderBuffer(t?255:0)},i.prototype._use=function(t,e){return"function"==typeof t&&(t=t(e)),t._getEncoder("der").tree},i.prototype._skipDefault=function(t,e,r){var n,i=this._baseState;if(null===i.default)return!1;var o=t.join();if(void 0===i.defaultBuffer&&(i.defaultBuffer=this._encodeValue(i.default,e,r).join()),o.length!==i.defaultBuffer.length)return!1;for(n=0;n0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===t[e-2]?2:"="===t[e-1]?1:0}function i(t){return s[t>>18&63]+s[t>>12&63]+s[t>>6&63]+s[63&t]}function o(t,e,r){for(var n,o=[],s=e;s0?c-4:c;var f=0;for(e=0;e>16&255,s[f++]=i>>8&255,s[f++]=255&i;return 2===o?(i=a[t.charCodeAt(e)]<<2|a[t.charCodeAt(e+1)]>>4,s[f++]=255&i):1===o&&(i=a[t.charCodeAt(e)]<<10|a[t.charCodeAt(e+1)]<<4|a[t.charCodeAt(e+2)]>>2,s[f++]=i>>8&255,s[f++]=255&i),s},r.fromByteArray=function(t){for(var e,r=t.length,n=r%3,i="",a=[],u=0,c=r-n;uc?c:u+16383));return 1===n?(e=t[r-1],i+=s[e>>2],i+=s[e<<4&63],i+="=="):2===n&&(e=(t[r-2]<<8)+t[r-1],i+=s[e>>10],i+=s[e>>4&63],i+=s[e<<2&63],i+="="),a.push(i),a.join("")};for(var s=[],a=[],u="undefined"!=typeof Uint8Array?Uint8Array:Array,c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",f=0,h=c.length;f>>24]^f[p>>>16&255]^h[m>>>8&255]^l[255&b]^e[v++],s=c[p>>>24]^f[m>>>16&255]^h[b>>>8&255]^l[255&d]^e[v++],a=c[m>>>24]^f[b>>>16&255]^h[d>>>8&255]^l[255&p]^e[v++],u=c[b>>>24]^f[d>>>16&255]^h[p>>>8&255]^l[255&m]^e[v++],d=o,p=s,m=a,b=u;return o=(n[d>>>24]<<24|n[p>>>16&255]<<16|n[m>>>8&255]<<8|n[255&b])^e[v++],s=(n[p>>>24]<<24|n[m>>>16&255]<<16|n[b>>>8&255]<<8|n[255&d])^e[v++],a=(n[m>>>24]<<24|n[b>>>16&255]<<16|n[d>>>8&255]<<8|n[255&p])^e[v++],u=(n[b>>>24]<<24|n[d>>>16&255]<<16|n[p>>>8&255]<<8|n[255&m])^e[v++],o>>>=0,s>>>=0,a>>>=0,u>>>=0,[o,s,a,u]}function s(t){this._key=n(t),this._reset()}var a=t("safe-buffer").Buffer,u=[0,1,2,4,8,16,32,64,128,27,54],c=function(){for(var t=new Array(256),e=0;e<256;e++)t[e]=e<128?e<<1:e<<1^283;for(var r=[],n=[],i=[[],[],[],[]],o=[[],[],[],[]],s=0,a=0,u=0;u<256;++u){var c=a^a<<1^a<<2^a<<3^a<<4;c=c>>>8^255&c^99,r[s]=c,n[c]=s;var f=t[s],h=t[f],l=t[h],d=257*t[c]^16843008*c;i[0][s]=d<<24|d>>>8,i[1][s]=d<<16|d>>>16,i[2][s]=d<<8|d>>>24,i[3][s]=d,d=16843009*l^65537*h^257*f^16843008*s,o[0][c]=d<<24|d>>>8,o[1][c]=d<<16|d>>>16,o[2][c]=d<<8|d>>>24,o[3][c]=d,0===s?s=a=1:(s=f^t[t[t[l^f]]],a^=t[t[a]])}return{SBOX:r,INV_SBOX:n,SUB_MIX:i,INV_SUB_MIX:o}}();s.blockSize=16,s.keySize=32,s.prototype.blockSize=s.blockSize,s.prototype.keySize=s.keySize,s.prototype._reset=function(){for(var t=this._key,e=t.length,r=e+6,n=4*(r+1),i=[],o=0;o>>24,s=c.SBOX[s>>>24]<<24|c.SBOX[s>>>16&255]<<16|c.SBOX[s>>>8&255]<<8|c.SBOX[255&s],s^=u[o/e|0]<<24):e>6&&o%e==4&&(s=c.SBOX[s>>>24]<<24|c.SBOX[s>>>16&255]<<16|c.SBOX[s>>>8&255]<<8|c.SBOX[255&s]),i[o]=i[o-e]^s}for(var a=[],f=0;f>>24]]^c.INV_SUB_MIX[1][c.SBOX[l>>>16&255]]^c.INV_SUB_MIX[2][c.SBOX[l>>>8&255]]^c.INV_SUB_MIX[3][c.SBOX[255&l]]}this._nRounds=r,this._keySchedule=i,this._invKeySchedule=a},s.prototype.encryptBlockRaw=function(t){return t=n(t),o(t,this._keySchedule,c.SUB_MIX,c.SBOX,this._nRounds)},s.prototype.encryptBlock=function(t){var e=this.encryptBlockRaw(t),r=a.allocUnsafe(16);return r.writeUInt32BE(e[0],0),r.writeUInt32BE(e[1],4),r.writeUInt32BE(e[2],8),r.writeUInt32BE(e[3],12),r},s.prototype.decryptBlock=function(t){var e=(t=n(t))[1];t[1]=t[3],t[3]=e;var r=o(t,this._invKeySchedule,c.INV_SUB_MIX,c.INV_SBOX,this._nRounds),i=a.allocUnsafe(16);return i.writeUInt32BE(r[0],0),i.writeUInt32BE(r[3],4),i.writeUInt32BE(r[2],8),i.writeUInt32BE(r[1],12),i},s.prototype.scrub=function(){i(this._keySchedule),i(this._invKeySchedule),i(this._key)},e.exports.AES=s},{"safe-buffer":143}],19:[function(t,e,r){function n(t,e,r,n){s.call(this);var a=o.alloc(4,0);this._cipher=new i.AES(e);var c=this._cipher.encryptBlock(a);this._ghash=new u(c),r=function(t,e,r){if(12===e.length)return t._finID=o.concat([e,o.from([0,0,0,1])]),o.concat([e,o.from([0,0,0,2])]);var n=new u(r),i=e.length,s=i%16;n.update(e),s&&(s=16-s,n.update(o.alloc(s,0))),n.update(o.alloc(8,0));var a=8*i,c=o.alloc(8);c.writeUIntBE(a,0,8),n.update(c),t._finID=n.state;var h=o.from(t._finID);return f(h),h}(this,r,c),this._prev=o.from(r),this._cache=o.allocUnsafe(0),this._secCache=o.allocUnsafe(0),this._decrypt=n,this._alen=0,this._len=0,this._mode=t,this._authTag=null,this._called=!1}var i=t("./aes"),o=t("safe-buffer").Buffer,s=t("cipher-base"),a=t("inherits"),u=t("./ghash"),c=t("buffer-xor"),f=t("./incr32");a(n,s),n.prototype._update=function(t){if(!this._called&&this._alen){var e=16-this._alen%16;e<16&&(e=o.alloc(e,0),this._ghash.update(e))}this._called=!0;var r=this._mode.encrypt(this,t);return this._decrypt?this._ghash.update(t):this._ghash.update(r),this._len+=t.length,r},n.prototype._final=function(){if(this._decrypt&&!this._authTag)throw new Error("Unsupported state or unable to authenticate data");var t=c(this._ghash.final(8*this._alen,8*this._len),this._cipher.encryptBlock(this._finID));if(this._decrypt&&function(t,e){var r=0;t.length!==e.length&&r++;for(var n=Math.min(t.length,e.length),i=0;i16)return e=this.cache.slice(0,16),this.cache=this.cache.slice(16),e}else if(this.cache.length>=16)return e=this.cache.slice(0,16),this.cache=this.cache.slice(16),e;return null},i.prototype.flush=function(){if(this.cache.length)return this.cache},r.createDecipher=function(t,e){var r=u[t.toLowerCase()];if(!r)throw new TypeError("invalid suite type");var n=l(e,!1,r.key,r.iv);return o(t,n.key,n.iv)},r.createDecipheriv=o},{"./aes":18,"./authCipher":19,"./modes":31,"./streamCipher":34,"cipher-base":48,evp_bytestokey:84,inherits:101,"safe-buffer":143}],22:[function(t,e,r){function n(t,e,r){f.call(this),this._cache=new i,this._cipher=new h.AES(e),this._prev=u.from(r),this._mode=t,this._autopadding=!0}function i(){this.cache=u.allocUnsafe(0)}function o(t,e,r){var i=s[t.toLowerCase()];if(!i)throw new TypeError("invalid suite type");if("string"==typeof e&&(e=u.from(e)),e.length!==i.key/8)throw new TypeError("invalid key length "+e.length);if("string"==typeof r&&(r=u.from(r)),"GCM"!==i.mode&&r.length!==i.iv)throw new TypeError("invalid iv length "+r.length);return"stream"===i.type?new c(i.module,e,r):"auth"===i.type?new a(i.module,e,r):new n(i.module,e,r)}var s=t("./modes"),a=t("./authCipher"),u=t("safe-buffer").Buffer,c=t("./streamCipher"),f=t("cipher-base"),h=t("./aes"),l=t("evp_bytestokey");t("inherits")(n,f),n.prototype._update=function(t){this._cache.add(t);for(var e,r,n=[];e=this._cache.get();)r=this._mode.encrypt(this,e),n.push(r);return u.concat(n)};var d=u.alloc(16,16);n.prototype._final=function(){var t=this._cache.flush();if(this._autopadding)return t=this._mode.encrypt(this,t),this._cipher.scrub(),t;if(!t.equals(d))throw this._cipher.scrub(),new Error("data not multiple of block length")},n.prototype.setAutoPadding=function(t){return this._autopadding=!!t,this},i.prototype.add=function(t){this.cache=u.concat([this.cache,t])},i.prototype.get=function(){if(this.cache.length>15){var t=this.cache.slice(0,16);return this.cache=this.cache.slice(16),t}return null},i.prototype.flush=function(){for(var t=16-this.cache.length,e=u.allocUnsafe(t),r=-1;++r>>0,0),e.writeUInt32BE(t[1]>>>0,4),e.writeUInt32BE(t[2]>>>0,8),e.writeUInt32BE(t[3]>>>0,12),e}function i(t){this.h=t,this.state=o.alloc(16,0),this.cache=o.allocUnsafe(0)}var o=t("safe-buffer").Buffer,s=o.alloc(16,0);i.prototype.ghash=function(t){for(var e=-1;++e0;t--)r[t]=r[t]>>>1|(1&r[t-1])<<31;r[0]=r[0]>>>1,e&&(r[0]=r[0]^225<<24)}this.state=n(i)},i.prototype.update=function(t){this.cache=o.concat([this.cache,t]);for(var e;this.cache.length>=16;)e=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(e)},i.prototype.final=function(t,e){return this.cache.length&&this.ghash(o.concat([this.cache,s],16)),this.ghash(n([0,t,0,e])),this.state},e.exports=i},{"safe-buffer":143}],24:[function(t,e,r){e.exports=function(t){for(var e,r=t.length;r--;){if(255!==(e=t.readUInt8(r))){e++,t.writeUInt8(e,r);break}t.writeUInt8(0,r)}}},{}],25:[function(t,e,r){var n=t("buffer-xor");r.encrypt=function(t,e){var r=n(e,t._prev);return t._prev=t._cipher.encryptBlock(r),t._prev},r.decrypt=function(t,e){var r=t._prev;t._prev=e;var i=t._cipher.decryptBlock(e);return n(i,r)}},{"buffer-xor":46}],26:[function(t,e,r){function n(t,e,r){var n=e.length,s=o(e,t._cache);return t._cache=t._cache.slice(n),t._prev=i.concat([t._prev,r?e:s]),s}var i=t("safe-buffer").Buffer,o=t("buffer-xor");r.encrypt=function(t,e,r){for(var o,s=i.allocUnsafe(0);e.length;){if(0===t._cache.length&&(t._cache=t._cipher.encryptBlock(t._prev),t._prev=i.allocUnsafe(0)),!(t._cache.length<=e.length)){s=i.concat([s,n(t,e,r)]);break}o=t._cache.length,s=i.concat([s,n(t,e.slice(0,o),r)]),e=e.slice(o)}return s}},{"buffer-xor":46,"safe-buffer":143}],27:[function(t,e,r){function n(t,e,r){for(var n,o,s,a=-1,u=0;++a<8;)n=t._cipher.encryptBlock(t._prev),o=e&1<<7-a?128:0,u+=(128&(s=n[0]^o))>>a%8,t._prev=function(t,e){var r=t.length,n=-1,o=i.allocUnsafe(t.length);t=i.concat([t,i.from([e])]);for(;++n>7;return o}(t._prev,r?o:s);return u}var i=t("safe-buffer").Buffer;r.encrypt=function(t,e,r){for(var o=e.length,s=i.allocUnsafe(o),a=-1;++a=0||!r.umod(t.prime1)||!r.umod(t.prime2);)r=new o(s(e));return r}var o=t("bn.js"),s=t("randombytes");e.exports=n,n.getr=i}).call(this,t("buffer").Buffer)},{"bn.js":"BN",buffer:47,randombytes:127}],39:[function(t,e,r){e.exports=t("./browser/algorithms.json")},{"./browser/algorithms.json":40}],40:[function(t,e,r){e.exports={sha224WithRSAEncryption:{sign:"rsa",hash:"sha224",id:"302d300d06096086480165030402040500041c"},"RSA-SHA224":{sign:"ecdsa/rsa",hash:"sha224",id:"302d300d06096086480165030402040500041c"},sha256WithRSAEncryption:{sign:"rsa",hash:"sha256",id:"3031300d060960864801650304020105000420"},"RSA-SHA256":{sign:"ecdsa/rsa",hash:"sha256",id:"3031300d060960864801650304020105000420"},sha384WithRSAEncryption:{sign:"rsa",hash:"sha384",id:"3041300d060960864801650304020205000430"},"RSA-SHA384":{sign:"ecdsa/rsa",hash:"sha384",id:"3041300d060960864801650304020205000430"},sha512WithRSAEncryption:{sign:"rsa",hash:"sha512",id:"3051300d060960864801650304020305000440"},"RSA-SHA512":{sign:"ecdsa/rsa",hash:"sha512",id:"3051300d060960864801650304020305000440"},"RSA-SHA1":{sign:"rsa",hash:"sha1",id:"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{sign:"ecdsa",hash:"sha1",id:""},sha256:{sign:"ecdsa",hash:"sha256",id:""},sha224:{sign:"ecdsa",hash:"sha224",id:""},sha384:{sign:"ecdsa",hash:"sha384",id:""},sha512:{sign:"ecdsa",hash:"sha512",id:""},"DSA-SHA":{sign:"dsa",hash:"sha1",id:""},"DSA-SHA1":{sign:"dsa",hash:"sha1",id:""},DSA:{sign:"dsa",hash:"sha1",id:""},"DSA-WITH-SHA224":{sign:"dsa",hash:"sha224",id:""},"DSA-SHA224":{sign:"dsa",hash:"sha224",id:""},"DSA-WITH-SHA256":{sign:"dsa",hash:"sha256",id:""},"DSA-SHA256":{sign:"dsa",hash:"sha256",id:""},"DSA-WITH-SHA384":{sign:"dsa",hash:"sha384",id:""},"DSA-SHA384":{sign:"dsa",hash:"sha384",id:""},"DSA-WITH-SHA512":{sign:"dsa",hash:"sha512",id:""},"DSA-SHA512":{sign:"dsa",hash:"sha512",id:""},"DSA-RIPEMD160":{sign:"dsa",hash:"rmd160",id:""},ripemd160WithRSA:{sign:"rsa",hash:"rmd160",id:"3021300906052b2403020105000414"},"RSA-RIPEMD160":{sign:"rsa",hash:"rmd160",id:"3021300906052b2403020105000414"},md5WithRSAEncryption:{sign:"rsa",hash:"md5",id:"3020300c06082a864886f70d020505000410"},"RSA-MD5":{sign:"rsa",hash:"md5",id:"3020300c06082a864886f70d020505000410"}}},{}],41:[function(t,e,r){e.exports={"1.3.132.0.10":"secp256k1","1.3.132.0.33":"p224","1.2.840.10045.3.1.1":"p192","1.2.840.10045.3.1.7":"p256","1.3.132.0.34":"p384","1.3.132.0.35":"p521"}},{}],42:[function(t,e,r){(function(r){function n(t){u.Writable.call(this);var e=l[t];if(!e)throw new Error("Unknown message digest");this._hashType=e.hash,this._hash=a(e.hash),this._tag=e.id,this._signType=e.sign}function i(t){u.Writable.call(this);var e=l[t];if(!e)throw new Error("Unknown message digest");this._hash=a(e.hash),this._tag=e.id,this._signType=e.sign}function o(t){return new n(t)}function s(t){return new i(t)}var a=t("create-hash"),u=t("stream"),c=t("inherits"),f=t("./sign"),h=t("./verify"),l=t("./algorithms.json");Object.keys(l).forEach(function(t){l[t].id=new r(l[t].id,"hex"),l[t.toLowerCase()]=l[t]}),c(n,u.Writable),n.prototype._write=function(t,e,r){this._hash.update(t),r()},n.prototype.update=function(t,e){return"string"==typeof t&&(t=new r(t,e)),this._hash.update(t),this},n.prototype.sign=function(t,e){this.end();var r=this._hash.digest(),n=f(r,t,this._hashType,this._signType,this._tag);return e?n.toString(e):n},c(i,u.Writable),i.prototype._write=function(t,e,r){this._hash.update(t),r()},i.prototype.update=function(t,e){return"string"==typeof t&&(t=new r(t,e)),this._hash.update(t),this},i.prototype.verify=function(t,e,n){"string"==typeof e&&(e=new r(e,n)),this.end();var i=this._hash.digest();return h(e,i,t,this._signType,this._tag)},e.exports={Sign:o,Verify:s,createSign:o,createVerify:s}}).call(this,t("buffer").Buffer)},{"./algorithms.json":40,"./sign":43,"./verify":44,buffer:47,"create-hash":51,inherits:101,stream:152}],43:[function(t,e,r){(function(r){function n(t,e,n,o){if((t=new r(t.toArray())).length0&&r.ishrn(n),r}function o(t,e,n){var o,a;do{for(o=new r(0);8*o.length=e)throw new Error("invalid sig")}var i=t("bn.js"),o=t("elliptic").ec,s=t("parse-asn1"),a=t("./curves.json");e.exports=function(t,e,u,c,f){var h=s(u);if("ec"===h.type){if("ecdsa"!==c&&"ecdsa/rsa"!==c)throw new Error("wrong public key type");return function(t,e,r){var n=a[r.data.algorithm.curve.join(".")];if(!n)throw new Error("unknown curve "+r.data.algorithm.curve.join("."));var i=new o(n),s=r.data.subjectPrivateKey.data;return i.verify(e,t,s)}(t,e,h)}if("dsa"===h.type){if("dsa"!==c)throw new Error("wrong public key type");return function(t,e,r){var o=r.data.p,a=r.data.q,u=r.data.g,c=r.data.pub_key,f=s.signature.decode(t,"der"),h=f.s,l=f.r;n(h,a),n(l,a);var d=i.mont(o),p=h.invm(a);return 0===u.toRed(d).redPow(new i(e).mul(p).mod(a)).fromRed().mul(c.toRed(d).redPow(l.mul(p).mod(a)).fromRed()).mod(o).mod(a).cmp(l)}(t,e,h)}if("rsa"!==c&&"ecdsa/rsa"!==c)throw new Error("wrong public key type");e=r.concat([f,e]);for(var l=h.modulus.byteLength(),d=[1],p=0;e.length+d.length+2F)throw new RangeError("Invalid typed array length");var e=new Uint8Array(t);return e.__proto__=i.prototype,e}function i(t,e,r){if("number"==typeof t){if("string"==typeof e)throw new Error("If encoding is specified then the first argument must be a string");return a(t)}return o(t,e,r)}function o(t,e,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return T(t)?function(t,e,r){if(e<0||t.byteLength=F)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+F.toString(16)+" bytes");return 0|t}function f(t,e){if(i.isBuffer(t))return t.length;if(P(t)||T(t))return t.byteLength;"string"!=typeof t&&(t=""+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return A(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return j(t).length;default:if(n)return A(t).length;e=(""+e).toLowerCase(),n=!0}}function h(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if(r>>>=0,e>>>=0,r<=e)return"";for(t||(t="utf8");;)switch(t){case"hex":return function(t,e,r){var n=t.length;(!e||e<0)&&(e=0);(!r||r<0||r>n)&&(r=n);for(var i="",o=e;o2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,I(r)&&(r=o?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(o)return-1;r=t.length-1}else if(r<0){if(!o)return-1;r=0}if("string"==typeof e&&(e=i.from(e,n)),i.isBuffer(e))return 0===e.length?-1:p(t,e,r,n,o);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):p(t,[e],r,n,o);throw new TypeError("val must be string, number or Buffer")}function p(t,e,r,n,i){function o(t,e){return 1===s?t[e]:t.readUInt16BE(e*s)}var s=1,a=t.length,u=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;s=2,a/=2,u/=2,r/=2}var c;if(i){var f=-1;for(c=r;ca&&(r=a-u),c=r;c>=0;c--){for(var h=!0,l=0;li&&(n=i):n=i;var o=e.length;if(o%2!=0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var s=0;s>8,i=r%256,o.push(i),o.push(n);return o}(e,t.length-r),t,r,n)}function w(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i239?4:o>223?3:o>191?2:1;if(i+a<=r){var u,c,f,h;switch(a){case 1:o<128&&(s=o);break;case 2:128==(192&(u=t[i+1]))&&(h=(31&o)<<6|63&u)>127&&(s=h);break;case 3:u=t[i+1],c=t[i+2],128==(192&u)&&128==(192&c)&&(h=(15&o)<<12|(63&u)<<6|63&c)>2047&&(h<55296||h>57343)&&(s=h);break;case 4:u=t[i+1],c=t[i+2],f=t[i+3],128==(192&u)&&128==(192&c)&&128==(192&f)&&(h=(15&o)<<18|(63&u)<<12|(63&c)<<6|63&f)>65535&&h<1114112&&(s=h)}}null===s?(s=65533,a=1):s>65535&&(s-=65536,n.push(s>>>10&1023|55296),s=56320|1023&s),n.push(s),i+=a}return function(t){var e=t.length;if(e<=O)return String.fromCharCode.apply(String,t);var r="",n=0;for(;nr)throw new RangeError("Trying to access beyond buffer length")}function k(t,e,r,n,o,s){if(!i.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>o||et.length)throw new RangeError("Index out of range")}function x(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function E(t,e,r,n,i){return e=+e,r>>>=0,i||x(t,0,r,4),R.write(t,e,r,n,23,4),r+4}function S(t,e,r,n,i){return e=+e,r>>>=0,i||x(t,0,r,8),R.write(t,e,r,n,52,8),r+8}function A(t,e){e=e||1/0;for(var r,n=t.length,i=null,o=[],s=0;s55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function j(t){return B.toByteArray(function(t){if((t=t.trim().replace(N,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function C(t,e,r,n){for(var i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function T(t){return t instanceof ArrayBuffer||null!=t&&null!=t.constructor&&"ArrayBuffer"===t.constructor.name&&"number"==typeof t.byteLength}function P(t){return"function"==typeof ArrayBuffer.isView&&ArrayBuffer.isView(t)}function I(t){return t!=t}var B=t("base64-js"),R=t("ieee754");r.Buffer=i,r.SlowBuffer=function(t){return+t!=t&&(t=0),i.alloc(+t)},r.INSPECT_MAX_BYTES=50;var F=2147483647;r.kMaxLength=F,(i.TYPED_ARRAY_SUPPORT=function(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===t.foo()}catch(t){return!1}}())||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),"undefined"!=typeof Symbol&&Symbol.species&&i[Symbol.species]===i&&Object.defineProperty(i,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1}),i.poolSize=8192,i.from=function(t,e,r){return o(t,e,r)},i.prototype.__proto__=Uint8Array.prototype,i.__proto__=Uint8Array,i.alloc=function(t,e,r){return function(t,e,r){return s(t),t<=0?n(t):void 0!==e?"string"==typeof r?n(t).fill(e,r):n(t).fill(e):n(t)}(t,e,r)},i.allocUnsafe=function(t){return a(t)},i.allocUnsafeSlow=function(t){return a(t)},i.isBuffer=function(t){return null!=t&&!0===t._isBuffer},i.compare=function(t,e){if(!i.isBuffer(t)||!i.isBuffer(e))throw new TypeError("Arguments must be Buffers");if(t===e)return 0;for(var r=t.length,n=e.length,o=0,s=Math.min(r,n);o0&&(t=this.toString("hex",0,e).match(/.{2}/g).join(" "),this.length>e&&(t+=" ... ")),""},i.prototype.compare=function(t,e,r,n,o){if(!i.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===o&&(o=this.length),e<0||r>t.length||n<0||o>this.length)throw new RangeError("out of range index");if(n>=o&&e>=r)return 0;if(n>=o)return-1;if(e>=r)return 1;if(e>>>=0,r>>>=0,n>>>=0,o>>>=0,this===t)return 0;for(var s=o-n,a=r-e,u=Math.min(s,a),c=this.slice(n,o),f=t.slice(e,r),h=0;h>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var i=this.length-e;if((void 0===r||r>i)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return m(this,t,e,r);case"utf8":case"utf-8":return b(this,t,e,r);case"ascii":return v(this,t,e,r);case"latin1":case"binary":return y(this,t,e,r);case"base64":return g(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _(this,t,e,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},i.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var O=4096;i.prototype.slice=function(t,e){var r=this.length;t=~~t,e=void 0===e?r:~~e,t<0?(t+=r)<0&&(t=0):t>r&&(t=r),e<0?(e+=r)<0&&(e=0):e>r&&(e=r),e>>=0,e>>>=0,r||M(t,e,this.length);for(var n=this[t],i=1,o=0;++o>>=0,e>>>=0,r||M(t,e,this.length);for(var n=this[t+--e],i=1;e>0&&(i*=256);)n+=this[t+--e]*i;return n},i.prototype.readUInt8=function(t,e){return t>>>=0,e||M(t,1,this.length),this[t]},i.prototype.readUInt16LE=function(t,e){return t>>>=0,e||M(t,2,this.length),this[t]|this[t+1]<<8},i.prototype.readUInt16BE=function(t,e){return t>>>=0,e||M(t,2,this.length),this[t]<<8|this[t+1]},i.prototype.readUInt32LE=function(t,e){return t>>>=0,e||M(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},i.prototype.readUInt32BE=function(t,e){return t>>>=0,e||M(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},i.prototype.readIntLE=function(t,e,r){t>>>=0,e>>>=0,r||M(t,e,this.length);for(var n=this[t],i=1,o=0;++o=i&&(n-=Math.pow(2,8*e)),n},i.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||M(t,e,this.length);for(var n=e,i=1,o=this[t+--n];n>0&&(i*=256);)o+=this[t+--n]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*e)),o},i.prototype.readInt8=function(t,e){return t>>>=0,e||M(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},i.prototype.readInt16LE=function(t,e){t>>>=0,e||M(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},i.prototype.readInt16BE=function(t,e){t>>>=0,e||M(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},i.prototype.readInt32LE=function(t,e){return t>>>=0,e||M(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},i.prototype.readInt32BE=function(t,e){return t>>>=0,e||M(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},i.prototype.readFloatLE=function(t,e){return t>>>=0,e||M(t,4,this.length),R.read(this,t,!0,23,4)},i.prototype.readFloatBE=function(t,e){return t>>>=0,e||M(t,4,this.length),R.read(this,t,!1,23,4)},i.prototype.readDoubleLE=function(t,e){return t>>>=0,e||M(t,8,this.length),R.read(this,t,!0,52,8)},i.prototype.readDoubleBE=function(t,e){return t>>>=0,e||M(t,8,this.length),R.read(this,t,!1,52,8)},i.prototype.writeUIntLE=function(t,e,r,n){if(t=+t,e>>>=0,r>>>=0,!n){k(this,t,e,r,Math.pow(2,8*r)-1,0)}var i=1,o=0;for(this[e]=255&t;++o>>=0,r>>>=0,!n){k(this,t,e,r,Math.pow(2,8*r)-1,0)}var i=r-1,o=1;for(this[e+i]=255&t;--i>=0&&(o*=256);)this[e+i]=t/o&255;return e+r},i.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||k(this,t,e,1,255,0),this[e]=255&t,e+1},i.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||k(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},i.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||k(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},i.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||k(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},i.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||k(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},i.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);k(this,t,e,r,i-1,-i)}var o=0,s=1,a=0;for(this[e]=255&t;++o>0)-a&255;return e+r},i.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);k(this,t,e,r,i-1,-i)}var o=r-1,s=1,a=0;for(this[e+o]=255&t;--o>=0&&(s*=256);)t<0&&0===a&&0!==this[e+o+1]&&(a=1),this[e+o]=(t/s>>0)-a&255;return e+r},i.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||k(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},i.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||k(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},i.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||k(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},i.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||k(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},i.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||k(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},i.prototype.writeFloatLE=function(t,e,r){return E(this,t,e,!0,r)},i.prototype.writeFloatBE=function(t,e,r){return E(this,t,e,!1,r)},i.prototype.writeDoubleLE=function(t,e,r){return S(this,t,e,!0,r)},i.prototype.writeDoubleBE=function(t,e,r){return S(this,t,e,!1,r)},i.prototype.copy=function(t,e,r,n){if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e=0;--i)t[i+e]=this[i+r];else if(o<1e3)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,t||(t=0);var s;if("number"==typeof t)for(s=e;s>>2),s=0,a=0;s>5]|=128<>>9<<4)]=e;for(var r=1732584193,n=-271733879,i=-1732584194,f=271733878,h=0;h>>32-e}(c(c(e,t),c(n,o)),i),r)}function o(t,e,r,n,o,s,a){return i(e&r|~e&n,t,e,o,s,a)}function s(t,e,r,n,o,s,a){return i(e&n|r&~n,t,e,o,s,a)}function a(t,e,r,n,o,s,a){return i(e^r^n,t,e,o,s,a)}function u(t,e,r,n,o,s,a){return i(r^(e|~n),t,e,o,s,a)}function c(t,e){var r=(65535&t)+(65535&e);return(t>>16)+(e>>16)+(r>>16)<<16|65535&r}var f=t("./make-hash");e.exports=function(t){return f(t,n)}},{"./make-hash":52}],54:[function(t,e,r){function n(t,e){s.call(this,"digest"),"string"==typeof e&&(e=a.from(e));var r="sha512"===t||"sha384"===t?128:64;if(this._alg=t,this._key=e,e.length>r){e=("rmd160"===t?new c:f(t)).update(e).digest()}else e.lengthu?e=t(e):e.length0;n--)e+=this._buffer(t,e),r+=this._flushBuffer(i,r);return e+=this._buffer(t,e),i},n.prototype.final=function(t){var e;t&&(e=this.update(t));var r;return r="encrypt"===this.type?this._finalEncrypt():this._finalDecrypt(),e?e.concat(r):r},n.prototype._pad=function(t,e){if(0===e)return!1;for(;e>>1];r=a.r28shl(r,s),n=a.r28shl(n,s),a.pc2(r,n,t.keys,o)}},n.prototype._update=function(t,e,r,n){var i=this._desState,o=a.readUInt32BE(t,e),s=a.readUInt32BE(t,e+4);a.ip(o,s,i.tmp,0),o=i.tmp[0],s=i.tmp[1],"encrypt"===this.type?this._encrypt(i,o,s,i.tmp,0):this._decrypt(i,o,s,i.tmp,0),o=i.tmp[0],s=i.tmp[1],a.writeUInt32BE(r,o,n),a.writeUInt32BE(r,s,n+4)},n.prototype._pad=function(t,e){for(var r=t.length-e,n=e;n>>0,o=l}a.rip(s,o,n,i)},n.prototype._decrypt=function(t,e,r,n,i){for(var o=r,s=e,u=t.keys.length-2;u>=0;u-=2){var c=t.keys[u],f=t.keys[u+1];a.expand(o,t.tmp,0),c^=t.tmp[0],f^=t.tmp[1];var h=a.substitute(c,f),l=o;o=(s^a.permute(h))>>>0,s=l}a.rip(o,s,n,i)}},{"../des":57,inherits:101,"minimalistic-assert":107}],61:[function(t,e,r){function n(t){a.call(this,t);var e=new function(t,e){i.equal(e.length,24,"Invalid key length");var r=e.slice(0,8),n=e.slice(8,16),o=e.slice(16,24);this.ciphers="encrypt"===t?[u.create({type:"encrypt",key:r}),u.create({type:"decrypt",key:n}),u.create({type:"encrypt",key:o})]:[u.create({type:"decrypt",key:o}),u.create({type:"encrypt",key:n}),u.create({type:"decrypt",key:r})]}(this.type,this.options.key);this._edeState=e}var i=t("minimalistic-assert"),o=t("inherits"),s=t("../des"),a=s.Cipher,u=s.DES;o(n,a),e.exports=n,n.create=function(t){return new n(t)},n.prototype._update=function(t,e,r,n){var i=this._edeState;i.ciphers[0]._update(t,e,r,n),i.ciphers[1]._update(r,n,r,n),i.ciphers[2]._update(r,n,r,n)},n.prototype._pad=u.prototype._pad,n.prototype._unpad=u.prototype._unpad},{"../des":57,inherits:101,"minimalistic-assert":107}],62:[function(t,e,r){r.readUInt32BE=function(t,e){return(t[0+e]<<24|t[1+e]<<16|t[2+e]<<8|t[3+e])>>>0},r.writeUInt32BE=function(t,e,r){t[0+r]=e>>>24,t[1+r]=e>>>16&255,t[2+r]=e>>>8&255,t[3+r]=255&e},r.ip=function(t,e,r,n){for(var i=0,o=0,s=6;s>=0;s-=2){for(var a=0;a<=24;a+=8)i<<=1,i|=e>>>a+s&1;for(a=0;a<=24;a+=8)i<<=1,i|=t>>>a+s&1}for(s=6;s>=0;s-=2){for(a=1;a<=25;a+=8)o<<=1,o|=e>>>a+s&1;for(a=1;a<=25;a+=8)o<<=1,o|=t>>>a+s&1}r[n+0]=i>>>0,r[n+1]=o>>>0},r.rip=function(t,e,r,n){for(var i=0,o=0,s=0;s<4;s++)for(var a=24;a>=0;a-=8)i<<=1,i|=e>>>a+s&1,i<<=1,i|=t>>>a+s&1;for(s=4;s<8;s++)for(a=24;a>=0;a-=8)o<<=1,o|=e>>>a+s&1,o<<=1,o|=t>>>a+s&1;r[n+0]=i>>>0,r[n+1]=o>>>0},r.pc1=function(t,e,r,n){for(var i=0,o=0,s=7;s>=5;s--){for(var a=0;a<=24;a+=8)i<<=1,i|=e>>a+s&1;for(a=0;a<=24;a+=8)i<<=1,i|=t>>a+s&1}for(a=0;a<=24;a+=8)i<<=1,i|=e>>a+s&1;for(s=1;s<=3;s++){for(a=0;a<=24;a+=8)o<<=1,o|=e>>a+s&1;for(a=0;a<=24;a+=8)o<<=1,o|=t>>a+s&1}for(a=0;a<=24;a+=8)o<<=1,o|=t>>a+s&1;r[n+0]=i>>>0,r[n+1]=o>>>0},r.r28shl=function(t,e){return t<>>28-e};var n=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];r.pc2=function(t,e,r,i){for(var o=0,s=0,a=n.length>>>1,u=0;u>>n[u]&1;for(u=a;u>>n[u]&1;r[i+0]=o>>>0,r[i+1]=s>>>0},r.expand=function(t,e,r){var n=0,i=0;n=(1&t)<<5|t>>>27;for(var o=23;o>=15;o-=4)n<<=6,n|=t>>>o&63;for(o=11;o>=3;o-=4)i|=t>>>o&63,i<<=6;i|=(31&t)<<1|t>>>31,e[r+0]=n>>>0,e[r+1]=i>>>0};var i=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];r.substitute=function(t,e){for(var r=0,n=0;n<4;n++){r<<=4,r|=i[64*n+(t>>>18-6*n&63)]}for(n=0;n<4;n++){r<<=4,r|=i[256+64*n+(e>>>18-6*n&63)]}return r>>>0};var o=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];r.permute=function(t){for(var e=0,r=0;r>>o[r]&1;return e>>>0},r.padSplit=function(t,e,r){for(var n=t.toString(2);n.lengtht;)r.ishrn(1);if(r.isEven()&&r.iadd(f),r.testn(1)||r.iadd(h),e.cmp(h)){if(!e.cmp(l))for(;r.mod(d).cmp(p);)r.iadd(b)}else for(;r.mod(u).cmp(m);)r.iadd(b);if(o=r.shrn(1),n(o)&&n(r)&&i(o)&&i(r)&&c.test(o)&&c.test(r))return r}}var s=t("randombytes");e.exports=o,o.simpleSieve=n,o.fermatTest=i;var a=t("bn.js"),u=new a(24),c=new(t("miller-rabin")),f=new a(1),h=new a(2),l=new a(5),d=(new a(16),new a(8),new a(10)),p=new a(3),m=(new a(7),new a(11)),b=new a(4),v=(new a(12),null)},{"bn.js":"BN","miller-rabin":106,randombytes:127}],66:[function(t,e,r){e.exports={modp1:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},modp2:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},modp5:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},modp14:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},modp15:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},modp16:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},modp17:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},modp18:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}},{}],67:[function(t,e,r){var n=r;n.version=t("../package.json").version,n.utils=t("./elliptic/utils"),n.rand=t("brorand"),n.curve=t("./elliptic/curve"),n.curves=t("./elliptic/curves"),n.ec=t("./elliptic/ec"),n.eddsa=t("./elliptic/eddsa")},{"../package.json":82,"./elliptic/curve":70,"./elliptic/curves":73,"./elliptic/ec":74,"./elliptic/eddsa":77,"./elliptic/utils":81,brorand:16}],68:[function(t,e,r){function n(t,e){this.type=t,this.p=new o(e.p,16),this.red=e.prime?o.red(e.prime):o.mont(this.p),this.zero=new o(0).toRed(this.red),this.one=new o(1).toRed(this.red),this.two=new o(2).toRed(this.red),this.n=e.n&&new o(e.n,16),this.g=e.g&&this.pointFromJSON(e.g,e.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4);var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function i(t,e){this.curve=t,this.type=e,this.precomputed=null}var o=t("bn.js"),s=t("../../elliptic").utils,a=s.getNAF,u=s.getJSF,c=s.assert;e.exports=n,n.prototype.point=function(){throw new Error("Not implemented")},n.prototype.validate=function(){throw new Error("Not implemented")},n.prototype._fixedNafMul=function(t,e){c(t.precomputed);var r=t._getDoubles(),n=a(e,1),i=(1<=s;e--)u=(u<<1)+n[e];o.push(u)}for(var f=this.jpoint(null,null,null),h=this.jpoint(null,null,null),l=i;l>0;l--){for(s=0;s=0;u--){for(e=0;u>=0&&0===o[u];u--)e++;if(u>=0&&e++,s=s.dblp(e),u<0)break;var f=o[u];c(0!==f),s="affine"===t.type?f>0?s.mixedAdd(i[f-1>>1]):s.mixedAdd(i[-f-1>>1].neg()):f>0?s.add(i[f-1>>1]):s.add(i[-f-1>>1].neg())}return"affine"===t.type?s.toP():s},n.prototype._wnafMulAdd=function(t,e,r,n,i){for(var o=this._wnafT1,s=this._wnafT2,c=this._wnafT3,f=0,h=0;h=1;h-=2){var d=h-1,p=h;if(1===o[d]&&1===o[p]){var m=[e[d],null,null,e[p]];0===e[d].y.cmp(e[p].y)?(m[1]=e[d].add(e[p]),m[2]=e[d].toJ().mixedAdd(e[p].neg())):0===e[d].y.cmp(e[p].y.redNeg())?(m[1]=e[d].toJ().mixedAdd(e[p]),m[2]=e[d].add(e[p].neg())):(m[1]=e[d].toJ().mixedAdd(e[p]),m[2]=e[d].toJ().mixedAdd(e[p].neg()));var b=[-3,-1,-5,-7,0,7,5,1,3],v=u(r[d],r[p]);f=Math.max(v[0].length,f),c[d]=new Array(f),c[p]=new Array(f);for(var y=0;y=0;h--){for(var k=0;h>=0;){var x=!0;for(y=0;y=0&&k++,w=w.dblp(k),h<0)break;for(y=0;y0?E=s[y][S-1>>1]:S<0&&(E=s[y][-S-1>>1].neg()),w="affine"===E.type?w.mixedAdd(E):w.add(E))}}for(h=0;h=Math.ceil((t.bitLength()+1)/e.step)},i.prototype._getDoubles=function(t,e){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,i=0;i":""},i.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&0===this.y.cmp(this.z)},i.prototype._extDbl=function(){var t=this.x.redSqr(),e=this.y.redSqr(),r=this.z.redSqr();r=r.redIAdd(r);var n=this.curve._mulA(t),i=this.x.redAdd(this.y).redSqr().redISub(t).redISub(e),o=n.redAdd(e),s=o.redSub(r),a=n.redSub(e),u=i.redMul(s),c=o.redMul(a),f=i.redMul(a),h=s.redMul(o);return this.curve.point(u,c,h,f)},i.prototype._projDbl=function(){var t,e,r,n=this.x.redAdd(this.y).redSqr(),i=this.x.redSqr(),o=this.y.redSqr();if(this.curve.twisted){var s=(c=this.curve._mulA(i)).redAdd(o);if(this.zOne)t=n.redSub(i).redSub(o).redMul(s.redSub(this.curve.two)),e=s.redMul(c.redSub(o)),r=s.redSqr().redSub(s).redSub(s);else{var a=this.z.redSqr(),u=s.redSub(a).redISub(a);t=n.redSub(i).redISub(o).redMul(u),e=s.redMul(c.redSub(o)),r=s.redMul(u)}}else{var c=i.redAdd(o);a=this.curve._mulC(this.c.redMul(this.z)).redSqr(),u=c.redSub(a).redSub(a);t=this.curve._mulC(n.redISub(c)).redMul(u),e=this.curve._mulC(c).redMul(i.redISub(o)),r=c.redMul(u)}return this.curve.point(t,e,r)},i.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},i.prototype._extAdd=function(t){var e=this.y.redSub(this.x).redMul(t.y.redSub(t.x)),r=this.y.redAdd(this.x).redMul(t.y.redAdd(t.x)),n=this.t.redMul(this.curve.dd).redMul(t.t),i=this.z.redMul(t.z.redAdd(t.z)),o=r.redSub(e),s=i.redSub(n),a=i.redAdd(n),u=r.redAdd(e),c=o.redMul(s),f=a.redMul(u),h=o.redMul(u),l=s.redMul(a);return this.curve.point(c,f,l,h)},i.prototype._projAdd=function(t){var e,r,n=this.z.redMul(t.z),i=n.redSqr(),o=this.x.redMul(t.x),s=this.y.redMul(t.y),a=this.curve.d.redMul(o).redMul(s),u=i.redSub(a),c=i.redAdd(a),f=this.x.redAdd(this.y).redMul(t.x.redAdd(t.y)).redISub(o).redISub(s),h=n.redMul(u).redMul(f);return this.curve.twisted?(e=n.redMul(c).redMul(s.redSub(this.curve._mulA(o))),r=u.redMul(c)):(e=n.redMul(c).redMul(s.redSub(o)),r=this.curve._mulC(u).redMul(c)),this.curve.point(h,e,r)},i.prototype.add=function(t){return this.isInfinity()?t:t.isInfinity()?this:this.curve.extended?this._extAdd(t):this._projAdd(t)},i.prototype.mul=function(t){return this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve._wnafMul(this,t)},i.prototype.mulAdd=function(t,e,r){return this.curve._wnafMulAdd(1,[this,e],[t,r],2,!1)},i.prototype.jmulAdd=function(t,e,r){return this.curve._wnafMulAdd(1,[this,e],[t,r],2,!0)},i.prototype.normalize=function(){if(this.zOne)return this;var t=this.z.redInvm();return this.x=this.x.redMul(t),this.y=this.y.redMul(t),this.t&&(this.t=this.t.redMul(t)),this.z=this.curve.one,this.zOne=!0,this},i.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},i.prototype.getX=function(){return this.normalize(),this.x.fromRed()},i.prototype.getY=function(){return this.normalize(),this.y.fromRed()},i.prototype.eq=function(t){return this===t||0===this.getX().cmp(t.getX())&&0===this.getY().cmp(t.getY())},i.prototype.eqXToP=function(t){var e=t.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(e))return!0;for(var r=t.clone(),n=this.curve.redN.redMul(this.z);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(e.redIAdd(n),0===this.x.cmp(e))return!0}return!1},i.prototype.toP=i.prototype.normalize,i.prototype.mixedAdd=i.prototype.add},{"../../elliptic":67,"../curve":70,"bn.js":"BN",inherits:101}],70:[function(t,e,r){var n=r;n.base=t("./base"),n.short=t("./short"),n.mont=t("./mont"),n.edwards=t("./edwards")},{"./base":68,"./edwards":69,"./mont":71,"./short":72}],71:[function(t,e,r){function n(t){u.call(this,"mont",t),this.a=new s(t.a,16).toRed(this.red),this.b=new s(t.b,16).toRed(this.red),this.i4=new s(4).toRed(this.red).redInvm(),this.two=new s(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function i(t,e,r){u.BasePoint.call(this,t,"projective"),null===e&&null===r?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new s(e,16),this.z=new s(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}var o=t("../curve"),s=t("bn.js"),a=t("inherits"),u=o.base,c=t("../../elliptic").utils;a(n,u),e.exports=n,n.prototype.validate=function(t){var e=t.normalize().x,r=e.redSqr(),n=r.redMul(e).redAdd(r.redMul(this.a)).redAdd(e);return 0===n.redSqrt().redSqr().cmp(n)},a(i,u.BasePoint),n.prototype.decodePoint=function(t,e){return this.point(c.toArray(t,e),1)},n.prototype.point=function(t,e){return new i(this,t,e)},n.prototype.pointFromJSON=function(t){return i.fromJSON(this,t)},i.prototype.precompute=function(){},i.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},i.fromJSON=function(t,e){return new i(t,e[0],e[1]||t.one)},i.prototype.inspect=function(){return this.isInfinity()?"":""},i.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},i.prototype.dbl=function(){var t=this.x.redAdd(this.z).redSqr(),e=this.x.redSub(this.z).redSqr(),r=t.redSub(e),n=t.redMul(e),i=r.redMul(e.redAdd(this.curve.a24.redMul(r)));return this.curve.point(n,i)},i.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},i.prototype.diffAdd=function(t,e){var r=this.x.redAdd(this.z),n=this.x.redSub(this.z),i=t.x.redAdd(t.z),o=t.x.redSub(t.z).redMul(r),s=i.redMul(n),a=e.z.redMul(o.redAdd(s).redSqr()),u=e.x.redMul(o.redISub(s).redSqr());return this.curve.point(a,u)},i.prototype.mul=function(t){for(var e=t.clone(),r=this,n=this.curve.point(null,null),i=[];0!==e.cmpn(0);e.iushrn(1))i.push(e.andln(1));for(var o=i.length-1;o>=0;o--)0===i[o]?(r=r.diffAdd(n,this),n=n.dbl()):(n=r.diffAdd(n,this),r=r.dbl());return n},i.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},i.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},i.prototype.eq=function(t){return 0===this.getX().cmp(t.getX())},i.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},i.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},{"../../elliptic":67,"../curve":70,"bn.js":"BN",inherits:101}],72:[function(t,e,r){function n(t){f.call(this,"short",t),this.a=new u(t.a,16).toRed(this.red),this.b=new u(t.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(t),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function i(t,e,r,n){f.BasePoint.call(this,t,"affine"),null===e&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new u(e,16),this.y=new u(r,16),n&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function o(t,e,r,n){f.BasePoint.call(this,t,"jacobian"),null===e&&null===r&&null===n?(this.x=this.curve.one,this.y=this.curve.one,this.z=new u(0)):(this.x=new u(e,16),this.y=new u(r,16),this.z=new u(n,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}var s=t("../curve"),a=t("../../elliptic"),u=t("bn.js"),c=t("inherits"),f=s.base,h=a.utils.assert;c(n,f),e.exports=n,n.prototype._getEndomorphism=function(t){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var e,r;if(t.beta)e=new u(t.beta,16).toRed(this.red);else{var n=this._getEndoRoots(this.p);e=(e=n[0].cmp(n[1])<0?n[0]:n[1]).toRed(this.red)}if(t.lambda)r=new u(t.lambda,16);else{var i=this._getEndoRoots(this.n);0===this.g.mul(i[0]).x.cmp(this.g.x.redMul(e))?r=i[0]:(r=i[1],h(0===this.g.mul(r).x.cmp(this.g.x.redMul(e))))}var o;return o=t.basis?t.basis.map(function(t){return{a:new u(t.a,16),b:new u(t.b,16)}}):this._getEndoBasis(r),{beta:e,lambda:r,basis:o}}},n.prototype._getEndoRoots=function(t){var e=t===this.p?this.red:u.mont(t),r=new u(2).toRed(e).redInvm(),n=r.redNeg(),i=new u(3).toRed(e).redNeg().redSqrt().redMul(r);return[n.redAdd(i).fromRed(),n.redSub(i).fromRed()]},n.prototype._getEndoBasis=function(t){for(var e,r,n,i,o,s,a,c,f,h=this.n.ushrn(Math.floor(this.n.bitLength()/2)),l=t,d=this.n.clone(),p=new u(1),m=new u(0),b=new u(0),v=new u(1),y=0;0!==l.cmpn(0);){var g=d.div(l);c=d.sub(g.mul(l)),f=b.sub(g.mul(p));var _=v.sub(g.mul(m));if(!n&&c.cmp(h)<0)e=a.neg(),r=p,n=c.neg(),i=f;else if(n&&2==++y)break;a=c,d=l,l=c,b=p,p=f,v=m,m=_}o=c.neg(),s=f;var w=n.sqr().add(i.sqr());return o.sqr().add(s.sqr()).cmp(w)>=0&&(o=e,s=r),n.negative&&(n=n.neg(),i=i.neg()),o.negative&&(o=o.neg(),s=s.neg()),[{a:n,b:i},{a:o,b:s}]},n.prototype._endoSplit=function(t){var e=this.endo.basis,r=e[0],n=e[1],i=n.b.mul(t).divRound(this.n),o=r.b.neg().mul(t).divRound(this.n),s=i.mul(r.a),a=o.mul(n.a),u=i.mul(r.b),c=o.mul(n.b);return{k1:t.sub(s).sub(a),k2:u.add(c).neg()}},n.prototype.pointFromX=function(t,e){(t=new u(t,16)).red||(t=t.toRed(this.red));var r=t.redSqr().redMul(t).redIAdd(t.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var i=n.fromRed().isOdd();return(e&&!i||!e&&i)&&(n=n.redNeg()),this.point(t,n)},n.prototype.validate=function(t){if(t.inf)return!0;var e=t.x,r=t.y,n=this.a.redMul(e),i=e.redSqr().redMul(e).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(i).cmpn(0)},n.prototype._endoWnafMulAdd=function(t,e,r){for(var n=this._endoWnafT1,i=this._endoWnafT2,o=0;o":""},i.prototype.isInfinity=function(){return this.inf},i.prototype.add=function(t){if(this.inf)return t;if(t.inf)return this;if(this.eq(t))return this.dbl();if(this.neg().eq(t))return this.curve.point(null,null);if(0===this.x.cmp(t.x))return this.curve.point(null,null);var e=this.y.redSub(t.y);0!==e.cmpn(0)&&(e=e.redMul(this.x.redSub(t.x).redInvm()));var r=e.redSqr().redISub(this.x).redISub(t.x),n=e.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},i.prototype.dbl=function(){if(this.inf)return this;var t=this.y.redAdd(this.y);if(0===t.cmpn(0))return this.curve.point(null,null);var e=this.curve.a,r=this.x.redSqr(),n=t.redInvm(),i=r.redAdd(r).redIAdd(r).redIAdd(e).redMul(n),o=i.redSqr().redISub(this.x.redAdd(this.x)),s=i.redMul(this.x.redSub(o)).redISub(this.y);return this.curve.point(o,s)},i.prototype.getX=function(){return this.x.fromRed()},i.prototype.getY=function(){return this.y.fromRed()},i.prototype.mul=function(t){return t=new u(t,16),this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve.endo?this.curve._endoWnafMulAdd([this],[t]):this.curve._wnafMul(this,t)},i.prototype.mulAdd=function(t,e,r){var n=[this,e],i=[t,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i):this.curve._wnafMulAdd(1,n,i,2)},i.prototype.jmulAdd=function(t,e,r){var n=[this,e],i=[t,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i,!0):this.curve._wnafMulAdd(1,n,i,2,!0)},i.prototype.eq=function(t){return this===t||this.inf===t.inf&&(this.inf||0===this.x.cmp(t.x)&&0===this.y.cmp(t.y))},i.prototype.neg=function(t){if(this.inf)return this;var e=this.curve.point(this.x,this.y.redNeg());if(t&&this.precomputed){var r=this.precomputed,n=function(t){return t.neg()};e.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return e},i.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);return this.curve.jpoint(this.x,this.y,this.curve.one)},c(o,f.BasePoint),n.prototype.jpoint=function(t,e,r){return new o(this,t,e,r)},o.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var t=this.z.redInvm(),e=t.redSqr(),r=this.x.redMul(e),n=this.y.redMul(e).redMul(t);return this.curve.point(r,n)},o.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},o.prototype.add=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var e=t.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(e),i=t.x.redMul(r),o=this.y.redMul(e.redMul(t.z)),s=t.y.redMul(r.redMul(this.z)),a=n.redSub(i),u=o.redSub(s);if(0===a.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=a.redSqr(),f=c.redMul(a),h=n.redMul(c),l=u.redSqr().redIAdd(f).redISub(h).redISub(h),d=u.redMul(h.redISub(l)).redISub(o.redMul(f)),p=this.z.redMul(t.z).redMul(a);return this.curve.jpoint(l,d,p)},o.prototype.mixedAdd=function(t){if(this.isInfinity())return t.toJ();if(t.isInfinity())return this;var e=this.z.redSqr(),r=this.x,n=t.x.redMul(e),i=this.y,o=t.y.redMul(e).redMul(this.z),s=r.redSub(n),a=i.redSub(o);if(0===s.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=s.redSqr(),c=u.redMul(s),f=r.redMul(u),h=a.redSqr().redIAdd(c).redISub(f).redISub(f),l=a.redMul(f.redISub(h)).redISub(i.redMul(c)),d=this.z.redMul(s);return this.curve.jpoint(h,l,d)},o.prototype.dblp=function(t){if(0===t)return this;if(this.isInfinity())return this;if(!t)return this.dbl();if(this.curve.zeroA||this.curve.threeA){for(var e=this,r=0;r=0)return!1;if(r.redIAdd(i),0===this.x.cmp(r))return!0}return!1},o.prototype.inspect=function(){return this.isInfinity()?"":""},o.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},{"../../elliptic":67,"../curve":70,"bn.js":"BN",inherits:101}],73:[function(t,e,r){function n(t){"short"===t.type?this.curve=new a.curve.short(t):"edwards"===t.type?this.curve=new a.curve.edwards(t):this.curve=new a.curve.mont(t),this.g=this.curve.g,this.n=this.curve.n,this.hash=t.hash,u(this.g.validate(),"Invalid curve"),u(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function i(t,e){Object.defineProperty(o,t,{configurable:!0,enumerable:!0,get:function(){var r=new n(e);return Object.defineProperty(o,t,{configurable:!0,enumerable:!0,value:r}),r}})}var o=r,s=t("hash.js"),a=t("../elliptic"),u=a.utils.assert;o.PresetCurve=n,i("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:s.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),i("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:s.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),i("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:s.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),i("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:s.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),i("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:s.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),i("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:s.sha256,gRed:!1,g:["9"]}),i("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:s.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});var c;try{c=t("./precomputed/secp256k1")}catch(t){c=void 0}i("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:s.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",c]})},{"../elliptic":67,"./precomputed/secp256k1":80,"hash.js":86}],74:[function(t,e,r){function n(t){if(!(this instanceof n))return new n(t);"string"==typeof t&&(a(s.curves.hasOwnProperty(t),"Unknown curve "+t),t=s.curves[t]),t instanceof s.curves.PresetCurve&&(t={curve:t}),this.curve=t.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=t.curve.g,this.g.precompute(t.curve.n.bitLength()+1),this.hash=t.hash||t.curve.hash}var i=t("bn.js"),o=t("hmac-drbg"),s=t("../../elliptic"),a=s.utils.assert,u=t("./key"),c=t("./signature");e.exports=n,n.prototype.keyPair=function(t){return new u(this,t)},n.prototype.keyFromPrivate=function(t,e){return u.fromPrivate(this,t,e)},n.prototype.keyFromPublic=function(t,e){return u.fromPublic(this,t,e)},n.prototype.genKeyPair=function(t){t||(t={});for(var e=new o({hash:this.hash,pers:t.pers,persEnc:t.persEnc||"utf8",entropy:t.entropy||s.rand(this.hash.hmacStrength),entropyEnc:t.entropy&&t.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),n=this.n.sub(new i(2));;){var a=new i(e.generate(r));if(!(a.cmp(n)>0))return a.iaddn(1),this.keyFromPrivate(a)}},n.prototype._truncateToN=function(t,e){var r=8*t.byteLength()-this.n.bitLength();return r>0&&(t=t.ushrn(r)),!e&&t.cmp(this.n)>=0?t.sub(this.n):t},n.prototype.sign=function(t,e,r,n){"object"===(void 0===r?"undefined":_typeof(r))&&(n=r,r=null),n||(n={}),e=this.keyFromPrivate(e,r),t=this._truncateToN(new i(t,16));for(var s=this.n.byteLength(),a=e.getPrivate().toArray("be",s),u=t.toArray("be",s),f=new o({hash:this.hash,entropy:a,nonce:u,pers:n.pers,persEnc:n.persEnc||"utf8"}),h=this.n.sub(new i(1)),l=0;;l++){var d=n.k?n.k(l):new i(f.generate(this.n.byteLength()));if(!((d=this._truncateToN(d,!0)).cmpn(1)<=0||d.cmp(h)>=0)){var p=this.g.mul(d);if(!p.isInfinity()){var m=p.getX(),b=m.umod(this.n);if(0!==b.cmpn(0)){var v=d.invm(this.n).mul(b.mul(e.getPrivate()).iadd(t));if(0!==(v=v.umod(this.n)).cmpn(0)){var y=(p.getY().isOdd()?1:0)|(0!==m.cmp(b)?2:0);return n.canonical&&v.cmp(this.nh)>0&&(v=this.n.sub(v),y^=1),new c({r:b,s:v,recoveryParam:y})}}}}}},n.prototype.verify=function(t,e,r,n){t=this._truncateToN(new i(t,16)),r=this.keyFromPublic(r,n);var o=(e=new c(e,"hex")).r,s=e.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;var a=s.invm(this.n),u=a.mul(t).umod(this.n),f=a.mul(o).umod(this.n);if(!this.curve._maxwellTrick){return!(h=this.g.mulAdd(u,r.getPublic(),f)).isInfinity()&&0===h.getX().umod(this.n).cmp(o)}var h;return!(h=this.g.jmulAdd(u,r.getPublic(),f)).isInfinity()&&h.eqXToP(o)},n.prototype.recoverPubKey=function(t,e,r,n){a((3&r)===r,"The recovery param is more than two bits"),e=new c(e,n);var o=this.n,s=new i(t),u=e.r,f=e.s,h=1&r,l=r>>1;if(u.cmp(this.curve.p.umod(this.curve.n))>=0&&l)throw new Error("Unable to find sencond key candinate");u=l?this.curve.pointFromX(u.add(this.curve.n),h):this.curve.pointFromX(u,h);var d=e.r.invm(o),p=o.sub(s).mul(d).umod(o),m=f.mul(d).umod(o);return this.g.mulAdd(p,u,m)},n.prototype.getKeyRecoveryParam=function(t,e,r,n){if(null!==(e=new c(e,n)).recoveryParam)return e.recoveryParam;for(var i=0;i<4;i++){var o;try{o=this.recoverPubKey(t,e,i)}catch(t){continue}if(o.eq(r))return i}throw new Error("Unable to find valid recovery factor")}},{"../../elliptic":67,"./key":75,"./signature":76,"bn.js":"BN","hmac-drbg":98}],75:[function(t,e,r){function n(t,e){this.ec=t,this.priv=null,this.pub=null,e.priv&&this._importPrivate(e.priv,e.privEnc),e.pub&&this._importPublic(e.pub,e.pubEnc)}var i=t("bn.js"),o=t("../../elliptic").utils.assert;e.exports=n,n.fromPublic=function(t,e,r){return e instanceof n?e:new n(t,{pub:e,pubEnc:r})},n.fromPrivate=function(t,e,r){return e instanceof n?e:new n(t,{priv:e,privEnc:r})},n.prototype.validate=function(){var t=this.getPublic();return t.isInfinity()?{result:!1,reason:"Invalid public key"}:t.validate()?t.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},n.prototype.getPublic=function(t,e){return"string"==typeof t&&(e=t,t=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),e?this.pub.encode(e,t):this.pub},n.prototype.getPrivate=function(t){return"hex"===t?this.priv.toString(16,2):this.priv},n.prototype._importPrivate=function(t,e){this.priv=new i(t,e||16),this.priv=this.priv.umod(this.ec.curve.n)},n.prototype._importPublic=function(t,e){if(t.x||t.y)return"mont"===this.ec.curve.type?o(t.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||o(t.x&&t.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(t.x,t.y));this.pub=this.ec.curve.decodePoint(t,e)},n.prototype.derive=function(t){return t.mul(this.priv).getX()},n.prototype.sign=function(t,e,r){return this.ec.sign(t,this,e,r)},n.prototype.verify=function(t,e){return this.ec.verify(t,e,this)},n.prototype.inspect=function(){return""}},{"../../elliptic":67,"bn.js":"BN"}],76:[function(t,e,r){function n(t,e){if(t instanceof n)return t;this._importDER(t,e)||(c(t.r&&t.s,"Signature without r or s"),this.r=new a(t.r,16),this.s=new a(t.s,16),void 0===t.recoveryParam?this.recoveryParam=null:this.recoveryParam=t.recoveryParam)}function i(t,e){var r=t[e.place++];if(!(128&r))return r;for(var n=15&r,i=0,o=0,s=e.place;o>>3);for(t.push(128|r);--r;)t.push(e>>>(r<<3)&255);t.push(e)}}var a=t("bn.js"),u=t("../../elliptic").utils,c=u.assert;e.exports=n,n.prototype._importDER=function(t,e){t=u.toArray(t,e);var r=new function(){this.place=0};if(48!==t[r.place++])return!1;if(i(t,r)+r.place!==t.length)return!1;if(2!==t[r.place++])return!1;var n=i(t,r),o=t.slice(r.place,n+r.place);if(r.place+=n,2!==t[r.place++])return!1;var s=i(t,r);if(t.length!==s+r.place)return!1;var c=t.slice(r.place,s+r.place);return 0===o[0]&&128&o[1]&&(o=o.slice(1)),0===c[0]&&128&c[1]&&(c=c.slice(1)),this.r=new a(o),this.s=new a(c),this.recoveryParam=null,!0},n.prototype.toDER=function(t){var e=this.r.toArray(),r=this.s.toArray();for(128&e[0]&&(e=[0].concat(e)),128&r[0]&&(r=[0].concat(r)),e=o(e),r=o(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];s(n,e.length),(n=n.concat(e)).push(2),s(n,r.length);var i=n.concat(r),a=[48];return s(a,i.length),a=a.concat(i),u.encode(a,t)}},{"../../elliptic":67,"bn.js":"BN"}],77:[function(t,e,r){function n(t){if(a("ed25519"===t,"only tested with ed25519 so far"),!(this instanceof n))return new n(t);t=o.curves[t].curve;this.curve=t,this.g=t.g,this.g.precompute(t.n.bitLength()+1),this.pointClass=t.point().constructor,this.encodingLength=Math.ceil(t.n.bitLength()/8),this.hash=i.sha512}var i=t("hash.js"),o=t("../../elliptic"),s=o.utils,a=s.assert,u=s.parseBytes,c=t("./key"),f=t("./signature");e.exports=n,n.prototype.sign=function(t,e){t=u(t);var r=this.keyFromSecret(e),n=this.hashInt(r.messagePrefix(),t),i=this.g.mul(n),o=this.encodePoint(i),s=this.hashInt(o,r.pubBytes(),t).mul(r.priv()),a=n.add(s).umod(this.curve.n);return this.makeSignature({R:i,S:a,Rencoded:o})},n.prototype.verify=function(t,e,r){t=u(t),e=this.makeSignature(e);var n=this.keyFromPublic(r),i=this.hashInt(e.Rencoded(),n.pubBytes(),t),o=this.g.mul(e.S());return e.R().add(n.pub().mul(i)).eq(o)},n.prototype.hashInt=function(){for(var t=this.hash(),e=0;e=0;){var o;if(i.isOdd()){var s=i.andln(n-1);o=s>(n>>1)-1?(n>>1)-s:s,i.isubn(o)}else o=0;r.push(o);for(var a=0!==i.cmpn(0)&&0===i.andln(n-1)?e+1:1,u=1;u0||e.cmpn(-i)>0;){var o=t.andln(3)+n&3,s=e.andln(3)+i&3;3===o&&(o=-1),3===s&&(s=-1);var a;a=0==(1&o)?0:3!=(c=t.andln(7)+n&7)&&5!==c||2!==s?o:-o,r[0].push(a);var u;if(0==(1&s))u=0;else{var c;u=3!=(c=e.andln(7)+i&7)&&5!==c||2!==o?s:-s}r[1].push(u),2*n===a+1&&(n=1-n),2*i===u+1&&(i=1-i),t.iushrn(1),e.iushrn(1)}return r},n.cachedProperty=function(t,e,r){var n="_"+e;t.prototype[e]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},n.parseBytes=function(t){return"string"==typeof t?n.toArray(t,"hex"):t},n.intFromLE=function(t){return new i(t,"hex","le")}},{"bn.js":"BN","minimalistic-assert":107,"minimalistic-crypto-utils":108}],82:[function(t,e,r){e.exports={_args:[[{raw:"elliptic@^6.2.3",scope:null,escapedName:"elliptic",name:"elliptic",rawSpec:"^6.2.3",spec:">=6.2.3 <7.0.0",type:"range"},"/Users/frozeman/Sites/_ethereum/web3/node_modules/secp256k1"]],_from:"elliptic@>=6.2.3 <7.0.0",_id:"elliptic@6.4.0",_inCache:!0,_location:"/elliptic",_nodeVersion:"7.0.0",_npmOperationalInternal:{host:"packages-18-east.internal.npmjs.com",tmp:"tmp/elliptic-6.4.0.tgz_1487798866428_0.30510620190761983"},_npmUser:{name:"indutny",email:"fedor@indutny.com"},_npmVersion:"3.10.8",_phantomChildren:{},_requested:{raw:"elliptic@^6.2.3",scope:null,escapedName:"elliptic",name:"elliptic",rawSpec:"^6.2.3",spec:">=6.2.3 <7.0.0",type:"range"},_requiredBy:["/browserify-sign","/create-ecdh","/secp256k1"],_resolved:"https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz",_shasum:"cac9af8762c85836187003c8dfe193e5e2eae5df",_shrinkwrap:null,_spec:"elliptic@^6.2.3",_where:"/Users/frozeman/Sites/_ethereum/web3/node_modules/secp256k1",author:{name:"Fedor Indutny",email:"fedor@indutny.com"},bugs:{url:"https://github.com/indutny/elliptic/issues"},dependencies:{"bn.js":"^4.4.0",brorand:"^1.0.1","hash.js":"^1.0.0","hmac-drbg":"^1.0.0",inherits:"^2.0.1","minimalistic-assert":"^1.0.0","minimalistic-crypto-utils":"^1.0.0"},description:"EC cryptography",devDependencies:{brfs:"^1.4.3",coveralls:"^2.11.3",grunt:"^0.4.5","grunt-browserify":"^5.0.0","grunt-cli":"^1.2.0","grunt-contrib-connect":"^1.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^1.0.1","grunt-mocha-istanbul":"^3.0.1","grunt-saucelabs":"^8.6.2",istanbul:"^0.4.2",jscs:"^2.9.0",jshint:"^2.6.0",mocha:"^2.1.0"},directories:{},dist:{shasum:"cac9af8762c85836187003c8dfe193e5e2eae5df",tarball:"https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz"},files:["lib"],gitHead:"6b0d2b76caae91471649c8e21f0b1d3ba0f96090",homepage:"https://github.com/indutny/elliptic",keywords:["EC","Elliptic","curve","Cryptography"],license:"MIT",main:"lib/elliptic.js",maintainers:[{name:"indutny",email:"fedor@indutny.com"}],name:"elliptic",optionalDependencies:{},readme:"ERROR: No README data found!",repository:{type:"git",url:"git+ssh://git@github.com/indutny/elliptic.git"},scripts:{jscs:"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",jshint:"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",lint:"npm run jscs && npm run jshint",test:"npm run lint && npm run unit",unit:"istanbul test _mocha --reporter=spec test/index.js",version:"grunt dist && git add dist/"},version:"6.4.0"}},{}],83:[function(t,e,r){function n(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function i(t){return"function"==typeof t}function o(t){return"object"===(void 0===t?"undefined":_typeof(t))&&null!==t}function s(t){return void 0===t}e.exports=n,n.EventEmitter=n,n.prototype._events=void 0,n.prototype._maxListeners=void 0,n.defaultMaxListeners=10,n.prototype.setMaxListeners=function(t){if(!function(t){return"number"==typeof t}(t)||t<0||isNaN(t))throw TypeError("n must be a positive number");return this._maxListeners=t,this},n.prototype.emit=function(t){var e,r,n,a,u,c;if(this._events||(this._events={}),"error"===t&&(!this._events.error||o(this._events.error)&&!this._events.error.length)){if((e=arguments[1])instanceof Error)throw e;var f=new Error('Uncaught, unspecified "error" event. ('+e+")");throw f.context=e,f}if(r=this._events[t],s(r))return!1;if(i(r))switch(arguments.length){case 1:r.call(this);break;case 2:r.call(this,arguments[1]);break;case 3:r.call(this,arguments[1],arguments[2]);break;default:a=Array.prototype.slice.call(arguments,1),r.apply(this,a)}else if(o(r))for(a=Array.prototype.slice.call(arguments,1),n=(c=r.slice()).length,u=0;u0&&this._events[t].length>r&&(this._events[t].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[t].length),"function"==typeof console.trace&&console.trace()),this},n.prototype.on=n.prototype.addListener,n.prototype.once=function(t,e){function r(){this.removeListener(t,r),n||(n=!0,e.apply(this,arguments))}if(!i(e))throw TypeError("listener must be a function");var n=!1;return r.listener=e,this.on(t,r),this},n.prototype.removeListener=function(t,e){var r,n,s,a;if(!i(e))throw TypeError("listener must be a function");if(!this._events||!this._events[t])return this;if(r=this._events[t],s=r.length,n=-1,r===e||i(r.listener)&&r.listener===e)delete this._events[t],this._events.removeListener&&this.emit("removeListener",t,e);else if(o(r)){for(a=s;a-- >0;)if(r[a]===e||r[a].listener&&r[a].listener===e){n=a;break}if(n<0)return this;1===r.length?(r.length=0,delete this._events[t]):r.splice(n,1),this._events.removeListener&&this.emit("removeListener",t,e)}return this},n.prototype.removeAllListeners=function(t){var e,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[t]&&delete this._events[t],this;if(0===arguments.length){for(e in this._events)"removeListener"!==e&&this.removeAllListeners(e);return this.removeAllListeners("removeListener"),this._events={},this}if(r=this._events[t],i(r))this.removeListener(t,r);else if(r)for(;r.length;)this.removeListener(t,r[r.length-1]);return delete this._events[t],this},n.prototype.listeners=function(t){return this._events&&this._events[t]?i(this._events[t])?[this._events[t]]:this._events[t].slice():[]},n.prototype.listenerCount=function(t){if(this._events){var e=this._events[t];if(i(e))return 1;if(e)return e.length}return 0},n.listenerCount=function(t,e){return t.listenerCount(e)}},{}],84:[function(t,e,r){var n=t("safe-buffer").Buffer,i=t("md5.js");e.exports=function(t,e,r,o){if(n.isBuffer(t)||(t=n.from(t,"binary")),e&&(n.isBuffer(e)||(e=n.from(e,"binary")),8!==e.length))throw new RangeError("salt should be Buffer with 8 byte length");for(var s=r/8,a=n.alloc(s),u=n.alloc(o||0),c=n.alloc(0);s>0||o>0;){var f=new i;f.update(c),f.update(t),e&&f.update(e),c=f.digest();var h=0;if(s>0){var l=a.length-s;h=Math.min(s,c.length),c.copy(a,l,0,h),s-=h}if(h0){var d=u.length-o,p=Math.min(o,c.length-h);c.copy(u,d,h,h+p),o-=p}}return c.fill(0),{key:a,iv:u}}},{"md5.js":104,"safe-buffer":143}],85:[function(t,e,r){(function(r){function n(t){i.call(this),this._block=new r(t),this._blockSize=t,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}var i=t("stream").Transform;t("inherits")(n,i),n.prototype._transform=function(t,e,n){var i=null;try{"buffer"!==e&&(t=new r(t,e)),this.update(t)}catch(t){i=t}n(i)},n.prototype._flush=function(t){var e=null;try{this.push(this._digest())}catch(t){e=t}t(e)},n.prototype.update=function(t,e){if(!r.isBuffer(t)&&"string"!=typeof t)throw new TypeError("Data must be a string or a buffer");if(this._finalized)throw new Error("Digest already called");r.isBuffer(t)||(t=new r(t,e||"binary"));for(var n=this._block,i=0;this._blockOffset+t.length-i>=this._blockSize;){for(var o=this._blockOffset;o0;++s)this._length[s]+=a,(a=this._length[s]/4294967296|0)>0&&(this._length[s]-=4294967296*a);return this},n.prototype._update=function(t){throw new Error("_update is not implemented")},n.prototype.digest=function(t){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var e=this._digest();return void 0!==t&&(e=e.toString(t)),e},n.prototype._digest=function(){throw new Error("_digest is not implemented")},e.exports=n}).call(this,t("buffer").Buffer)},{buffer:47,inherits:101,stream:152}],86:[function(t,e,r){var n=r;n.utils=t("./hash/utils"),n.common=t("./hash/common"),n.sha=t("./hash/sha"),n.ripemd=t("./hash/ripemd"),n.hmac=t("./hash/hmac"),n.sha1=n.sha.sha1,n.sha256=n.sha.sha256,n.sha224=n.sha.sha224,n.sha384=n.sha.sha384,n.sha512=n.sha.sha512,n.ripemd160=n.ripemd.ripemd160},{"./hash/common":87,"./hash/hmac":88,"./hash/ripemd":89,"./hash/sha":90,"./hash/utils":97}],87:[function(t,e,r){function n(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}var i=t("./utils"),o=t("minimalistic-assert");r.BlockHash=n,n.prototype.update=function(t,e){if(t=i.toArray(t,e),this.pending?this.pending=this.pending.concat(t):this.pending=t,this.pendingTotal+=t.length,this.pending.length>=this._delta8){var r=(t=this.pending).length%this._delta8;this.pending=t.slice(t.length-r,t.length),0===this.pending.length&&(this.pending=null),t=i.join32(t,0,t.length-r,this.endian);for(var n=0;n>>24&255,n[i++]=t>>>16&255,n[i++]=t>>>8&255,n[i++]=255&t}else for(n[i++]=255&t,n[i++]=t>>>8&255,n[i++]=t>>>16&255,n[i++]=t>>>24&255,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,o=8;othis.blockSize&&(t=(new this.Hash).update(t).digest()),o(t.length<=this.blockSize);for(var e=t.length;e>>3},r.g1_256=function(t){return s(t,17)^s(t,19)^t>>>10}},{"../utils":97}],97:[function(t,e,r){function n(t){return(t>>>24|t>>>8&65280|t<<8&16711680|(255&t)<<24)>>>0}function i(t){return 1===t.length?"0"+t:t}function o(t){return 7===t.length?"0"+t:6===t.length?"00"+t:5===t.length?"000"+t:4===t.length?"0000"+t:3===t.length?"00000"+t:2===t.length?"000000"+t:1===t.length?"0000000"+t:t}var s=t("minimalistic-assert"),a=t("inherits");r.inherits=a,r.toArray=function(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var r=[];if("string"==typeof t)if(e){if("hex"===e)for((t=t.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(t="0"+t),n=0;n>8,s=255&i;o?r.push(o,s):r.push(s)}else for(n=0;n>>0}return o},r.split32=function(t,e){for(var r=new Array(4*t.length),n=0,i=0;n>>24,r[i+1]=o>>>16&255,r[i+2]=o>>>8&255,r[i+3]=255&o):(r[i+3]=o>>>24,r[i+2]=o>>>16&255,r[i+1]=o>>>8&255,r[i]=255&o)}return r},r.rotr32=function(t,e){return t>>>e|t<<32-e},r.rotl32=function(t,e){return t<>>32-e},r.sum32=function(t,e){return t+e>>>0},r.sum32_3=function(t,e,r){return t+e+r>>>0},r.sum32_4=function(t,e,r,n){return t+e+r+n>>>0},r.sum32_5=function(t,e,r,n,i){return t+e+r+n+i>>>0},r.sum64=function(t,e,r,n){var i=t[e],o=n+t[e+1]>>>0,s=(o>>0,t[e+1]=o},r.sum64_hi=function(t,e,r,n){return(e+n>>>0>>0},r.sum64_lo=function(t,e,r,n){return e+n>>>0},r.sum64_4_hi=function(t,e,r,n,i,o,s,a){var u=0,c=e;return u+=(c=c+n>>>0)>>0)>>0)>>0},r.sum64_4_lo=function(t,e,r,n,i,o,s,a){return e+n+o+a>>>0},r.sum64_5_hi=function(t,e,r,n,i,o,s,a,u,c){var f=0,h=e;return f+=(h=h+n>>>0)>>0)>>0)>>0)>>0},r.sum64_5_lo=function(t,e,r,n,i,o,s,a,u,c){return e+n+o+a+c>>>0},r.rotr64_hi=function(t,e,r){return(e<<32-r|t>>>r)>>>0},r.rotr64_lo=function(t,e,r){return(t<<32-r|e>>>r)>>>0},r.shr64_hi=function(t,e,r){return t>>>r},r.shr64_lo=function(t,e,r){return(t<<32-r|e>>>r)>>>0}},{inherits:101,"minimalistic-assert":107}],98:[function(t,e,r){function n(t){if(!(this instanceof n))return new n(t);this.hash=t.hash,this.predResist=!!t.predResist,this.outLen=this.hash.outSize,this.minEntropy=t.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var e=o.toArray(t.entropy,t.entropyEnc||"hex"),r=o.toArray(t.nonce,t.nonceEnc||"hex"),i=o.toArray(t.pers,t.persEnc||"hex");s(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(e,r,i)}var i=t("hash.js"),o=t("minimalistic-crypto-utils"),s=t("minimalistic-assert");e.exports=n,n.prototype._init=function(t,e,r){var n=t.concat(e).concat(r);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(t.concat(r||[])),this._reseed=1},n.prototype.generate=function(t,e,r,n){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof e&&(n=r,r=e,e=null),r&&(r=o.toArray(r,n||"hex"),this._update(r));for(var i=[];i.length>1,f=-7,h=r?i-1:0,l=r?-1:1,d=t[e+h];for(h+=l,o=d&(1<<-f)-1,d>>=-f,f+=a;f>0;o=256*o+t[e+h],h+=l,f-=8);for(s=o&(1<<-f)-1,o>>=-f,f+=n;f>0;s=256*s+t[e+h],h+=l,f-=8);if(0===o)o=1-c;else{if(o===u)return s?NaN:1/0*(d?-1:1);s+=Math.pow(2,n),o-=c}return(d?-1:1)*s*Math.pow(2,o-n)},r.write=function(t,e,r,n,i,o){var s,a,u,c=8*o-i-1,f=(1<>1,l=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:o-1,p=n?1:-1,m=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=f):(s=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-s))<1&&(s--,u*=2),(e+=s+h>=1?l/u:l*Math.pow(2,1-h))*u>=2&&(s++,u/=2),s+h>=f?(a=0,s=f):s+h>=1?(a=(e*u-1)*Math.pow(2,i),s+=h):(a=e*Math.pow(2,h-1)*Math.pow(2,i),s=0));i>=8;t[r+d]=255&a,d+=p,a/=256,i-=8);for(s=s<0;t[r+d]=255&s,d+=p,s/=256,c-=8);t[r+d-p]|=128*m}},{}],100:[function(t,e,r){var n=[].indexOf;e.exports=function(t,e){if(n)return t.indexOf(e);for(var r=0;r>>32-e}function o(t,e,r,n,o,s,a){return i(t+(e&r|~e&n)+o+s|0,a)+e|0}function s(t,e,r,n,o,s,a){return i(t+(e&n|r&~n)+o+s|0,a)+e|0}function a(t,e,r,n,o,s,a){return i(t+(e^r^n)+o+s|0,a)+e|0}function u(t,e,r,n,o,s,a){return i(t+(r^(e|~n))+o+s|0,a)+e|0}var c=t("inherits"),f=t("hash-base"),h=new Array(16);c(n,f),n.prototype._update=function(){for(var t=h,e=0;e<16;++e)t[e]=this._block.readInt32LE(4*e);var r=this._a,n=this._b,i=this._c,c=this._d;n=u(n=u(n=u(n=u(n=a(n=a(n=a(n=a(n=s(n=s(n=s(n=s(n=o(n=o(n=o(n=o(n,i=o(i,c=o(c,r=o(r,n,i,c,t[0],3614090360,7),n,i,t[1],3905402710,12),r,n,t[2],606105819,17),c,r,t[3],3250441966,22),i=o(i,c=o(c,r=o(r,n,i,c,t[4],4118548399,7),n,i,t[5],1200080426,12),r,n,t[6],2821735955,17),c,r,t[7],4249261313,22),i=o(i,c=o(c,r=o(r,n,i,c,t[8],1770035416,7),n,i,t[9],2336552879,12),r,n,t[10],4294925233,17),c,r,t[11],2304563134,22),i=o(i,c=o(c,r=o(r,n,i,c,t[12],1804603682,7),n,i,t[13],4254626195,12),r,n,t[14],2792965006,17),c,r,t[15],1236535329,22),i=s(i,c=s(c,r=s(r,n,i,c,t[1],4129170786,5),n,i,t[6],3225465664,9),r,n,t[11],643717713,14),c,r,t[0],3921069994,20),i=s(i,c=s(c,r=s(r,n,i,c,t[5],3593408605,5),n,i,t[10],38016083,9),r,n,t[15],3634488961,14),c,r,t[4],3889429448,20),i=s(i,c=s(c,r=s(r,n,i,c,t[9],568446438,5),n,i,t[14],3275163606,9),r,n,t[3],4107603335,14),c,r,t[8],1163531501,20),i=s(i,c=s(c,r=s(r,n,i,c,t[13],2850285829,5),n,i,t[2],4243563512,9),r,n,t[7],1735328473,14),c,r,t[12],2368359562,20),i=a(i,c=a(c,r=a(r,n,i,c,t[5],4294588738,4),n,i,t[8],2272392833,11),r,n,t[11],1839030562,16),c,r,t[14],4259657740,23),i=a(i,c=a(c,r=a(r,n,i,c,t[1],2763975236,4),n,i,t[4],1272893353,11),r,n,t[7],4139469664,16),c,r,t[10],3200236656,23),i=a(i,c=a(c,r=a(r,n,i,c,t[13],681279174,4),n,i,t[0],3936430074,11),r,n,t[3],3572445317,16),c,r,t[6],76029189,23),i=a(i,c=a(c,r=a(r,n,i,c,t[9],3654602809,4),n,i,t[12],3873151461,11),r,n,t[15],530742520,16),c,r,t[2],3299628645,23),i=u(i,c=u(c,r=u(r,n,i,c,t[0],4096336452,6),n,i,t[7],1126891415,10),r,n,t[14],2878612391,15),c,r,t[5],4237533241,21),i=u(i,c=u(c,r=u(r,n,i,c,t[12],1700485571,6),n,i,t[3],2399980690,10),r,n,t[10],4293915773,15),c,r,t[1],2240044497,21),i=u(i,c=u(c,r=u(r,n,i,c,t[8],1873313359,6),n,i,t[15],4264355552,10),r,n,t[6],2734768916,15),c,r,t[13],1309151649,21),i=u(i,c=u(c,r=u(r,n,i,c,t[4],4149444226,6),n,i,t[11],3174756917,10),r,n,t[2],718787259,15),c,r,t[9],3951481745,21),this._a=this._a+r|0,this._b=this._b+n|0,this._c=this._c+i|0,this._d=this._d+c|0},n.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=new r(16);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t},e.exports=n}).call(this,t("buffer").Buffer)},{buffer:47,"hash-base":105,inherits:101}],105:[function(t,e,r){function n(t){o.call(this),this._block=i.allocUnsafe(t),this._blockSize=t,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}var i=t("safe-buffer").Buffer,o=t("stream").Transform;t("inherits")(n,o),n.prototype._transform=function(t,e,r){var n=null;try{this.update(t,e)}catch(t){n=t}r(n)},n.prototype._flush=function(t){var e=null;try{this.push(this.digest())}catch(t){e=t}t(e)},n.prototype.update=function(t,e){if(function(t,e){if(!i.isBuffer(t)&&"string"!=typeof t)throw new TypeError(e+" must be a string or a buffer")}(t,"Data"),this._finalized)throw new Error("Digest already called");i.isBuffer(t)||(t=i.from(t,e));for(var r=this._block,n=0;this._blockOffset+t.length-n>=this._blockSize;){for(var o=this._blockOffset;o0;++s)this._length[s]+=a,(a=this._length[s]/4294967296|0)>0&&(this._length[s]-=4294967296*a);return this},n.prototype._update=function(){throw new Error("_update is not implemented")},n.prototype.digest=function(t){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var e=this._digest();void 0!==t&&(e=e.toString(t)),this._block.fill(0),this._blockOffset=0;for(var r=0;r<4;++r)this._length[r]=0;return e},n.prototype._digest=function(){throw new Error("_digest is not implemented")},e.exports=n},{inherits:101,"safe-buffer":143,stream:152}],106:[function(t,e,r){function n(t){this.rand=t||new o.Rand}var i=t("bn.js"),o=t("brorand");e.exports=n,n.create=function(t){return new n(t)},n.prototype._randbelow=function(t){var e=t.bitLength(),r=Math.ceil(e/8);do{var n=new i(this.rand.generate(r))}while(n.cmp(t)>=0);return n},n.prototype._randrange=function(t,e){var r=e.sub(t);return t.add(this._randbelow(r))},n.prototype.test=function(t,e,r){var n=t.bitLength(),o=i.mont(t),s=new i(1).toRed(o);e||(e=Math.max(1,n/48|0));for(var a=t.subn(1),u=0;!a.testn(u);u++);for(var c=t.shrn(u),f=a.toRed(o);e>0;e--){var h=this._randrange(new i(2),a);r&&r(h);var l=h.toRed(o).redPow(c);if(0!==l.cmp(s)&&0!==l.cmp(f)){for(var d=1;d0;e--){var f=this._randrange(new i(2),s),h=t.gcd(f);if(0!==h.cmpn(1))return h;var l=f.toRed(n).redPow(u);if(0!==l.cmp(o)&&0!==l.cmp(c)){for(var d=1;d>8,s=255&i;o?r.push(o,s):r.push(s)}return r},o.zero2=n,o.toHex=i,o.encode=function(t,e){return"hex"===e?i(t):t}},{}],109:[function(t,e,r){e.exports={"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"}},{}],110:[function(t,e,r){var n=t("asn1.js");r.certificate=t("./certificate");var i=n.define("RSAPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("modulus").int(),this.key("publicExponent").int(),this.key("privateExponent").int(),this.key("prime1").int(),this.key("prime2").int(),this.key("exponent1").int(),this.key("exponent2").int(),this.key("coefficient").int())});r.RSAPrivateKey=i;var o=n.define("RSAPublicKey",function(){this.seq().obj(this.key("modulus").int(),this.key("publicExponent").int())});r.RSAPublicKey=o;var s=n.define("SubjectPublicKeyInfo",function(){this.seq().obj(this.key("algorithm").use(a),this.key("subjectPublicKey").bitstr())});r.PublicKey=s;var a=n.define("AlgorithmIdentifier",function(){this.seq().obj(this.key("algorithm").objid(),this.key("none").null_().optional(),this.key("curve").objid().optional(),this.key("params").seq().obj(this.key("p").int(),this.key("q").int(),this.key("g").int()).optional())}),u=n.define("PrivateKeyInfo",function(){this.seq().obj(this.key("version").int(),this.key("algorithm").use(a),this.key("subjectPrivateKey").octstr())});r.PrivateKey=u;var c=n.define("EncryptedPrivateKeyInfo",function(){this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(),this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(),this.key("kdeparams").seq().obj(this.key("salt").octstr(),this.key("iters").int())),this.key("cipher").seq().obj(this.key("algo").objid(),this.key("iv").octstr()))),this.key("subjectPrivateKey").octstr())});r.EncryptedPrivateKey=c;var f=n.define("DSAPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("p").int(),this.key("q").int(),this.key("g").int(),this.key("pub_key").int(),this.key("priv_key").int())});r.DSAPrivateKey=f,r.DSAparam=n.define("DSAparam",function(){this.int()});var h=n.define("ECPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("privateKey").octstr(),this.key("parameters").optional().explicit(0).use(l),this.key("publicKey").optional().explicit(1).bitstr())});r.ECPrivateKey=h;var l=n.define("ECParameters",function(){this.choice({namedCurve:this.objid()})});r.signature=n.define("signature",function(){this.seq().obj(this.key("r").int(),this.key("s").int())})},{"./certificate":111,"asn1.js":1}],111:[function(t,e,r){var n=t("asn1.js"),i=n.define("Time",function(){this.choice({utcTime:this.utctime(),generalTime:this.gentime()})}),o=n.define("AttributeTypeValue",function(){this.seq().obj(this.key("type").objid(),this.key("value").any())}),s=n.define("AlgorithmIdentifier",function(){this.seq().obj(this.key("algorithm").objid(),this.key("parameters").optional())}),a=n.define("SubjectPublicKeyInfo",function(){this.seq().obj(this.key("algorithm").use(s),this.key("subjectPublicKey").bitstr())}),u=n.define("RelativeDistinguishedName",function(){this.setof(o)}),c=n.define("RDNSequence",function(){this.seqof(u)}),f=n.define("Name",function(){this.choice({rdnSequence:this.use(c)})}),h=n.define("Validity",function(){this.seq().obj(this.key("notBefore").use(i),this.key("notAfter").use(i))}),l=n.define("Extension",function(){this.seq().obj(this.key("extnID").objid(),this.key("critical").bool().def(!1),this.key("extnValue").octstr())}),d=n.define("TBSCertificate",function(){this.seq().obj(this.key("version").explicit(0).int(),this.key("serialNumber").int(),this.key("signature").use(s),this.key("issuer").use(f),this.key("validity").use(h),this.key("subject").use(f),this.key("subjectPublicKeyInfo").use(a),this.key("issuerUniqueID").implicit(1).bitstr().optional(),this.key("subjectUniqueID").implicit(2).bitstr().optional(),this.key("extensions").explicit(3).seqof(l).optional())}),p=n.define("X509Certificate",function(){this.seq().obj(this.key("tbsCertificate").use(d),this.key("signatureAlgorithm").use(s),this.key("signatureValue").bitstr())});e.exports=p},{"asn1.js":1}],112:[function(t,e,r){(function(r){var n=/Proc-Type: 4,ENCRYPTED\n\r?DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)\n\r?\n\r?([0-9A-z\n\r\+\/\=]+)\n\r?/m,i=/^-----BEGIN ((?:.* KEY)|CERTIFICATE)-----\n/m,o=/^-----BEGIN ((?:.* KEY)|CERTIFICATE)-----\n\r?([0-9A-z\n\r\+\/\=]+)\n\r?-----END \1-----$/m,s=t("evp_bytestokey"),a=t("browserify-aes");e.exports=function(t,e){var u,c=t.toString(),f=c.match(n);if(f){var h="aes"+f[1],l=new r(f[2],"hex"),d=new r(f[3].replace(/\r?\n/g,""),"base64"),p=s(e,l.slice(0,8),parseInt(f[1],10)).key,m=[],b=a.createDecipheriv(h,p,l);m.push(b.update(d)),m.push(b.final()),u=r.concat(m)}else{var v=c.match(o);u=new r(v[2].replace(/\r?\n/g,""),"base64")}return{tag:c.match(i)[1],data:u}}}).call(this,t("buffer").Buffer)},{"browserify-aes":20,buffer:47,evp_bytestokey:84}],113:[function(t,e,r){(function(r){function n(t){var e;"object"!==(void 0===t?"undefined":_typeof(t))||r.isBuffer(t)||(e=t.passphrase,t=t.key),"string"==typeof t&&(t=new r(t));var n,c,f=s(t,e),h=f.tag,l=f.data;switch(h){case"CERTIFICATE":c=i.certificate.decode(l,"der").tbsCertificate.subjectPublicKeyInfo;case"PUBLIC KEY":switch(c||(c=i.PublicKey.decode(l,"der")),n=c.algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return i.RSAPublicKey.decode(c.subjectPublicKey.data,"der");case"1.2.840.10045.2.1":return c.subjectPrivateKey=c.subjectPublicKey,{type:"ec",data:c};case"1.2.840.10040.4.1":return c.algorithm.params.pub_key=i.DSAparam.decode(c.subjectPublicKey.data,"der"),{type:"dsa",data:c.algorithm.params};default:throw new Error("unknown key id "+n)}throw new Error("unknown key type "+h);case"ENCRYPTED PRIVATE KEY":l=function(t,e){var n=t.algorithm.decrypt.kde.kdeparams.salt,i=parseInt(t.algorithm.decrypt.kde.kdeparams.iters.toString(),10),s=o[t.algorithm.decrypt.cipher.algo.join(".")],c=t.algorithm.decrypt.cipher.iv,f=t.subjectPrivateKey,h=parseInt(s.split("-")[1],10)/8,l=u.pbkdf2Sync(e,n,i,h),d=a.createDecipheriv(s,l,c),p=[];return p.push(d.update(f)),p.push(d.final()),r.concat(p)}(l=i.EncryptedPrivateKey.decode(l,"der"),e);case"PRIVATE KEY":switch(c=i.PrivateKey.decode(l,"der"),n=c.algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return i.RSAPrivateKey.decode(c.subjectPrivateKey,"der");case"1.2.840.10045.2.1":return{curve:c.algorithm.curve,privateKey:i.ECPrivateKey.decode(c.subjectPrivateKey,"der").privateKey};case"1.2.840.10040.4.1":return c.algorithm.params.priv_key=i.DSAparam.decode(c.subjectPrivateKey,"der"),{type:"dsa",params:c.algorithm.params};default:throw new Error("unknown key id "+n)}throw new Error("unknown key type "+h);case"RSA PUBLIC KEY":return i.RSAPublicKey.decode(l,"der");case"RSA PRIVATE KEY":return i.RSAPrivateKey.decode(l,"der");case"DSA PRIVATE KEY":return{type:"dsa",params:i.DSAPrivateKey.decode(l,"der")};case"EC PRIVATE KEY":return l=i.ECPrivateKey.decode(l,"der"),{curve:l.parameters.value,privateKey:l.privateKey};default:throw new Error("unknown key type "+h)}}var i=t("./asn1"),o=t("./aesid.json"),s=t("./fixProc"),a=t("browserify-aes"),u=t("pbkdf2");e.exports=n,n.signature=i.signature}).call(this,t("buffer").Buffer)},{"./aesid.json":109,"./asn1":110,"./fixProc":112,"browserify-aes":20,buffer:47,pbkdf2:114}],114:[function(t,e,r){r.pbkdf2=t("./lib/async"),r.pbkdf2Sync=t("./lib/sync")},{"./lib/async":115,"./lib/sync":118}],115:[function(t,e,r){(function(r,n){function i(t,e,r,n,i){return f.importKey("raw",t,{name:"PBKDF2"},!1,["deriveBits"]).then(function(t){return f.deriveBits({name:"PBKDF2",salt:e,iterations:r,hash:{name:i}},t,n<<3)}).then(function(t){return c.from(t)})}var o,s=t("./precondition"),a=t("./default-encoding"),u=t("./sync"),c=t("safe-buffer").Buffer,f=n.crypto&&n.crypto.subtle,h={sha:"SHA-1","sha-1":"SHA-1",sha1:"SHA-1",sha256:"SHA-256","sha-256":"SHA-256",sha384:"SHA-384","sha-384":"SHA-384","sha-512":"SHA-512",sha512:"SHA-512"},l=[];e.exports=function(t,e,d,p,m,b){if(c.isBuffer(t)||(t=c.from(t,a)),c.isBuffer(e)||(e=c.from(e,a)),s(d,p),"function"==typeof m&&(b=m,m=void 0),"function"!=typeof b)throw new Error("No callback provided to pbkdf2");var v=h[(m=m||"sha1").toLowerCase()];if(!v||"function"!=typeof n.Promise)return r.nextTick(function(){var r;try{r=u(t,e,d,p,m)}catch(t){return b(t)}b(null,r)});!function(t,e){t.then(function(t){r.nextTick(function(){e(null,t)})},function(t){r.nextTick(function(){e(t)})})}(function(t){if(n.process&&!n.process.browser)return Promise.resolve(!1);if(!f||!f.importKey||!f.deriveBits)return Promise.resolve(!1);if(void 0!==l[t])return l[t];var e=i(o=o||c.alloc(8),o,10,128,t).then(function(){return!0}).catch(function(){return!1});return l[t]=e,e}(v).then(function(r){return r?i(t,e,d,p,v):u(t,e,d,p,m)}),b)}}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./default-encoding":116,"./precondition":117,"./sync":118,_process:120,"safe-buffer":143}],116:[function(t,e,r){(function(t){var r;if(t.browser)r="utf-8";else{r=parseInt(t.version.split(".")[0].slice(1),10)>=6?"utf-8":"binary"}e.exports=r}).call(this,t("_process"))},{_process:120}],117:[function(t,e,r){var n=Math.pow(2,30)-1;e.exports=function(t,e){if("number"!=typeof t)throw new TypeError("Iterations not a number");if(t<0)throw new TypeError("Bad iterations");if("number"!=typeof e)throw new TypeError("Key length not a number");if(e<0||e>n||e!=e)throw new TypeError("Bad key length")}},{}],118:[function(t,e,r){function n(t,e,r){var n=function(t){return"rmd160"===t||"ripemd160"===t?o:"md5"===t?i:function(e){return s(t).update(e).digest()}}(t),a="sha512"===t||"sha384"===t?128:64;e.length>a?e=n(e):e.length1)for(var r=1;rh||new a(e).cmp(c.modulus)>=0)throw new Error("decryption error");var l;l=o?f(new a(e),c):u(e,c);var d=new r(h-l.length);if(d.fill(0),l=r.concat([d,l],h),4===s)return n(c,l);if(1===s)return function(t,e,r){for(var n=e.slice(0,2),i=2,o=0;0!==e[i++];)if(i>=e.length){o++;break}var s=e.slice(2,i-1);if(e.slice(i-1,i),("0002"!==n.toString("hex")&&!r||"0001"!==n.toString("hex")&&r)&&o++,s.length<8&&o++,o)throw new Error("decryption error");return e.slice(i)}(0,l,o);if(3===s)return l;throw new Error("unknown padding")}}).call(this,t("buffer").Buffer)},{"./mgf":122,"./withPublic":125,"./xor":126,"bn.js":"BN","browserify-rsa":38,buffer:47,"create-hash":51,"parse-asn1":113}],124:[function(t,e,r){(function(r){function n(t,e,n){var i=e.length,s=t.modulus.byteLength();if(i>s-11)throw new Error("message too long");var a;return n?(a=new r(s-i-3)).fill(255):a=function(t,e){var n,i=new r(t),s=0,a=o(2*t),u=0;for(;sn-l-2)throw new Error("message too long");var d=new r(n-i-l-2);d.fill(0);var p=n-h-1,m=o(h),b=u(r.concat([f,d,new r([1]),e],p),a(m,p)),v=u(m,a(b,h));return new c(r.concat([new r([0]),v,b],n))}(m,e);else if(1===d)p=n(m,e,l);else{if(3!==d)throw new Error("unknown padding");if((p=new c(e)).cmp(m.modulus)>=0)throw new Error("data too long for modulus")}return l?h(p,m):f(p,m)}}).call(this,t("buffer").Buffer)},{"./mgf":122,"./withPublic":125,"./xor":126,"bn.js":"BN","browserify-rsa":38,buffer:47,"create-hash":51,"parse-asn1":113,randombytes:127}],125:[function(t,e,r){(function(r){var n=t("bn.js");e.exports=function(t,e){return new r(t.toRed(n.mont(e.modulus)).redPow(new n(e.publicExponent)).fromRed().toArray())}}).call(this,t("buffer").Buffer)},{"bn.js":"BN",buffer:47}],126:[function(t,e,r){e.exports=function(t,e){for(var r=t.length,n=-1;++n65536)throw new Error("requested too many random bytes");var s=new n.Uint8Array(t);t>0&&o.getRandomValues(s);var a=i.from(s.buffer);return"function"==typeof e?r.nextTick(function(){e(null,a)}):a}:e.exports=function(){throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11")}}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:120,"safe-buffer":143}],128:[function(t,e,r){(function(e,n){function i(){throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11")}function o(t,e){if("number"!=typeof t||t!=t)throw new TypeError("offset must be a number");if(t>d||t<0)throw new TypeError("offset must be a uint32");if(t>h||t>e)throw new RangeError("offset out of range")}function s(t,e,r){if("number"!=typeof t||t!=t)throw new TypeError("size must be a number");if(t>d||t<0)throw new TypeError("size must be a uint32");if(t+e>r||t>h)throw new RangeError("buffer too small")}function a(t,r,n,i){if(e.browser){var o=t.buffer,s=new Uint8Array(o,r,n);return l.getRandomValues(s),i?void e.nextTick(function(){i(null,t)}):t}{if(!i){return c(n).copy(t,r),t}c(n,function(e,n){if(e)return i(e);n.copy(t,r),i(null,t)})}}var u=t("safe-buffer"),c=t("randombytes"),f=u.Buffer,h=u.kMaxLength,l=n.crypto||n.msCrypto,d=Math.pow(2,32)-1;l&&l.getRandomValues||!e.browser?(r.randomFill=function(t,e,r,i){if(!(f.isBuffer(t)||t instanceof n.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if("function"==typeof e)i=e,e=0,r=t.length;else if("function"==typeof r)i=r,r=t.length-e;else if("function"!=typeof i)throw new TypeError('"cb" argument must be a function');return o(e,t.length),s(r,e,t.length),a(t,e,r,i)},r.randomFillSync=function(t,e,r){if(void 0===e&&(e=0),!(f.isBuffer(t)||t instanceof n.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return o(e,t.length),void 0===r&&(r=t.length-e),s(r,e,t.length),a(t,e,r)}):(r.randomFill=i,r.randomFillSync=i)}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:120,randombytes:127,"safe-buffer":143}],129:[function(t,e,r){e.exports=t("./lib/_stream_duplex.js")},{"./lib/_stream_duplex.js":130}],130:[function(t,e,r){function n(t){if(!(this instanceof n))return new n(t);c.call(this,t),f.call(this,t),t&&!1===t.readable&&(this.readable=!1),t&&!1===t.writable&&(this.writable=!1),this.allowHalfOpen=!0,t&&!1===t.allowHalfOpen&&(this.allowHalfOpen=!1),this.once("end",i)}function i(){this.allowHalfOpen||this._writableState.ended||s(o,this)}function o(t){t.end()}var s=t("process-nextick-args"),a=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};e.exports=n;var u=t("core-util-is");u.inherits=t("inherits");var c=t("./_stream_readable"),f=t("./_stream_writable");u.inherits(n,c);for(var h=a(f.prototype),l=0;l0?("string"==typeof e||o.objectMode||Object.getPrototypeOf(e)===E.prototype||(e=function(t){return E.from(t)}(e)),n?o.endEmitted?t.emit("error",new Error("stream.unshift() after end event")):a(t,o,e,!0):o.ended?t.emit("error",new Error("stream.push() after EOF")):(o.reading=!1,o.decoder&&!r?(e=o.decoder.write(e),o.objectMode||0!==e.length?a(t,o,e,!1):h(t,o)):a(t,o,e,!1))):n||(o.reading=!1)}return function(t){return!t.ended&&(t.needReadable||t.lengthe.highWaterMark&&(e.highWaterMark=function(t){return t>=R?t=R:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function c(t){var e=t._readableState;e.needReadable=!1,e.emittedReadable||(C("emitReadable",e.flowing),e.emittedReadable=!0,e.sync?_(f,t):f(t))}function f(t){C("emit readable"),t.emit("readable"),m(t)}function h(t,e){e.readingMore||(e.readingMore=!0,_(l,t,e))}function l(t,e){for(var r=e.length;!e.reading&&!e.flowing&&!e.ended&&e.length=e.length?(r=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.head.data:e.buffer.concat(e.length),e.buffer.clear()):r=function(t,e,r){var n;to.length?o.length:t;if(s===o.length?i+=o:i+=o.slice(0,t),0===(t-=s)){s===o.length?(++n,r.next?e.head=r.next:e.head=e.tail=null):(e.head=r,r.data=o.slice(s));break}++n}return e.length-=n,i}(t,e):function(t,e){var r=E.allocUnsafe(t),n=e.head,i=1;n.data.copy(r),t-=n.data.length;for(;n=n.next;){var o=n.data,s=t>o.length?o.length:t;if(o.copy(r,r.length-t,0,s),0===(t-=s)){s===o.length?(++i,n.next?e.head=n.next:e.head=e.tail=null):(e.head=n,n.data=o.slice(s));break}++i}return e.length-=i,r}(t,e);return n}(t,e.buffer,e.decoder),r}function v(t){var e=t._readableState;if(e.length>0)throw new Error('"endReadable()" called on non-empty stream');e.endEmitted||(e.ended=!0,_(y,e,t))}function y(t,e){t.endEmitted||0!==t.length||(t.endEmitted=!0,e.readable=!1,e.emit("end"))}function g(t,e){for(var r=0,n=t.length;r=e.highWaterMark||e.ended))return C("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?v(this):c(this),null;if(0===(t=u(t,e))&&e.ended)return 0===e.length&&v(this),null;var n=e.needReadable;C("need readable",n),(0===e.length||e.length-t0?b(t,e):null)?(e.needReadable=!0,t=0):e.length-=t,0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&v(this)),null!==i&&this.emit("data",i),i},o.prototype._read=function(t){this.emit("error",new Error("_read() is not implemented"))},o.prototype.pipe=function(t,e){function n(e,r){C("onunpipe"),e===f&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,C("cleanup"),t.removeListener("close",a),t.removeListener("finish",u),t.removeListener("drain",d),t.removeListener("error",s),t.removeListener("unpipe",n),f.removeListener("end",i),f.removeListener("end",c),f.removeListener("data",o),p=!0,!h.awaitDrain||t._writableState&&!t._writableState.needDrain||d())}function i(){C("onend"),t.end()}function o(e){C("ondata"),b=!1;!1!==t.write(e)||b||((1===h.pipesCount&&h.pipes===t||h.pipesCount>1&&-1!==g(h.pipes,t))&&!p&&(C("false write response, pause",f._readableState.awaitDrain),f._readableState.awaitDrain++,b=!0),f.pause())}function s(e){C("onerror",e),c(),t.removeListener("error",s),0===k(t,"error")&&t.emit("error",e)}function a(){t.removeListener("finish",u),c()}function u(){C("onfinish"),t.removeListener("close",a),c()}function c(){C("unpipe"),f.unpipe(t)}var f=this,h=this._readableState;switch(h.pipesCount){case 0:h.pipes=t;break;case 1:h.pipes=[h.pipes,t];break;default:h.pipes.push(t)}h.pipesCount+=1,C("pipe count=%d opts=%j",h.pipesCount,e);var l=(!e||!1!==e.end)&&t!==r.stdout&&t!==r.stderr?i:c;h.endEmitted?_(l):f.once("end",l),t.on("unpipe",n);var d=function(t){return function(){var e=t._readableState;C("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&k(t,"data")&&(e.flowing=!0,m(t))}}(f);t.on("drain",d);var p=!1,b=!1;return f.on("data",o),function(t,e,r){if("function"==typeof t.prependListener)return t.prependListener(e,r);t._events&&t._events[e]?M(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]:t.on(e,r)}(t,"error",s),t.once("close",a),t.once("finish",u),t.emit("pipe",f),h.flowing||(C("pipe resume"),f.resume()),t},o.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes?this:(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r),this);if(!t){var n=e.pipes,i=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var o=0;o-1?setImmediate:m;a.WritableState=s;var y=t("core-util-is");y.inherits=t("inherits");var g={deprecate:t("util-deprecate")},_=t("./internal/streams/stream"),w=t("safe-buffer").Buffer,M=n.Uint8Array||function(){},k=t("./internal/streams/destroy");y.inherits(a,_),s.prototype.getBuffer=function(){for(var t=this.bufferedRequest,e=[];t;)e.push(t),t=t.next;return e},function(){try{Object.defineProperty(s.prototype,"buffer",{get:g.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(t){}}();var x;"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(x=Function.prototype[Symbol.hasInstance],Object.defineProperty(a,Symbol.hasInstance,{value:function(t){return!!x.call(this,t)||t&&t._writableState instanceof s}})):x=function(t){return t instanceof this},a.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},a.prototype.write=function(t,e,r){var n=this._writableState,i=!1,s=function(t){return w.isBuffer(t)||t instanceof M}(t)&&!n.objectMode;return s&&!w.isBuffer(t)&&(t=function(t){return w.from(t)}(t)),"function"==typeof e&&(r=e,e=null),s?e="buffer":e||(e=n.defaultEncoding),"function"!=typeof r&&(r=o),n.ended?function(t,e){var r=new Error("write after end");t.emit("error",r),m(e,r)}(this,r):(s||function(t,e,r,n){var i=!0,o=!1;return null===r?o=new TypeError("May not write null values to stream"):"string"==typeof r||void 0===r||e.objectMode||(o=new TypeError("Invalid non-string/buffer chunk")),o&&(t.emit("error",o),m(n,o),i=!1),i}(this,n,t,r))&&(n.pendingcb++,i=u(this,n,s,t,e,r)),i},a.prototype.cork=function(){this._writableState.corked++},a.prototype.uncork=function(){var t=this._writableState;t.corked&&(t.corked--,t.writing||t.corked||t.finished||t.bufferProcessing||!t.bufferedRequest||h(this,t))},a.prototype.setDefaultEncoding=function(t){if("string"==typeof t&&(t=t.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((t+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this},a.prototype._write=function(t,e,r){r(new Error("_write() is not implemented"))},a.prototype._writev=null,a.prototype.end=function(t,e,r){var n=this._writableState;"function"==typeof t?(r=t,t=null,e=null):"function"==typeof e&&(r=e,e=null),null!==t&&void 0!==t&&this.write(t,e),n.corked&&(n.corked=1,this.uncork()),n.ending||n.finished||function(t,e,r){e.ending=!0,p(t,e),r&&(e.finished?m(r):t.once("finish",r)),e.ended=!0,t.writable=!1}(this,n,r)},Object.defineProperty(a.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),a.prototype.destroy=k.destroy,a.prototype._undestroy=k.undestroy,a.prototype._destroy=function(t,e){this.end(),e(t)}}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./_stream_duplex":130,"./internal/streams/destroy":136,"./internal/streams/stream":137,_process:120,"core-util-is":49,inherits:101,"process-nextick-args":119,"safe-buffer":143,"util-deprecate":154}],135:[function(t,e,r){function n(t,e,r){t.copy(e,r)}var i=t("safe-buffer").Buffer;e.exports=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.head=null,this.tail=null,this.length=0}return t.prototype.push=function(t){var e={data:t,next:null};this.length>0?this.tail.next=e:this.head=e,this.tail=e,++this.length},t.prototype.unshift=function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length},t.prototype.shift=function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}},t.prototype.clear=function(){this.head=this.tail=null,this.length=0},t.prototype.join=function(t){if(0===this.length)return"";for(var e=this.head,r=""+e.data;e=e.next;)r+=t+e.data;return r},t.prototype.concat=function(t){if(0===this.length)return i.alloc(0);if(1===this.length)return this.head.data;for(var e=i.allocUnsafe(t>>>0),r=this.head,o=0;r;)n(r.data,e,o),o+=r.data.length,r=r.next;return e},t}()},{"safe-buffer":143}],136:[function(t,e,r){function n(t,e){t.emit("error",e)}var i=t("process-nextick-args");e.exports={destroy:function(t,e){var r=this,o=this._readableState&&this._readableState.destroyed,s=this._writableState&&this._writableState.destroyed;o||s?e?e(t):!t||this._writableState&&this._writableState.errorEmitted||i(n,this,t):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,function(t){!e&&t?(i(n,r,t),r._writableState&&(r._writableState.errorEmitted=!0)):e&&e(t)}))},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},{"process-nextick-args":119}],137:[function(t,e,r){e.exports=t("events").EventEmitter},{events:83}],138:[function(t,e,r){e.exports=t("./readable").PassThrough},{"./readable":139}],139:[function(t,e,r){(r=e.exports=t("./lib/_stream_readable.js")).Stream=r,r.Readable=r,r.Writable=t("./lib/_stream_writable.js"),r.Duplex=t("./lib/_stream_duplex.js"),r.Transform=t("./lib/_stream_transform.js"),r.PassThrough=t("./lib/_stream_passthrough.js")},{"./lib/_stream_duplex.js":130,"./lib/_stream_passthrough.js":131,"./lib/_stream_readable.js":132,"./lib/_stream_transform.js":133,"./lib/_stream_writable.js":134}],140:[function(t,e,r){e.exports=t("./readable").Transform},{"./readable":139}],141:[function(t,e,r){e.exports=t("./lib/_stream_writable.js")},{"./lib/_stream_writable.js":134}],142:[function(t,e,r){(function(r){function n(){h.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function i(t,e){return t<>>32-e}function o(t,e,r,n,o,s,a,u){return i(t+(e^r^n)+s+a|0,u)+o|0}function s(t,e,r,n,o,s,a,u){return i(t+(e&r|~e&n)+s+a|0,u)+o|0}function a(t,e,r,n,o,s,a,u){return i(t+((e|~r)^n)+s+a|0,u)+o|0}function u(t,e,r,n,o,s,a,u){return i(t+(e&n|r&~n)+s+a|0,u)+o|0}function c(t,e,r,n,o,s,a,u){return i(t+(e^(r|~n))+s+a|0,u)+o|0}var f=t("inherits"),h=t("hash-base");f(n,h),n.prototype._update=function(){for(var t=new Array(16),e=0;e<16;++e)t[e]=this._block.readInt32LE(4*e);var r=this._a,n=this._b,f=this._c,h=this._d,l=this._e;l=o(l,r=o(r,n,f,h,l,t[0],0,11),n,f=i(f,10),h,t[1],0,14),n=o(n=i(n,10),f=o(f,h=o(h,l,r,n,f,t[2],0,15),l,r=i(r,10),n,t[3],0,12),h,l=i(l,10),r,t[4],0,5),h=o(h=i(h,10),l=o(l,r=o(r,n,f,h,l,t[5],0,8),n,f=i(f,10),h,t[6],0,7),r,n=i(n,10),f,t[7],0,9),r=o(r=i(r,10),n=o(n,f=o(f,h,l,r,n,t[8],0,11),h,l=i(l,10),r,t[9],0,13),f,h=i(h,10),l,t[10],0,14),f=o(f=i(f,10),h=o(h,l=o(l,r,n,f,h,t[11],0,15),r,n=i(n,10),f,t[12],0,6),l,r=i(r,10),n,t[13],0,7),l=s(l=i(l,10),r=o(r,n=o(n,f,h,l,r,t[14],0,9),f,h=i(h,10),l,t[15],0,8),n,f=i(f,10),h,t[7],1518500249,7),n=s(n=i(n,10),f=s(f,h=s(h,l,r,n,f,t[4],1518500249,6),l,r=i(r,10),n,t[13],1518500249,8),h,l=i(l,10),r,t[1],1518500249,13),h=s(h=i(h,10),l=s(l,r=s(r,n,f,h,l,t[10],1518500249,11),n,f=i(f,10),h,t[6],1518500249,9),r,n=i(n,10),f,t[15],1518500249,7),r=s(r=i(r,10),n=s(n,f=s(f,h,l,r,n,t[3],1518500249,15),h,l=i(l,10),r,t[12],1518500249,7),f,h=i(h,10),l,t[0],1518500249,12),f=s(f=i(f,10),h=s(h,l=s(l,r,n,f,h,t[9],1518500249,15),r,n=i(n,10),f,t[5],1518500249,9),l,r=i(r,10),n,t[2],1518500249,11),l=s(l=i(l,10),r=s(r,n=s(n,f,h,l,r,t[14],1518500249,7),f,h=i(h,10),l,t[11],1518500249,13),n,f=i(f,10),h,t[8],1518500249,12),n=a(n=i(n,10),f=a(f,h=a(h,l,r,n,f,t[3],1859775393,11),l,r=i(r,10),n,t[10],1859775393,13),h,l=i(l,10),r,t[14],1859775393,6),h=a(h=i(h,10),l=a(l,r=a(r,n,f,h,l,t[4],1859775393,7),n,f=i(f,10),h,t[9],1859775393,14),r,n=i(n,10),f,t[15],1859775393,9),r=a(r=i(r,10),n=a(n,f=a(f,h,l,r,n,t[8],1859775393,13),h,l=i(l,10),r,t[1],1859775393,15),f,h=i(h,10),l,t[2],1859775393,14),f=a(f=i(f,10),h=a(h,l=a(l,r,n,f,h,t[7],1859775393,8),r,n=i(n,10),f,t[0],1859775393,13),l,r=i(r,10),n,t[6],1859775393,6),l=a(l=i(l,10),r=a(r,n=a(n,f,h,l,r,t[13],1859775393,5),f,h=i(h,10),l,t[11],1859775393,12),n,f=i(f,10),h,t[5],1859775393,7),n=u(n=i(n,10),f=u(f,h=a(h,l,r,n,f,t[12],1859775393,5),l,r=i(r,10),n,t[1],2400959708,11),h,l=i(l,10),r,t[9],2400959708,12),h=u(h=i(h,10),l=u(l,r=u(r,n,f,h,l,t[11],2400959708,14),n,f=i(f,10),h,t[10],2400959708,15),r,n=i(n,10),f,t[0],2400959708,14),r=u(r=i(r,10),n=u(n,f=u(f,h,l,r,n,t[8],2400959708,15),h,l=i(l,10),r,t[12],2400959708,9),f,h=i(h,10),l,t[4],2400959708,8),f=u(f=i(f,10),h=u(h,l=u(l,r,n,f,h,t[13],2400959708,9),r,n=i(n,10),f,t[3],2400959708,14),l,r=i(r,10),n,t[7],2400959708,5),l=u(l=i(l,10),r=u(r,n=u(n,f,h,l,r,t[15],2400959708,6),f,h=i(h,10),l,t[14],2400959708,8),n,f=i(f,10),h,t[5],2400959708,6),n=c(n=i(n,10),f=u(f,h=u(h,l,r,n,f,t[6],2400959708,5),l,r=i(r,10),n,t[2],2400959708,12),h,l=i(l,10),r,t[4],2840853838,9),h=c(h=i(h,10),l=c(l,r=c(r,n,f,h,l,t[0],2840853838,15),n,f=i(f,10),h,t[5],2840853838,5),r,n=i(n,10),f,t[9],2840853838,11),r=c(r=i(r,10),n=c(n,f=c(f,h,l,r,n,t[7],2840853838,6),h,l=i(l,10),r,t[12],2840853838,8),f,h=i(h,10),l,t[2],2840853838,13),f=c(f=i(f,10),h=c(h,l=c(l,r,n,f,h,t[10],2840853838,12),r,n=i(n,10),f,t[14],2840853838,5),l,r=i(r,10),n,t[1],2840853838,12),l=c(l=i(l,10),r=c(r,n=c(n,f,h,l,r,t[3],2840853838,13),f,h=i(h,10),l,t[8],2840853838,14),n,f=i(f,10),h,t[11],2840853838,11),n=c(n=i(n,10),f=c(f,h=c(h,l,r,n,f,t[6],2840853838,8),l,r=i(r,10),n,t[15],2840853838,5),h,l=i(l,10),r,t[13],2840853838,6),h=i(h,10);var d=this._a,p=this._b,m=this._c,b=this._d,v=this._e;v=c(v,d=c(d,p,m,b,v,t[5],1352829926,8),p,m=i(m,10),b,t[14],1352829926,9),p=c(p=i(p,10),m=c(m,b=c(b,v,d,p,m,t[7],1352829926,9),v,d=i(d,10),p,t[0],1352829926,11),b,v=i(v,10),d,t[9],1352829926,13),b=c(b=i(b,10),v=c(v,d=c(d,p,m,b,v,t[2],1352829926,15),p,m=i(m,10),b,t[11],1352829926,15),d,p=i(p,10),m,t[4],1352829926,5),d=c(d=i(d,10),p=c(p,m=c(m,b,v,d,p,t[13],1352829926,7),b,v=i(v,10),d,t[6],1352829926,7),m,b=i(b,10),v,t[15],1352829926,8),m=c(m=i(m,10),b=c(b,v=c(v,d,p,m,b,t[8],1352829926,11),d,p=i(p,10),m,t[1],1352829926,14),v,d=i(d,10),p,t[10],1352829926,14),v=u(v=i(v,10),d=c(d,p=c(p,m,b,v,d,t[3],1352829926,12),m,b=i(b,10),v,t[12],1352829926,6),p,m=i(m,10),b,t[6],1548603684,9),p=u(p=i(p,10),m=u(m,b=u(b,v,d,p,m,t[11],1548603684,13),v,d=i(d,10),p,t[3],1548603684,15),b,v=i(v,10),d,t[7],1548603684,7),b=u(b=i(b,10),v=u(v,d=u(d,p,m,b,v,t[0],1548603684,12),p,m=i(m,10),b,t[13],1548603684,8),d,p=i(p,10),m,t[5],1548603684,9),d=u(d=i(d,10),p=u(p,m=u(m,b,v,d,p,t[10],1548603684,11),b,v=i(v,10),d,t[14],1548603684,7),m,b=i(b,10),v,t[15],1548603684,7),m=u(m=i(m,10),b=u(b,v=u(v,d,p,m,b,t[8],1548603684,12),d,p=i(p,10),m,t[12],1548603684,7),v,d=i(d,10),p,t[4],1548603684,6),v=u(v=i(v,10),d=u(d,p=u(p,m,b,v,d,t[9],1548603684,15),m,b=i(b,10),v,t[1],1548603684,13),p,m=i(m,10),b,t[2],1548603684,11),p=a(p=i(p,10),m=a(m,b=a(b,v,d,p,m,t[15],1836072691,9),v,d=i(d,10),p,t[5],1836072691,7),b,v=i(v,10),d,t[1],1836072691,15),b=a(b=i(b,10),v=a(v,d=a(d,p,m,b,v,t[3],1836072691,11),p,m=i(m,10),b,t[7],1836072691,8),d,p=i(p,10),m,t[14],1836072691,6),d=a(d=i(d,10),p=a(p,m=a(m,b,v,d,p,t[6],1836072691,6),b,v=i(v,10),d,t[9],1836072691,14),m,b=i(b,10),v,t[11],1836072691,12),m=a(m=i(m,10),b=a(b,v=a(v,d,p,m,b,t[8],1836072691,13),d,p=i(p,10),m,t[12],1836072691,5),v,d=i(d,10),p,t[2],1836072691,14),v=a(v=i(v,10),d=a(d,p=a(p,m,b,v,d,t[10],1836072691,13),m,b=i(b,10),v,t[0],1836072691,13),p,m=i(m,10),b,t[4],1836072691,7),p=s(p=i(p,10),m=s(m,b=a(b,v,d,p,m,t[13],1836072691,5),v,d=i(d,10),p,t[8],2053994217,15),b,v=i(v,10),d,t[6],2053994217,5),b=s(b=i(b,10),v=s(v,d=s(d,p,m,b,v,t[4],2053994217,8),p,m=i(m,10),b,t[1],2053994217,11),d,p=i(p,10),m,t[3],2053994217,14),d=s(d=i(d,10),p=s(p,m=s(m,b,v,d,p,t[11],2053994217,14),b,v=i(v,10),d,t[15],2053994217,6),m,b=i(b,10),v,t[0],2053994217,14),m=s(m=i(m,10),b=s(b,v=s(v,d,p,m,b,t[5],2053994217,6),d,p=i(p,10),m,t[12],2053994217,9),v,d=i(d,10),p,t[2],2053994217,12),v=s(v=i(v,10),d=s(d,p=s(p,m,b,v,d,t[13],2053994217,9),m,b=i(b,10),v,t[9],2053994217,12),p,m=i(m,10),b,t[7],2053994217,5),p=o(p=i(p,10),m=s(m,b=s(b,v,d,p,m,t[10],2053994217,15),v,d=i(d,10),p,t[14],2053994217,8),b,v=i(v,10),d,t[12],0,8),b=o(b=i(b,10),v=o(v,d=o(d,p,m,b,v,t[15],0,5),p,m=i(m,10),b,t[10],0,12),d,p=i(p,10),m,t[4],0,9),d=o(d=i(d,10),p=o(p,m=o(m,b,v,d,p,t[1],0,12),b,v=i(v,10),d,t[5],0,5),m,b=i(b,10),v,t[8],0,14),m=o(m=i(m,10),b=o(b,v=o(v,d,p,m,b,t[7],0,6),d,p=i(p,10),m,t[6],0,8),v,d=i(d,10),p,t[2],0,13),v=o(v=i(v,10),d=o(d,p=o(p,m,b,v,d,t[13],0,6),m,b=i(b,10),v,t[14],0,5),p,m=i(m,10),b,t[0],0,15),p=o(p=i(p,10),m=o(m,b=o(b,v,d,p,m,t[3],0,13),v,d=i(d,10),p,t[9],0,11),b,v=i(v,10),d,t[11],0,11),b=i(b,10);var y=this._b+f+b|0;this._b=this._c+h+v|0,this._c=this._d+l+d|0,this._d=this._e+r+p|0,this._e=this._a+n+m|0,this._a=y},n.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=new r(20);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t.writeInt32LE(this._e,16),t},e.exports=n}).call(this,t("buffer").Buffer)},{buffer:47,"hash-base":85,inherits:101}],143:[function(t,e,r){function n(t,e){for(var r in t)e[r]=t[r]}function i(t,e,r){return s(t,e,r)}var o=t("buffer"),s=o.Buffer;s.from&&s.alloc&&s.allocUnsafe&&s.allocUnsafeSlow?e.exports=o:(n(o,r),r.Buffer=i),n(s,i),i.from=function(t,e,r){if("number"==typeof t)throw new TypeError("Argument must not be a number");return s(t,e,r)},i.alloc=function(t,e,r){if("number"!=typeof t)throw new TypeError("Argument must be a number");var n=s(t);return void 0!==e?"string"==typeof r?n.fill(e,r):n.fill(e):n.fill(0),n},i.allocUnsafe=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return s(t)},i.allocUnsafeSlow=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return o.SlowBuffer(t)}},{buffer:47}],144:[function(t,e,r){function n(t,e){this._block=i.alloc(t),this._finalSize=e,this._blockSize=t,this._len=0}var i=t("safe-buffer").Buffer;n.prototype.update=function(t,e){"string"==typeof t&&(e=e||"utf8",t=i.from(t,e));for(var r=this._block,n=this._blockSize,o=t.length,s=this._len,a=0;a=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=8*this._len;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var n=4294967295&r,i=(r-n)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var o=this._hash();return t?o.toString(t):o},n.prototype._update=function(){throw new Error("_update must be implemented by subclass")},e.exports=n},{"safe-buffer":143}],145:[function(t,e,r){(r=e.exports=function(t){t=t.toLowerCase();var e=r[t];if(!e)throw new Error(t+" is not supported (we accept pull requests)");return new e}).sha=t("./sha"),r.sha1=t("./sha1"),r.sha224=t("./sha224"),r.sha256=t("./sha256"),r.sha384=t("./sha384"),r.sha512=t("./sha512")},{"./sha":146,"./sha1":147,"./sha224":148,"./sha256":149,"./sha384":150,"./sha512":151}],146:[function(t,e,r){function n(){this.init(),this._w=h,u.call(this,64,56)}function i(t){return t<<5|t>>>27}function o(t){return t<<30|t>>>2}function s(t,e,r,n){return 0===t?e&r|~e&n:2===t?e&r|e&n|r&n:e^r^n}var a=t("inherits"),u=t("./hash"),c=t("safe-buffer").Buffer,f=[1518500249,1859775393,-1894007588,-899497514],h=new Array(80);a(n,u),n.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},n.prototype._update=function(t){for(var e=this._w,r=0|this._a,n=0|this._b,a=0|this._c,u=0|this._d,c=0|this._e,h=0;h<16;++h)e[h]=t.readInt32BE(4*h);for(;h<80;++h)e[h]=e[h-3]^e[h-8]^e[h-14]^e[h-16];for(var l=0;l<80;++l){var d=~~(l/20),p=i(r)+s(d,n,a,u)+c+e[l]+f[d]|0;c=u,u=a,a=o(n),n=r,r=p}this._a=r+this._a|0,this._b=n+this._b|0,this._c=a+this._c|0,this._d=u+this._d|0,this._e=c+this._e|0},n.prototype._hash=function(){var t=c.allocUnsafe(20);return t.writeInt32BE(0|this._a,0),t.writeInt32BE(0|this._b,4),t.writeInt32BE(0|this._c,8),t.writeInt32BE(0|this._d,12),t.writeInt32BE(0|this._e,16),t},e.exports=n},{"./hash":144,inherits:101,"safe-buffer":143}],147:[function(t,e,r){function n(){this.init(),this._w=l,c.call(this,64,56)}function i(t){return t<<1|t>>>31}function o(t){return t<<5|t>>>27}function s(t){return t<<30|t>>>2}function a(t,e,r,n){return 0===t?e&r|~e&n:2===t?e&r|e&n|r&n:e^r^n}var u=t("inherits"),c=t("./hash"),f=t("safe-buffer").Buffer,h=[1518500249,1859775393,-1894007588,-899497514],l=new Array(80);u(n,c),n.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},n.prototype._update=function(t){for(var e=this._w,r=0|this._a,n=0|this._b,u=0|this._c,c=0|this._d,f=0|this._e,l=0;l<16;++l)e[l]=t.readInt32BE(4*l);for(;l<80;++l)e[l]=i(e[l-3]^e[l-8]^e[l-14]^e[l-16]);for(var d=0;d<80;++d){var p=~~(d/20),m=o(r)+a(p,n,u,c)+f+e[d]+h[p]|0;f=c,c=u,u=s(n),n=r,r=m}this._a=r+this._a|0,this._b=n+this._b|0,this._c=u+this._c|0,this._d=c+this._d|0,this._e=f+this._e|0},n.prototype._hash=function(){var t=f.allocUnsafe(20);return t.writeInt32BE(0|this._a,0),t.writeInt32BE(0|this._b,4),t.writeInt32BE(0|this._c,8),t.writeInt32BE(0|this._d,12),t.writeInt32BE(0|this._e,16),t},e.exports=n},{"./hash":144,inherits:101,"safe-buffer":143}],148:[function(t,e,r){function n(){this.init(),this._w=u,s.call(this,64,56)}var i=t("inherits"),o=t("./sha256"),s=t("./hash"),a=t("safe-buffer").Buffer,u=new Array(64);i(n,o),n.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},n.prototype._hash=function(){var t=a.allocUnsafe(28);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t},e.exports=n},{"./hash":144,"./sha256":149,inherits:101,"safe-buffer":143}],149:[function(t,e,r){function n(){this.init(),this._w=p,h.call(this,64,56)}function i(t,e,r){return r^t&(e^r)}function o(t,e,r){return t&e|r&(t|e)}function s(t){return(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10)}function a(t){return(t>>>6|t<<26)^(t>>>11|t<<21)^(t>>>25|t<<7)}function u(t){return(t>>>7|t<<25)^(t>>>18|t<<14)^t>>>3}function c(t){return(t>>>17|t<<15)^(t>>>19|t<<13)^t>>>10}var f=t("inherits"),h=t("./hash"),l=t("safe-buffer").Buffer,d=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],p=new Array(64);f(n,h),n.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},n.prototype._update=function(t){for(var e=this._w,r=0|this._a,n=0|this._b,f=0|this._c,h=0|this._d,l=0|this._e,p=0|this._f,m=0|this._g,b=0|this._h,v=0;v<16;++v)e[v]=t.readInt32BE(4*v);for(;v<64;++v)e[v]=c(e[v-2])+e[v-7]+u(e[v-15])+e[v-16]|0;for(var y=0;y<64;++y){var g=b+a(l)+i(l,p,m)+d[y]+e[y]|0,_=s(r)+o(r,n,f)|0;b=m,m=p,p=l,l=h+g|0,h=f,f=n,n=r,r=g+_|0}this._a=r+this._a|0,this._b=n+this._b|0,this._c=f+this._c|0,this._d=h+this._d|0,this._e=l+this._e|0,this._f=p+this._f|0,this._g=m+this._g|0,this._h=b+this._h|0},n.prototype._hash=function(){var t=l.allocUnsafe(32);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t.writeInt32BE(this._h,28),t},e.exports=n},{"./hash":144,inherits:101,"safe-buffer":143}],150:[function(t,e,r){function n(){this.init(),this._w=u,s.call(this,128,112)}var i=t("inherits"),o=t("./sha512"),s=t("./hash"),a=t("safe-buffer").Buffer,u=new Array(160);i(n,o),n.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},n.prototype._hash=function(){function t(t,r,n){e.writeInt32BE(t,n),e.writeInt32BE(r,n+4)}var e=a.allocUnsafe(48);return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),e},e.exports=n},{"./hash":144,"./sha512":151,inherits:101,"safe-buffer":143}],151:[function(t,e,r){function n(){this.init(),this._w=v,p.call(this,128,112)}function i(t,e,r){return r^t&(e^r)}function o(t,e,r){return t&e|r&(t|e)}function s(t,e){return(t>>>28|e<<4)^(e>>>2|t<<30)^(e>>>7|t<<25)}function a(t,e){return(t>>>14|e<<18)^(t>>>18|e<<14)^(e>>>9|t<<23)}function u(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^t>>>7}function c(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^(t>>>7|e<<25)}function f(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^t>>>6}function h(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^(t>>>6|e<<26)}function l(t,e){return t>>>0>>0?1:0}var d=t("inherits"),p=t("./hash"),m=t("safe-buffer").Buffer,b=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],v=new Array(160);d(n,p),n.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},n.prototype._update=function(t){for(var e=this._w,r=0|this._ah,n=0|this._bh,d=0|this._ch,p=0|this._dh,m=0|this._eh,v=0|this._fh,y=0|this._gh,g=0|this._hh,_=0|this._al,w=0|this._bl,M=0|this._cl,k=0|this._dl,x=0|this._el,E=0|this._fl,S=0|this._gl,A=0|this._hl,j=0;j<32;j+=2)e[j]=t.readInt32BE(4*j),e[j+1]=t.readInt32BE(4*j+4);for(;j<160;j+=2){var C=e[j-30],T=e[j-30+1],P=u(C,T),I=c(T,C),B=f(C=e[j-4],T=e[j-4+1]),R=h(T,C),F=e[j-14],O=e[j-14+1],N=e[j-32],L=e[j-32+1],D=I+O|0,q=P+F+l(D,I)|0;q=(q=q+B+l(D=D+R|0,R)|0)+N+l(D=D+L|0,L)|0,e[j]=q,e[j+1]=D}for(var U=0;U<160;U+=2){q=e[U],D=e[U+1];var z=o(r,n,d),H=o(_,w,M),K=s(r,_),V=s(_,r),W=a(m,x),X=a(x,m),G=b[U],$=b[U+1],Z=i(m,v,y),J=i(x,E,S),Q=A+X|0,Y=g+W+l(Q,A)|0;Y=(Y=(Y=Y+Z+l(Q=Q+J|0,J)|0)+G+l(Q=Q+$|0,$)|0)+q+l(Q=Q+D|0,D)|0;var tt=V+H|0,et=K+z+l(tt,V)|0;g=y,A=S,y=v,S=E,v=m,E=x,m=p+Y+l(x=k+Q|0,k)|0,p=d,k=M,d=n,M=w,n=r,w=_,r=Y+et+l(_=Q+tt|0,Q)|0}this._al=this._al+_|0,this._bl=this._bl+w|0,this._cl=this._cl+M|0,this._dl=this._dl+k|0,this._el=this._el+x|0,this._fl=this._fl+E|0,this._gl=this._gl+S|0,this._hl=this._hl+A|0,this._ah=this._ah+r+l(this._al,_)|0,this._bh=this._bh+n+l(this._bl,w)|0,this._ch=this._ch+d+l(this._cl,M)|0,this._dh=this._dh+p+l(this._dl,k)|0,this._eh=this._eh+m+l(this._el,x)|0,this._fh=this._fh+v+l(this._fl,E)|0,this._gh=this._gh+y+l(this._gl,S)|0,this._hh=this._hh+g+l(this._hl,A)|0},n.prototype._hash=function(){function t(t,r,n){e.writeInt32BE(t,n),e.writeInt32BE(r,n+4)}var e=m.allocUnsafe(64);return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),t(this._gh,this._gl,48),t(this._hh,this._hl,56),e},e.exports=n},{"./hash":144,inherits:101,"safe-buffer":143}],152:[function(t,e,r){function n(){i.call(this)}e.exports=n;var i=t("events").EventEmitter;t("inherits")(n,i),n.Readable=t("readable-stream/readable.js"),n.Writable=t("readable-stream/writable.js"),n.Duplex=t("readable-stream/duplex.js"),n.Transform=t("readable-stream/transform.js"),n.PassThrough=t("readable-stream/passthrough.js"),n.Stream=n,n.prototype.pipe=function(t,e){function r(e){t.writable&&!1===t.write(e)&&c.pause&&c.pause()}function n(){c.readable&&c.resume&&c.resume()}function o(){f||(f=!0,t.end())}function s(){f||(f=!0,"function"==typeof t.destroy&&t.destroy())}function a(t){if(u(),0===i.listenerCount(this,"error"))throw t}function u(){c.removeListener("data",r),t.removeListener("drain",n),c.removeListener("end",o),c.removeListener("close",s),c.removeListener("error",a),t.removeListener("error",a),c.removeListener("end",u),c.removeListener("close",u),t.removeListener("close",u)}var c=this;c.on("data",r),t.on("drain",n),t._isStdio||e&&!1===e.end||(c.on("end",o),c.on("close",s));var f=!1;return c.on("error",a),t.on("error",a),c.on("end",u),c.on("close",u),t.on("close",u),t.emit("pipe",c),t}},{events:83,inherits:101,"readable-stream/duplex.js":129,"readable-stream/passthrough.js":138,"readable-stream/readable.js":139,"readable-stream/transform.js":140,"readable-stream/writable.js":141}],153:[function(t,e,r){function n(t){this.encoding=function(t){var e=function(t){if(!t)return"utf8";for(var e;;)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}(t);if("string"!=typeof e&&(l.isEncoding===d||!d(t)))throw new Error("Unknown encoding: "+t);return e||t}(t);var e;switch(this.encoding){case"utf16le":this.text=s,this.end=a,e=4;break;case"utf8":this.fillLast=o,e=4;break;case"base64":this.text=u,this.end=c,e=3;break;default:return this.write=f,void(this.end=h)}this.lastNeed=0,this.lastTotal=0,this.lastChar=l.allocUnsafe(e)}function i(t){return t<=127?0:t>>5==6?2:t>>4==14?3:t>>3==30?4:-1}function o(t){var e=this.lastTotal-this.lastNeed,r=function(t,e,r){if(128!=(192&e[0]))return t.lastNeed=0,"�".repeat(r);if(t.lastNeed>1&&e.length>1){if(128!=(192&e[1]))return t.lastNeed=1,"�".repeat(r+1);if(t.lastNeed>2&&e.length>2&&128!=(192&e[2]))return t.lastNeed=2,"�".repeat(r+2)}}(this,t,e);return void 0!==r?r:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),void(this.lastNeed-=t.length))}function s(t,e){if((t.length-e)%2==0){var r=t.toString("utf16le",e);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function a(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function u(t,e){var r=(t.length-e)%3;return 0===r?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function c(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function f(t){return t.toString(this.encoding)}function h(t){return t&&t.length?this.write(t):""}var l=t("safe-buffer").Buffer,d=l.isEncoding||function(t){switch((t=""+t)&&t.toLowerCase()){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":return!0;default:return!1}};r.StringDecoder=n,n.prototype.write=function(t){if(0===t.length)return"";var e,r;if(this.lastNeed){if(void 0===(e=this.fillLast(t)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r=0?(o>0&&(t.lastNeed=o-1),o):--n=0?(o>0&&(t.lastNeed=o-2),o):--n=0?(o>0&&(2===o?o=0:t.lastNeed=o-3),o):0}(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var n=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,n),t.toString("utf8",e,n)},n.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length}},{"safe-buffer":143}],154:[function(t,e,r){(function(t){function r(e){try{if(!t.localStorage)return!1}catch(t){return!1}var r=t.localStorage[e];return null!=r&&"true"===String(r).toLowerCase()}e.exports=function(t,e){if(r("noDeprecation"))return t;var n=!1;return function(){if(!n){if(r("throwDeprecation"))throw new Error(e);r("traceDeprecation")?console.trace(e):console.warn(e),n=!0}return t.apply(this,arguments)}}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],155:[function(require,module,exports){function Context(){}var indexOf=require("indexof"),Object_keys=function(t){if(Object.keys)return Object.keys(t);var e=[];for(var r in t)e.push(r);return e},forEach=function(t,e){if(t.forEach)return t.forEach(e);for(var r=0;r>6|192);else{if(i>55295&&i<56320){if(++n==t.length)return null;var o=t.charCodeAt(n);if(o<56320||o>57343)return null;r+=e((i=65536+((1023&i)<<10)+(1023&o))>>18|240),r+=e(i>>12&63|128)}else r+=e(i>>12|224);r+=e(i>>6&63|128)}r+=e(63&i|128)}}return r},toString:function(t){for(var e="",r=0,o=i(t);r127){if(s>191&&s<224){if(r>=o)return null;s=(31&s)<<6|63&n(t,r)}else if(s>223&&s<240){if(r+1>=o)return null;s=(15&s)<<12|(63&n(t,r))<<6|63&n(t,++r)}else{if(!(s>239&&s<248))return null;if(r+2>=o)return null;s=(7&s)<<18|(63&n(t,r))<<12|(63&n(t,++r))<<6|63&n(t,++r)}++r}if(s<=65535)e+=String.fromCharCode(s);else{if(!(s<=1114111))return null;s-=65536,e+=String.fromCharCode(s>>10|55296),e+=String.fromCharCode(1023&s|56320)}}return e},fromNumber:function(t){var e=t.toString(16);return e.length%2==0?"0x"+e:"0x0"+e},toNumber:function(t){return parseInt(t.slice(2),16)},fromNat:function(t){return"0x0"===t?"0x":t.length%2==0?t:"0x0"+t.slice(2)},toNat:function(t){return"0"===t[2]?"0x"+t.slice(3):t},fromArray:s,toArray:o,fromUint8Array:function(t){return s([].slice.call(t,0))},toUint8Array:function(t){return new Uint8Array(o(t))}}},{"./array.js":156}],158:[function(t,e,r){var n="0123456789abcdef".split(""),i=[1,256,65536,16777216],o=[0,8,16,24],s=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],a=function(t){var e,r,n,i,o,a,u,c,f,h,l,d,p,m,b,v,y,g,_,w,M,k,x,E,S,A,j,C,T,P,I,B,R,F,O,N,L,D,q,U,z,H,K,V,W,X,G,$,Z,J,Q,Y,tt,et,rt,nt,it,ot,st,at,ut,ct,ft;for(n=0;n<48;n+=2)i=t[0]^t[10]^t[20]^t[30]^t[40],o=t[1]^t[11]^t[21]^t[31]^t[41],a=t[2]^t[12]^t[22]^t[32]^t[42],u=t[3]^t[13]^t[23]^t[33]^t[43],c=t[4]^t[14]^t[24]^t[34]^t[44],f=t[5]^t[15]^t[25]^t[35]^t[45],h=t[6]^t[16]^t[26]^t[36]^t[46],l=t[7]^t[17]^t[27]^t[37]^t[47],e=(d=t[8]^t[18]^t[28]^t[38]^t[48])^(a<<1|u>>>31),r=(p=t[9]^t[19]^t[29]^t[39]^t[49])^(u<<1|a>>>31),t[0]^=e,t[1]^=r,t[10]^=e,t[11]^=r,t[20]^=e,t[21]^=r,t[30]^=e,t[31]^=r,t[40]^=e,t[41]^=r,e=i^(c<<1|f>>>31),r=o^(f<<1|c>>>31),t[2]^=e,t[3]^=r,t[12]^=e,t[13]^=r,t[22]^=e,t[23]^=r,t[32]^=e,t[33]^=r,t[42]^=e,t[43]^=r,e=a^(h<<1|l>>>31),r=u^(l<<1|h>>>31),t[4]^=e,t[5]^=r,t[14]^=e,t[15]^=r,t[24]^=e,t[25]^=r,t[34]^=e,t[35]^=r,t[44]^=e,t[45]^=r,e=c^(d<<1|p>>>31),r=f^(p<<1|d>>>31),t[6]^=e,t[7]^=r,t[16]^=e,t[17]^=r,t[26]^=e,t[27]^=r,t[36]^=e,t[37]^=r,t[46]^=e,t[47]^=r,e=h^(i<<1|o>>>31),r=l^(o<<1|i>>>31),t[8]^=e,t[9]^=r,t[18]^=e,t[19]^=r,t[28]^=e,t[29]^=r,t[38]^=e,t[39]^=r,t[48]^=e,t[49]^=r,m=t[0],b=t[1],X=t[11]<<4|t[10]>>>28,G=t[10]<<4|t[11]>>>28,C=t[20]<<3|t[21]>>>29,T=t[21]<<3|t[20]>>>29,at=t[31]<<9|t[30]>>>23,ut=t[30]<<9|t[31]>>>23,H=t[40]<<18|t[41]>>>14,K=t[41]<<18|t[40]>>>14,F=t[2]<<1|t[3]>>>31,O=t[3]<<1|t[2]>>>31,v=t[13]<<12|t[12]>>>20,y=t[12]<<12|t[13]>>>20,$=t[22]<<10|t[23]>>>22,Z=t[23]<<10|t[22]>>>22,P=t[33]<<13|t[32]>>>19,I=t[32]<<13|t[33]>>>19,ct=t[42]<<2|t[43]>>>30,ft=t[43]<<2|t[42]>>>30,et=t[5]<<30|t[4]>>>2,rt=t[4]<<30|t[5]>>>2,N=t[14]<<6|t[15]>>>26,L=t[15]<<6|t[14]>>>26,g=t[25]<<11|t[24]>>>21,_=t[24]<<11|t[25]>>>21,J=t[34]<<15|t[35]>>>17,Q=t[35]<<15|t[34]>>>17,B=t[45]<<29|t[44]>>>3,R=t[44]<<29|t[45]>>>3,E=t[6]<<28|t[7]>>>4,S=t[7]<<28|t[6]>>>4,nt=t[17]<<23|t[16]>>>9,it=t[16]<<23|t[17]>>>9,D=t[26]<<25|t[27]>>>7,q=t[27]<<25|t[26]>>>7,w=t[36]<<21|t[37]>>>11,M=t[37]<<21|t[36]>>>11,Y=t[47]<<24|t[46]>>>8,tt=t[46]<<24|t[47]>>>8,V=t[8]<<27|t[9]>>>5,W=t[9]<<27|t[8]>>>5,A=t[18]<<20|t[19]>>>12,j=t[19]<<20|t[18]>>>12,ot=t[29]<<7|t[28]>>>25,st=t[28]<<7|t[29]>>>25,U=t[38]<<8|t[39]>>>24,z=t[39]<<8|t[38]>>>24,k=t[48]<<14|t[49]>>>18,x=t[49]<<14|t[48]>>>18,t[0]=m^~v&g,t[1]=b^~y&_,t[10]=E^~A&C,t[11]=S^~j&T,t[20]=F^~N&D,t[21]=O^~L&q,t[30]=V^~X&$,t[31]=W^~G&Z,t[40]=et^~nt&ot,t[41]=rt^~it&st,t[2]=v^~g&w,t[3]=y^~_&M,t[12]=A^~C&P,t[13]=j^~T&I,t[22]=N^~D&U,t[23]=L^~q&z,t[32]=X^~$&J,t[33]=G^~Z&Q,t[42]=nt^~ot&at,t[43]=it^~st&ut,t[4]=g^~w&k,t[5]=_^~M&x,t[14]=C^~P&B,t[15]=T^~I&R,t[24]=D^~U&H,t[25]=q^~z&K,t[34]=$^~J&Y,t[35]=Z^~Q&tt,t[44]=ot^~at&ct,t[45]=st^~ut&ft,t[6]=w^~k&m,t[7]=M^~x&b,t[16]=P^~B&E,t[17]=I^~R&S,t[26]=U^~H&F,t[27]=z^~K&O,t[36]=J^~Y&V,t[37]=Q^~tt&W,t[46]=at^~ct&et,t[47]=ut^~ft&rt,t[8]=k^~m&v,t[9]=x^~b&y,t[18]=B^~E&A,t[19]=R^~S&j,t[28]=H^~F&N,t[29]=K^~O&L,t[38]=Y^~V&X,t[39]=tt^~W&G,t[48]=ct^~et&nt,t[49]=ft^~rt&it,t[0]^=s[n],t[1]^=s[n+1]},u=function(t){return function(e){var r;if("0x"===e.slice(0,2)){r=[];for(var s=2,u=e.length;s>2]|=e[d]<>2]|=r<>2]|=(192|r>>6)<>2]|=(128|63&r)<=57344?(u[b>>2]|=(224|r>>12)<>2]|=(128|r>>6&63)<>2]|=(128|63&r)<>2]|=(240|r>>18)<>2]|=(128|r>>12&63)<>2]|=(128|r>>6&63)<>2]|=(128|63&r)<=c){for(t.start=b-c,t.block=u[f],b=0;b>2]|=i[3&b],t.lastByteIndex===c)for(u[0]=u[f],b=1;b>4&15]+n[15&p]+n[p>>12&15]+n[p>>8&15]+n[p>>20&15]+n[p>>16&15]+n[p>>28&15]+n[p>>24&15];v%f==0&&(a(l),b=0)}return"0x"+m}(function(t){return{blocks:[],reset:!0,block:0,start:0,blockCount:1600-(t<<1)>>5,outputBlocks:t>>5,s:function(t){return[].concat(t,t,t,t,t)}([0,0,0,0,0,0,0,0,0,0])}}(t),r)}};e.exports={keccak256:u(256),keccak512:u(512),keccak256s:u(256),keccak512s:u(512)}},{}],159:[function(t,e,r){var n=t("is-function");e.exports=function(t,e,r){if(!n(e))throw new TypeError("iterator must be a function");arguments.length<3&&(r=this),"[object Array]"===i.call(t)?function(t,e,r){for(var n=0,i=t.length;n0){var s=i.join(r,o);n.push(g(t)(e[o])(s))}return Promise.all(n).then(function(){return r})})}}},w=function(t){return function(e){return u(t+"/bzzr:/",{body:"string"==typeof e?N(e):e,method:"POST"})}},M=function(t){return function(e){return function(r){return function(n){return function i(o){var s="/"===r[0]?r:"/"+r,a=t+"/bzz:/"+e+s,c={method:"PUT",headers:{"Content-Type":n.type},body:n.data};return u(a,c).then(function(t){if(-1!==t.indexOf("error"))throw t;return t}).catch(function(t){return o>0&&i(o-1)})}(3)}}}},k=function(t){return function(e){return E(t)({"":e})}},x=function(t){return function(r){return e.readFile(r).then(function(e){return k(t)({type:s.lookup(r),data:e})})}},E=function(t){return function(e){return w(t)("{}").then(function(r){return Object.keys(e).reduce(function(r,n){return r.then(function(r){return function(n){return M(t)(n)(r)(e[r])}}(n))},Promise.resolve(r))})}},S=function(t){return function(r){return e.readFile(r).then(w(t))}},A=function(t){return function(n){return function(i){return r.directoryTree(i).then(function(t){return Promise.all(t.map(function(t){return e.readFile(t)})).then(function(e){var r=t.map(function(t){return t.slice(i.length)}),n=t.map(function(t){return s.lookup(t)||"text/plain"});return d(r)(e.map(function(t,e){return{type:n[e],data:t}}))})}).then(function(t){return function(t){return function(e){var r={};for(var n in t)r[n]=t[n];for(var i in e)r[i]=e[i];return r}}(n?{"":t[n]}:{})(t)}).then(E(t))}}},j=function(t){return function(e){if("data"===e.pick)return l.data().then(w(t));if("file"===e.pick)return l.file().then(k(t));if("directory"===e.pick)return l.directory().then(E(t));if(e.path)switch(e.kind){case"data":return S(t)(e.path);case"file":return x(t)(e.path);case"directory":return A(t)(e.defaultFile)(e.path)}else{if(e.length||"string"==typeof e)return w(t)(e);if(e instanceof Object)return E(t)(e)}return Promise.reject(new Error("Bad arguments"))}},C=function(t){return function(e){return function(r){return R(t)(e).then(function(n){return n?r?_(t)(e)(r):y(t)(e):r?g(t)(e)(r):m(t)(e)})}}},T=function(t,e){var i=n.platform().replace("win32","windows")+"-"+("x64"===n.arch()?"amd64":"386"),o=(e||a)[i],s=c+o.archive+".tar.gz",u=o.archiveMD5,f=o.binaryMD5;return r.safeDownloadArchived(s)(u)(f)(t)},P=function(t){return new Promise(function(e,r){var n=o.spawn,i=function(t){return function(e){return-1!==(""+e).indexOf(t)}},s=t.account,a=t.password,u=t.dataDir,c=t.ensApi,f=t.privateKey,h=0,l=n(t.binPath,["--bzzaccount",s||f,"--datadir",u,"--ens-api",c]),d=function(t){0===h&&i("Passphrase")(t)?setTimeout(function(){h=1,l.stdin.write(a+"\n")},500):i("Swarm http proxy started")(t)&&(h=2,clearTimeout(p),e(l))};l.stdout.on("data",d),l.stderr.on("data",d);var p=setTimeout(function(){return r(new Error("Couldn't start swarm process."))},2e4)})},I=function(t){return new Promise(function(e,r){t.stderr.removeAllListeners("data"),t.stdout.removeAllListeners("data"),t.stdin.removeAllListeners("error"),t.removeAllListeners("error"),t.removeAllListeners("exit"),t.kill("SIGINT");var n=setTimeout(function(){return t.kill("SIGKILL")},8e3);t.once("close",function(){clearTimeout(n),e()})})},B=function(t){return w(t)("test").then(function(t){return"c9a99c7d326dcc6316f32fe2625b311f6dc49a175e6877681ded93137d3569e7"===t}).catch(function(){return!1})},R=function(t){return function(e){return m(t)(e).then(function(t){try{return!!JSON.parse(O(t)).entries}catch(t){return!1}})}},F=function(t){return function(e,r,n,i,o){var s;return void 0!==e&&(s=t(e)),void 0!==r&&(s=t(r)),void 0!==n&&(s=t(n)),void 0!==i&&(s=t(i)),void 0!==o&&(s=t(o)),s}},O=function(t){return f.toString(f.fromUint8Array(t))},N=function(t){return f.toUint8Array(f.fromString(t))},L=function(t){return{download:function(e,r){return C(t)(e)(r)},downloadData:F(m(t)),downloadDataToDisk:F(g(t)),downloadDirectory:F(y(t)),downloadDirectoryToDisk:F(_(t)),downloadEntries:F(b(t)),downloadRoutes:F(v(t)),isAvailable:function(){return B(t)},upload:function(e){return j(t)(e)},uploadData:F(w(t)),uploadFile:F(k(t)),uploadFileFromDisk:F(k(t)),uploadDataFromDisk:F(S(t)),uploadDirectory:F(E(t)),uploadDirectoryFromDisk:F(A(t)),uploadToManifest:F(M(t)),pick:l,hash:h,fromString:N,toString:O}};return{at:L,local:function(t){return function(e){return B("http://localhost:8500").then(function(r){return r?e(L("http://localhost:8500")).then(function(){}):T(t.binPath,t.archives).onData(function(e){return(t.onProgress||function(){})(e.length)}).then(function(){return P(t)}).then(function(t){return e(L("http://localhost:8500")).then(function(){return t})}).then(I)})}},download:C,downloadBinary:T,downloadData:m,downloadDataToDisk:g,downloadDirectory:y,downloadDirectoryToDisk:_,downloadEntries:b,downloadRoutes:v,isAvailable:B,startProcess:P,stopProcess:I,upload:j,uploadData:w,uploadDataFromDisk:S,uploadFile:k,uploadFileFromDisk:x,uploadDirectory:E,uploadDirectoryFromDisk:A,uploadToManifest:M,pick:l,hash:h,fromString:N,toString:O}}},{}],169:[function(t,e,r){(r=e.exports=function(t){return t.replace(/^\s*|\s*$/g,"")}).left=function(t){return t.replace(/^\s*/,"")},r.right=function(t){return t.replace(/\s*$/,"")}},{}],170:[function(t,e,r){(function(){function t(t){return function(e,r,n,i){r=w(r,i,4);var o=!j(e)&&_.keys(e),s=(o||e).length,a=t>0?0:s-1;return arguments.length<3&&(n=e[o?o[a]:a],a+=t),function(e,r,n,i,o,s){for(;o>=0&&o0?0:i-1;o>=0&&o0?s=o>=0?o:Math.max(o+a,s):a=o>=0?Math.min(o+1,a):o+a+1;else if(r&&o&&a)return o=r(n,i),n[o]===i?o:-1;if(i!=i)return(o=e(l.call(n,s,a),_.isNaN))>=0?o+s:-1;for(o=t>0?s:a-1;o>=0&&o=0&&e<=S};_.each=_.forEach=function(t,e,r){e=w(e,r);var n,i;if(j(t))for(n=0,i=t.length;n=0},_.invoke=function(t,e){var r=l.call(arguments,2),n=_.isFunction(e);return _.map(t,function(t){var i=n?e:t[e];return null==i?i:i.apply(t,r)})},_.pluck=function(t,e){return _.map(t,_.property(e))},_.where=function(t,e){return _.filter(t,_.matcher(e))},_.findWhere=function(t,e){return _.find(t,_.matcher(e))},_.max=function(t,e,r){var n,i,o=-1/0,s=-1/0;if(null==e&&null!=t)for(var a=0,u=(t=j(t)?t:_.values(t)).length;ao&&(o=n);else e=M(e,r),_.each(t,function(t,r,n){((i=e(t,r,n))>s||i===-1/0&&o===-1/0)&&(o=t,s=i)});return o},_.min=function(t,e,r){var n,i,o=1/0,s=1/0;if(null==e&&null!=t)for(var a=0,u=(t=j(t)?t:_.values(t)).length;an||void 0===r)return 1;if(re?(s&&(clearTimeout(s),s=null),a=c,o=t.apply(n,i),s||(n=i=null)):s||!1===r.trailing||(s=setTimeout(u,f)),o}},_.debounce=function(t,e,r){var n,i,o,s,a,u=function u(){var c=_.now()-s;c=0?n=setTimeout(u,e-c):(n=null,r||(a=t.apply(o,i),n||(o=i=null)))};return function(){o=this,i=arguments,s=_.now();var c=r&&!n;return n||(n=setTimeout(u,e)),c&&(a=t.apply(o,i),o=i=null),a}},_.wrap=function(t,e){return _.partial(e,t)},_.negate=function(t){return function(){return!t.apply(this,arguments)}},_.compose=function(){var t=arguments,e=t.length-1;return function(){for(var r=e,n=t[e].apply(this,arguments);r--;)n=t[r].call(this,n);return n}},_.after=function(t,e){return function(){if(--t<1)return e.apply(this,arguments)}},_.before=function(t,e){var r;return function(){return--t>0&&(r=e.apply(this,arguments)),t<=1&&(e=null),r}},_.once=_.partial(_.before,2);var I=!{toString:null}.propertyIsEnumerable("toString"),B=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];_.keys=function(t){if(!_.isObject(t))return[];if(b)return b(t);var e=[];for(var r in t)_.has(t,r)&&e.push(r);return I&&o(t,e),e},_.allKeys=function(t){if(!_.isObject(t))return[];var e=[];for(var r in t)e.push(r);return I&&o(t,e),e},_.values=function(t){for(var e=_.keys(t),r=e.length,n=Array(r),i=0;i":">",'"':""","'":"'","`":"`"},F=_.invert(R),O=function(t){var e=function(e){return t[e]},r="(?:"+_.keys(t).join("|")+")",n=RegExp(r),i=RegExp(r,"g");return function(t){return t=null==t?"":""+t,n.test(t)?t.replace(i,e):t}};_.escape=O(R),_.unescape=O(F),_.result=function(t,e,r){var n=null==t?void 0:t[e];return void 0===n&&(n=r),_.isFunction(n)?n.call(t):n};var N=0;_.uniqueId=function(t){var e=++N+"";return t?t+e:e},_.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var L=/(.)^/,D={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},q=/\\|'|\r|\n|\u2028|\u2029/g,U=function(t){return"\\"+D[t]};_.template=function(t,e,r){!e&&r&&(e=r),e=_.defaults({},e,_.templateSettings);var n=RegExp([(e.escape||L).source,(e.interpolate||L).source,(e.evaluate||L).source].join("|")+"|$","g"),i=0,o="__p+='";t.replace(n,function(e,r,n,s,a){return o+=t.slice(i,a).replace(q,U),i=a+e.length,r?o+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'":n?o+="'+\n((__t=("+n+"))==null?'':__t)+\n'":s&&(o+="';\n"+s+"\n__p+='"),e}),o+="';\n",e.variable||(o="with(obj||{}){\n"+o+"}\n"),o="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+o+"return __p;\n";try{var s=new Function(e.variable||"obj","_",o)}catch(t){throw t.source=o,t}var a=function(t){return s.call(this,t,_)},u=e.variable||"obj";return a.source="function("+u+"){\n"+o+"}",a},_.chain=function(t){var e=_(t);return e._chain=!0,e};var z=function(t,e){return t._chain?_(e).chain():e};_.mixin=function(t){_.each(_.functions(t),function(e){var r=_[e]=t[e];_.prototype[e]=function(){var t=[this._wrapped];return h.apply(t,arguments),z(this,r.apply(_,t))}})},_.mixin(_),_.each(["pop","push","reverse","shift","sort","splice","unshift"],function(t){var e=u[t];_.prototype[t]=function(){var r=this._wrapped;return e.apply(r,arguments),"shift"!==t&&"splice"!==t||0!==r.length||delete r[0],z(this,r)}}),_.each(["concat","join","slice"],function(t){var e=u[t];_.prototype[t]=function(){return z(this,e.apply(this._wrapped,arguments))}}),_.prototype.value=function(){return this._wrapped},_.prototype.valueOf=_.prototype.toJSON=_.prototype.value,_.prototype.toString=function(){return""+this._wrapped},"function"==typeof define&&define.amd&&define("underscore",[],function(){return _})}).call(this)},{}],171:[function(t,e,r){e.exports=function(t,e){if(e){e=(e=e.trim().replace(/^(\?|#|&)/,""))?"?"+e:e;var r=t.split(/[\?\#]/)[0];e&&/\:\/\/[^\/]*$/.test(r)&&(r+="/");var n=t.match(/(\#.*)$/);t=r+e,n&&(t+=n[0])}return t}},{}],172:[function(t,e,r){var n=t("xhr-request");e.exports=function(t,e){return new Promise(function(r,i){n(t,e,function(t,e){t?i(t):r(e)})})}},{"xhr-request":173}],173:[function(t,e,r){var n=t("query-string"),i=t("url-set-query"),o=t("object-assign"),s=t("./lib/ensure-header.js"),a=t("./lib/request.js"),u="application/json",c=function(){};e.exports=function(t,e,r){if(!t||"string"!=typeof t)throw new TypeError("must specify a URL");if("function"==typeof e&&(r=e,e={}),r&&"function"!=typeof r)throw new TypeError("expected cb to be undefined or a function");r=r||c;var f=(e=e||{}).json?"json":"text",h=(e=o({responseType:f},e)).headers||{},l=(e.method||"GET").toUpperCase(),d=e.query;return d&&("string"!=typeof d&&(d=n.stringify(d)),t=i(t,d)),"json"===e.responseType&&s(h,"Accept",u),e.json&&"GET"!==l&&"HEAD"!==l&&(s(h,"Content-Type",u),e.body=JSON.stringify(e.body)),e.method=l,e.url=t,e.headers=h,delete e.query,delete e.json,a(e,r)}},{"./lib/ensure-header.js":174,"./lib/request.js":176,"object-assign":177,"query-string":163,"url-set-query":171}],174:[function(t,e,r){e.exports=function(t,e,r){var n=e.toLowerCase();t[e]||t[n]||(t[e]=r)}},{}],175:[function(t,e,r){e.exports=function(t,e){return e?{statusCode:e.statusCode,headers:e.headers,method:t.method,url:t.url,rawRequest:e.rawRequest?e.rawRequest:e}:null}},{}],176:[function(t,e,r){var n=t("xhr"),i=t("./normalize-response");e.exports=function(t,e){delete t.uri;var r=!1;return"json"===t.responseType&&(t.responseType="text",r=!0),n(t,function(n,o,s){if(r&&!n)try{var a=o.rawRequest.responseText;s=JSON.parse(a)}catch(t){n=t}o=i(t,o),e(n,n?null:s,o)})}},{"./normalize-response":175,xhr:178}],177:[function(t,e,r){function n(t){var e=Object.getOwnPropertyNames(t);return Object.getOwnPropertySymbols&&(e=e.concat(Object.getOwnPropertySymbols(t))),e.filter(function(e){return i.call(t,e)})}var i=Object.prototype.propertyIsEnumerable;e.exports=Object.assign||function(t,e){for(var r,i,o=function(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}(t),s=1;s0&&(f=setTimeout(function(){if(!c){c=!0,s.abort("timeout");var t=new Error("XMLHttpRequest timeout");t.code="ETIMEDOUT",e(t)}},t.timeout)),s.setRequestHeader)for(a in p)p.hasOwnProperty(a)&&s.setRequestHeader(a,p[a]);else if(t.headers&&!function(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0}(t.headers))throw new Error("Headers cannot be set on an XDomainRequest object");return"responseType"in t&&(s.responseType=t.responseType),"beforeSend"in t&&"function"==typeof t.beforeSend&&t.beforeSend(s),s.send(d||null),s}var s=t("global/window"),a=t("is-function"),u=t("parse-headers"),c=t("xtend");e.exports=i,i.XMLHttpRequest=s.XMLHttpRequest||function(){},i.XDomainRequest="withCredentials"in new i.XMLHttpRequest?i.XMLHttpRequest:s.XDomainRequest,function(t,e){for(var r=0;r1?(t[r[0]]=t[r[0]]||{},t[r[0]][r[1]]=e):t[r[0]]=e},c.prototype.getCall=function(t){return n.isFunction(this.call)?this.call(t):this.call},c.prototype.extractCallback=function(t){if(n.isFunction(t[t.length-1]))return t.pop()},c.prototype.validateArgs=function(t){if(t.length!==this.params)throw i.InvalidNumberOfParams(t.length,this.params,this.name)},c.prototype.formatInput=function(t){var e=this;return this.inputFormatter?this.inputFormatter.map(function(r,n){return r?r.call(e,t[n]):t[n]}):t},c.prototype.formatOutput=function(t){var e=this;return n.isArray(t)?t.map(function(t){return e.outputFormatter&&t?e.outputFormatter(t):t}):this.outputFormatter&&t?this.outputFormatter(t):t},c.prototype.toPayload=function(t){var e=this.getCall(t),r=this.extractCallback(t),n=this.formatInput(t);this.validateArgs(n);var i={method:e,params:n,callback:r};return this.transformPayload&&(i=this.transformPayload(i)),i},c.prototype._confirmTransaction=function(t,e,r){var i=this,f=!1,h=!0,l=0,d=0,p=null,m=n.isObject(r.params[0])&&r.params[0].gas?r.params[0].gas:null,b=n.isObject(r.params[0])&&r.params[0].data&&r.params[0].from&&!r.params[0].to,v=[new c({name:"getTransactionReceipt",call:"eth_getTransactionReceipt",params:1,inputFormatter:[null],outputFormatter:o.outputTransactionReceiptFormatter}),new c({name:"getCode",call:"eth_getCode",params:2,inputFormatter:[o.inputAddressFormatter,o.inputDefaultBlockNumberFormatter]}),new u({name:"subscribe",type:"eth",subscriptions:{newBlockHeaders:{subscriptionName:"newHeads",params:0,outputFormatter:o.outputBlockFormatter}}})],y={};n.each(v,function(t){t.attachToObject(y),t.requestManager=i.requestManager});var g=function(r,n,o,u){return r?(o.unsubscribe(),f=!0,s._fireError({message:"Failed to subscribe to new newBlockHeaders to confirm the transaction receipts.",data:r},t.eventEmitter,t.reject)):(o||(o={unsubscribe:function(){clearInterval(p)}}),(u?a.resolve(u):y.getTransactionReceipt(e)).catch(function(e){o.unsubscribe(),f=!0,s._fireError({message:"Failed to check for transaction receipt:",data:e},t.eventEmitter,t.reject)}).then(function(e){if(!e||!e.blockHash)throw new Error("Receipt missing or blockHash null");return i.extraFormatters&&i.extraFormatters.receiptFormatter&&(e=i.extraFormatters.receiptFormatter(e)),t.eventEmitter.listeners("confirmation").length>0&&(t.eventEmitter.emit("confirmation",d,e),h=!1,25===++d&&(o.unsubscribe(),t.eventEmitter.removeAllListeners())),e}).then(function(e){if(b&&!f){if(!e.contractAddress)return h&&(o.unsubscribe(),f=!0),s._fireError(new Error("The transaction receipt didn't contain a contract address."),t.eventEmitter,t.reject);y.getCode(e.contractAddress,function(r,n){n&&(n.length>2?(t.eventEmitter.emit("receipt",e),i.extraFormatters&&i.extraFormatters.contractDeployFormatter?t.resolve(i.extraFormatters.contractDeployFormatter(e)):t.resolve(e),h&&t.eventEmitter.removeAllListeners()):s._fireError(new Error("The contract code couldn't be stored, please check your gas limit."),t.eventEmitter,t.reject),h&&o.unsubscribe(),f=!0)})}return e}).then(function(e){b||f||(e.outOfGas||m&&m===e.gasUsed?(e&&(e=JSON.stringify(e,null,2)),s._fireError(new Error("Transaction ran out of gas. Please provide more gas:\n"+e),t.eventEmitter,t.reject)):(t.eventEmitter.emit("receipt",e),t.resolve(e),h&&t.eventEmitter.removeAllListeners()),h&&o.unsubscribe(),f=!0)}).catch(function(){if(++l-1>=50)return o.unsubscribe(),f=!0,s._fireError(new Error("Transaction was not mined within 50 blocks, please make sure your transaction was properly send. Be aware that it might still be mined!"),t.eventEmitter,t.reject)}))},_=function(){n.isFunction(this.requestManager.provider.on)?y.subscribe("newBlockHeaders",g):p=setInterval(g,1e3)}.bind(this);y.getTransactionReceipt(e).then(function(e){if(e&&e.blockHash)return t.eventEmitter.listeners("confirmation").length>0&&setTimeout(function(){f||_()},1e3),g(null,0,null,e);f||_()}).catch(function(){f||_()})};var f=function(t,e){return n.isNumber(t)?e.wallet[t]:n.isObject(t)&&t.address&&t.privateKey?t:e.wallet[t.toLowerCase()]};c.prototype.buildCall=function(){var t=this,e="eth_sendTransaction"===t.call||"eth_sendRawTransaction"===t.call,r=function(){var r=a(!e),i=t.toPayload(Array.prototype.slice.call(arguments)),o=function(n,o){try{o=t.formatOutput(o)}catch(t){n=t}if(o instanceof Error&&(n=o),n)return n.error&&(n=n.error),s._fireError(n,r.eventEmitter,r.reject,i.callback);i.callback&&i.callback(null,o),e?(r.eventEmitter.emit("transactionHash",o),t._confirmTransaction(r,o,i)):n||r.resolve(o)},u=function(e){var r=n.extend({},i,{method:"eth_sendRawTransaction",params:[e.rawTransaction]});t.requestManager.send(r,o)},h=function(t,e){if(e&&e.accounts&&e.accounts.wallet&&e.accounts.wallet.length){var i;if("eth_sendTransaction"===t.method){var s=t.params[0];if((i=f(n.isObject(s)?s.from:null,e.accounts))&&i.privateKey){var a=e.accounts.signTransaction(n.omit(s,"from"),i.privateKey);return n.isFunction(a.then)?a.then(u):u(a)}}else if("eth_sign"===t.method){var c=t.params[1];if((i=f(t.params[0],e.accounts))&&i.privateKey){var h=e.accounts.sign(c,i.privateKey);return t.callback&&t.callback(null,h.signature),void r.resolve(h.signature)}}}return e.requestManager.send(t,o)};if(e&&n.isObject(i.params[0])&&!i.params[0].gasPrice){new c({name:"getGasPrice",call:"eth_gasPrice",params:0}).createFunction(t.requestManager)(function(e,r){r&&(i.params[0].gasPrice=r),h(i,t)})}else h(i,t);return r.eventEmitter};return r.method=t,r.request=this.request.bind(this),r},c.prototype.request=function(){var t=this.toPayload(Array.prototype.slice.call(arguments));return t.format=this.formatOutput.bind(this),t},e.exports=c},{underscore:185,"web3-core-helpers":184,"web3-core-promievent":189,"web3-core-subscriptions":197,"web3-utils":390}],187:[function(t,e,r){(function(t,n){!function(t){if("object"==(void 0===r?"undefined":_typeof(r))&&void 0!==e)e.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var i;"undefined"!=typeof window?i=window:void 0!==n?i=n:"undefined"!=typeof self&&(i=self),i.Promise=t()}}(function(){var e,r,i;return function t(e,r,n){function i(s,a){if(!r[s]){if(!e[s]){var u="function"==typeof _dereq_&&_dereq_;if(!a&&u)return u(s,!0);if(o)return o(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var f=r[s]={exports:{}};e[s][0].call(f.exports,function(t){var r=e[s][1][t];return i(r||t)},f,f.exports,t,e,r,n)}return r[s].exports}for(var o="function"==typeof _dereq_&&_dereq_,s=0;s0;){var e=t.shift();if("function"==typeof e){var r=t.shift(),n=t.shift();e.call(r,n)}else e._settlePromises()}},i.prototype._drainQueues=function(){this._drainQueue(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,this._drainQueue(this._lateQueue)},i.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},i.prototype._reset=function(){this._isTickUsed=!1},r.exports=i,r.exports.firstLineError=u},{"./queue":26,"./schedule":29,"./util":36}],3:[function(t,e,r){e.exports=function(t,e,r,n){var i=!1,o=function(t,e){this._reject(e)},s=function(t,e){e.promiseRejectionQueued=!0,e.bindingPromise._then(o,o,null,this,t)},a=function(t,e){0==(50397184&this._bitField)&&this._resolveCallback(e.target)},u=function(t,e){e.promiseRejectionQueued||this._reject(t)};t.prototype.bind=function(o){i||(i=!0,t.prototype._propagateFrom=n.propagateFromFunction(),t.prototype._boundValue=n.boundValueFunction());var c=r(o),f=new t(e);f._propagateFrom(this,1);var h=this._target();if(f._setBoundTo(c),c instanceof t){var l={promiseRejectionQueued:!1,promise:f,target:h,bindingPromise:c};h._then(e,s,void 0,f,l),c._then(a,u,void 0,f,l),f._setOnCancel(c)}else f._resolveCallback(h);return f},t.prototype._setBoundTo=function(t){void 0!==t?(this._bitField=2097152|this._bitField,this._boundTo=t):this._bitField=-2097153&this._bitField},t.prototype._isBound=function(){return 2097152==(2097152&this._bitField)},t.bind=function(e,r){return t.resolve(r).bind(e)}}},{}],4:[function(t,e,r){var n;"undefined"!=typeof Promise&&(n=Promise);var i=t("./promise")();i.noConflict=function(){try{Promise===i&&(Promise=n)}catch(t){}return i},e.exports=i},{"./promise":22}],5:[function(t,e,r){var n=Object.create;if(n){var i=n(null),o=n(null);i[" size"]=o[" size"]=0}e.exports=function(e){function r(t,r){var n;if(null!=t&&(n=t[r]),"function"!=typeof n){var i="Object "+a.classString(t)+" has no method '"+a.toString(r)+"'";throw new e.TypeError(i)}return n}function n(t){return r(t,this.pop()).apply(t,this)}function i(t){return t[this]}function o(t){var e=+this;return e<0&&(e=Math.max(0,e+t.length)),t[e]}var s,a=t("./util"),u=a.canEvaluate;a.isIdentifier;e.prototype.call=function(t){var e=[].slice.call(arguments,1);return e.push(t),this._then(n,void 0,void 0,e,void 0)},e.prototype.get=function(t){var e;if("number"==typeof t)e=o;else if(u){var r=s(t);e=null!==r?r:i}else e=i;return this._then(e,void 0,void 0,t,void 0)}}},{"./util":36}],6:[function(t,e,r){e.exports=function(e,r,n,i){var o=t("./util"),s=o.tryCatch,a=o.errorObj,u=e._async;e.prototype.break=e.prototype.cancel=function(){if(!i.cancellation())return this._warn("cancellation is disabled");for(var t=this,e=t;t.isCancellable();){if(!t._cancelBy(e)){e._isFollowing()?e._followee().cancel():e._cancelBranched();break}var r=t._cancellationParent;if(null==r||!r.isCancellable()){t._isFollowing()?t._followee().cancel():t._cancelBranched();break}t._isFollowing()&&t._followee().cancel(),e=t,t=r}},e.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--},e.prototype._enoughBranchesHaveCancelled=function(){return void 0===this._branchesRemainingToCancel||this._branchesRemainingToCancel<=0},e.prototype._cancelBy=function(t){return t===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),!!this._enoughBranchesHaveCancelled()&&(this._invokeOnCancel(),!0))},e.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()},e.prototype._cancel=function(){this.isCancellable()&&(this._setCancelled(),u.invoke(this._cancelPromises,this,void 0))},e.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()},e.prototype._unsetOnCancel=function(){this._onCancelField=void 0},e.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()},e.prototype._doInvokeOnCancel=function(t,e){if(o.isArray(t))for(var r=0;r=0)return i[t]}var n=!1,i=[];return t.prototype._promiseCreated=function(){},t.prototype._pushContext=function(){},t.prototype._popContext=function(){return null},t._peekContext=t.prototype._peekContext=function(){},e.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,i.push(this._trace))},e.prototype._popContext=function(){if(void 0!==this._trace){var t=i.pop(),e=t._promiseCreated;return t._promiseCreated=null,e}return null},e.CapturedTrace=null,e.create=function(){if(n)return new e},e.deactivateLongStackTraces=function(){},e.activateLongStackTraces=function(){var i=t.prototype._pushContext,o=t.prototype._popContext,s=t._peekContext,a=t.prototype._peekContext,u=t.prototype._promiseCreated;e.deactivateLongStackTraces=function(){t.prototype._pushContext=i,t.prototype._popContext=o,t._peekContext=s,t.prototype._peekContext=a,t.prototype._promiseCreated=u,n=!1},n=!0,t.prototype._pushContext=e.prototype._pushContext,t.prototype._popContext=e.prototype._popContext,t._peekContext=t.prototype._peekContext=r,t.prototype._promiseCreated=function(){var t=this._peekContext();t&&null==t._promiseCreated&&(t._promiseCreated=this)}},e}},{}],9:[function(e,r,n){r.exports=function(r,n){function i(t,e){return{promise:e}}function o(){return!1}function s(t,e,r){var n=this;try{t(e,r,function(t){if("function"!=typeof t)throw new TypeError("onCancel must be a function, got: "+T.toString(t));n._attachCancellationCallback(t)})}catch(t){return t}}function a(t){if(!this.isCancellable())return this;var e=this._onCancel();void 0!==e?T.isArray(e)?e.push(t):this._setOnCancel([e,t]):this._setOnCancel(t)}function u(){return this._onCancelField}function c(t){this._onCancelField=t}function f(){this._cancellationParent=void 0,this._onCancelField=void 0}function h(t,e){if(0!=(1&e)){this._cancellationParent=t;var r=t._branchesRemainingToCancel;void 0===r&&(r=0),t._branchesRemainingToCancel=r+1}0!=(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function l(){var t=this._boundTo;return void 0!==t&&t instanceof r?t.isFulfilled()?t.value():void 0:t}function d(){this._trace=new k(this._peekContext())}function p(t,e){if(P(t)){var r=this._trace;if(void 0!==r&&e&&(r=r._parent),void 0!==r)r.attachExtraTrace(t);else if(!t.__stackCleaned__){var n=v(t);T.notEnumerableProp(t,"stack",n.message+"\n"+n.stack.join("\n")),T.notEnumerableProp(t,"__stackCleaned__",!0)}}}function m(t,e,n){if($.warnings){var i,o=new C(t);if(e)n._attachExtraTrace(o);else if($.longStackTraces&&(i=r._peekContext()))i.attachExtraTrace(o);else{var s=v(o);o.stack=s.message+"\n"+s.stack.join("\n")}K("warning",o)||y(o,"",!0)}}function b(t){for(var e=[],r=0;r0?function(t){for(var e=t.stack.replace(/\s+$/g,"").split("\n"),r=0;r0&&(e=e.slice(r)),e}(t):[" (No stack trace)"],{message:r,stack:b(e)}}function y(t,e,r){if("undefined"!=typeof console){var n;if(T.isObject(t)){var i=t.stack;n=e+R(i,t)}else n=e+String(t);"function"==typeof S?S(n,r):"function"!=typeof console.log&&"object"!==_typeof(console.log)||console.log(n)}}function g(t,e,r,n){var i=!1;try{"function"==typeof e&&(i=!0,"rejectionHandled"===t?e(n):e(r,n))}catch(t){j.throwLater(t)}"unhandledRejection"===t?K(t,r,n)||i||y(r,"Unhandled rejection "):K(t,n)}function _(t){var e;if("function"==typeof t)e="[function "+(t.name||"anonymous")+"]";else{e=t&&"function"==typeof t.toString?t.toString():T.toString(t);if(/\[object [a-zA-Z0-9$_]+\]/.test(e))try{e=JSON.stringify(t)}catch(t){}0===e.length&&(e="(empty array)")}return"(<"+function(t){if(t.length<41)return t;return t.substr(0,38)+"..."}(e)+">, no stack trace)"}function w(){return"function"==typeof G}function M(t){var e=t.match(X);if(e)return{fileName:e[1],line:parseInt(e[2],10)}}function k(t){this._parent=t,this._promisesCreated=0;var e=this._length=1+(void 0===t?0:t._length);G(this,k),e>32&&this.uncycle()}var x,E,S,A=r._getDomain,j=r._async,C=e("./errors").Warning,T=e("./util"),P=T.canAttachTrace,I=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,B=null,R=null,F=!1,O=!(0==T.env("BLUEBIRD_DEBUG")),N=!(0==T.env("BLUEBIRD_WARNINGS")||!O&&!T.env("BLUEBIRD_WARNINGS")),L=!(0==T.env("BLUEBIRD_LONG_STACK_TRACES")||!O&&!T.env("BLUEBIRD_LONG_STACK_TRACES")),D=0!=T.env("BLUEBIRD_W_FORGOTTEN_RETURN")&&(N||!!T.env("BLUEBIRD_W_FORGOTTEN_RETURN"));r.prototype.suppressUnhandledRejections=function(){var t=this._target();t._bitField=-1048577&t._bitField|524288},r.prototype._ensurePossibleRejectionHandled=function(){0==(524288&this._bitField)&&(this._setRejectionIsUnhandled(),j.invokeLater(this._notifyUnhandledRejection,this,void 0))},r.prototype._notifyUnhandledRejectionIsHandled=function(){g("rejectionHandled",x,void 0,this)},r.prototype._setReturnedNonUndefined=function(){this._bitField=268435456|this._bitField},r.prototype._returnedNonUndefined=function(){return 0!=(268435456&this._bitField)},r.prototype._notifyUnhandledRejection=function(){if(this._isRejectionUnhandled()){var t=this._settledValue();this._setUnhandledRejectionIsNotified(),g("unhandledRejection",E,t,this)}},r.prototype._setUnhandledRejectionIsNotified=function(){this._bitField=262144|this._bitField},r.prototype._unsetUnhandledRejectionIsNotified=function(){this._bitField=-262145&this._bitField},r.prototype._isUnhandledRejectionNotified=function(){return(262144&this._bitField)>0},r.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField},r.prototype._unsetRejectionIsUnhandled=function(){this._bitField=-1048577&this._bitField,this._isUnhandledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())},r.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0},r.prototype._warn=function(t,e,r){return m(t,e,r||this)},r.onPossiblyUnhandledRejection=function(t){var e=A();E="function"==typeof t?null===e?t:e.bind(t):void 0},r.onUnhandledRejectionHandled=function(t){var e=A();x="function"==typeof t?null===e?t:e.bind(t):void 0};var q=function(){};r.longStackTraces=function(){if(j.haveItemsQueued()&&!$.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");if(!$.longStackTraces&&w()){var t=r.prototype._captureStackTrace,e=r.prototype._attachExtraTrace;$.longStackTraces=!0,q=function(){if(j.haveItemsQueued()&&!$.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");r.prototype._captureStackTrace=t,r.prototype._attachExtraTrace=e,n.deactivateLongStackTraces(),j.enableTrampoline(),$.longStackTraces=!1},r.prototype._captureStackTrace=d,r.prototype._attachExtraTrace=p,n.activateLongStackTraces(),j.disableTrampolineIfNecessary()}},r.hasLongStackTraces=function(){return $.longStackTraces&&w()};var U=function(){try{var t=document.createEvent("CustomEvent");return t.initCustomEvent("testingtheevent",!1,!0,{}),T.global.dispatchEvent(t),function(t,e){var r=document.createEvent("CustomEvent");return r.initCustomEvent(t.toLowerCase(),!1,!0,e),!T.global.dispatchEvent(r)}}catch(t){}return function(){return!1}}(),z=T.isNode?function(){return t.emit.apply(t,arguments)}:T.global?function(t){var e="on"+t.toLowerCase(),r=T.global[e];return!!r&&(r.apply(T.global,[].slice.call(arguments,1)),!0)}:function(){return!1},H={promiseCreated:i,promiseFulfilled:i,promiseRejected:i,promiseResolved:i,promiseCancelled:i,promiseChained:function(t,e,r){return{promise:e,child:r}},warning:function(t,e){return{warning:e}},unhandledRejection:function(t,e,r){return{reason:e,promise:r}},rejectionHandled:i},K=function(t){var e=!1;try{e=z.apply(null,arguments)}catch(t){j.throwLater(t),e=!0}var r=!1;try{r=U(t,H[t].apply(null,arguments))}catch(t){j.throwLater(t),r=!0}return r||e};r.config=function(t){if("longStackTraces"in(t=Object(t))&&(t.longStackTraces?r.longStackTraces():!t.longStackTraces&&r.hasLongStackTraces()&&q()),"warnings"in t){var e=t.warnings;$.warnings=!!e,D=$.warnings,T.isObject(e)&&"wForgottenReturn"in e&&(D=!!e.wForgottenReturn)}if("cancellation"in t&&t.cancellation&&!$.cancellation){if(j.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");r.prototype._clearCancellationData=f,r.prototype._propagateFrom=h,r.prototype._onCancel=u,r.prototype._setOnCancel=c,r.prototype._attachCancellationCallback=a,r.prototype._execute=s,V=h,$.cancellation=!0}"monitoring"in t&&(t.monitoring&&!$.monitoring?($.monitoring=!0,r.prototype._fireEvent=K):!t.monitoring&&$.monitoring&&($.monitoring=!1,r.prototype._fireEvent=o))},r.prototype._fireEvent=o,r.prototype._execute=function(t,e,r){try{t(e,r)}catch(t){return t}},r.prototype._onCancel=function(){},r.prototype._setOnCancel=function(t){},r.prototype._attachCancellationCallback=function(t){},r.prototype._captureStackTrace=function(){},r.prototype._attachExtraTrace=function(){},r.prototype._clearCancellationData=function(){},r.prototype._propagateFrom=function(t,e){};var V=function(t,e){0!=(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)},W=function(){return!1},X=/[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;T.inherits(k,Error),n.CapturedTrace=k,k.prototype.uncycle=function(){var t=this._length;if(!(t<2)){for(var e=[],r={},n=0,i=this;void 0!==i;++n)e.push(i),i=i._parent;for(n=(t=this._length=n)-1;n>=0;--n){var o=e[n].stack;void 0===r[o]&&(r[o]=n)}for(n=0;n0&&(e[s-1]._parent=void 0,e[s-1]._length=1),e[n]._parent=void 0,e[n]._length=1;var a=n>0?e[n-1]:this;s=0;--c)e[c]._length=u,u++;return}}}},k.prototype.attachExtraTrace=function(t){if(!t.__stackCleaned__){this.uncycle();for(var e=v(t),r=e.message,n=[e.stack],i=this;void 0!==i;)n.push(b(i.stack.split("\n"))),i=i._parent;!function(t){for(var e=t[0],r=1;r=0;--a)if(n[a]===o){s=a;break}for(a=s;a>=0;--a){var u=n[a];if(e[i]!==u)break;e.pop(),i--}e=n}}(n),function(t){for(var e=0;e=0)return B=/@/,R=e,F=!0,function(t){t.stack=(new Error).stack};var i;try{throw new Error}catch(t){i="stack"in t}return"stack"in n||!i||"number"!=typeof Error.stackTraceLimit?(R=function(t,e){return"string"==typeof t?t:"object"!==(void 0===e?"undefined":_typeof(e))&&"function"!=typeof e||void 0===e.name||void 0===e.message?_(e):e.toString()},null):(B=t,R=e,function(t){Error.stackTraceLimit+=6;try{throw new Error}catch(e){t.stack=e.stack}Error.stackTraceLimit-=6})}();"undefined"!=typeof console&&void 0!==console.warn&&(S=function(t){console.warn(t)},T.isNode&&t.stderr.isTTY?S=function(t,e){var r=e?"":"";console.warn(r+t+"\n")}:T.isNode||"string"!=typeof(new Error).stack||(S=function(t,e){console.warn("%c"+t,e?"color: darkorange":"color: red")}));var $={warnings:N,longStackTraces:!1,cancellation:!1,monitoring:!1};return L&&r.longStackTraces(),{longStackTraces:function(){return $.longStackTraces},warnings:function(){return $.warnings},cancellation:function(){return $.cancellation},monitoring:function(){return $.monitoring},propagateFromFunction:function(){return V},boundValueFunction:function(){return l},checkForgottenReturns:function(t,e,r,n,i){if(void 0===t&&null!==e&&D){if(void 0!==i&&i._returnedNonUndefined())return;r&&(r+=" ");var o="a promise was created in a "+r+"handler but was not returned from it";n._warn(o,!0,e)}},setBounds:function(t,e){if(w()){for(var r,n,i=t.stack.split("\n"),o=e.stack.split("\n"),s=-1,a=-1,u=0;u=a||(W=function(t){if(I.test(t))return!0;var e=M(t);return!!(e&&e.fileName===r&&s<=e.line&&e.line<=a)})}},warn:m,deprecated:function(t,e){var r=t+" is deprecated and will be removed in a future version.";return e&&(r+=" Use "+e+" instead."),m(r)},CapturedTrace:k,fireDomEvent:U,fireGlobalEvent:z}}},{"./errors":12,"./util":36}],10:[function(t,e,r){e.exports=function(t){function e(){return this.value}function r(){throw this.reason}t.prototype.return=t.prototype.thenReturn=function(r){return r instanceof t&&r.suppressUnhandledRejections(),this._then(e,void 0,void 0,{value:r},void 0)},t.prototype.throw=t.prototype.thenThrow=function(t){return this._then(r,void 0,void 0,{reason:t},void 0)},t.prototype.catchThrow=function(t){if(arguments.length<=1)return this._then(void 0,r,void 0,{reason:t},void 0);var e=arguments[1];return this.caught(t,function(){throw e})},t.prototype.catchReturn=function(r){if(arguments.length<=1)return r instanceof t&&r.suppressUnhandledRejections(),this._then(void 0,e,void 0,{value:r},void 0);var n=arguments[1];n instanceof t&&n.suppressUnhandledRejections();return this.caught(r,function(){return n})}}},{}],11:[function(t,e,r){e.exports=function(t,e){function r(){return o(this)}function n(t,r){return i(t,r,e,e)}var i=t.reduce,o=t.all;t.prototype.each=function(t){return this.mapSeries(t)._then(r,void 0,void 0,this,void 0)},t.prototype.mapSeries=function(t){return i(this,t,e,e)},t.each=function(t,e){return n(t,e)._then(r,void 0,void 0,t,void 0)},t.mapSeries=n}},{}],12:[function(t,e,r){function n(t,e){function r(n){if(!(this instanceof r))return new r(n);h(this,"message","string"==typeof n?n:e),h(this,"name",t),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this)}return f(r,Error),r}function i(t){if(!(this instanceof i))return new i(t);h(this,"name","OperationalError"),h(this,"message",t),this.cause=t,this.isOperational=!0,t instanceof Error?(h(this,"message",t.message),h(this,"stack",t.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}var o,s,a=t("./es5"),u=a.freeze,c=t("./util"),f=c.inherits,h=c.notEnumerableProp,l=n("Warning","warning"),d=n("CancellationError","cancellation error"),p=n("TimeoutError","timeout error"),m=n("AggregateError","aggregate error");try{o=TypeError,s=RangeError}catch(t){o=n("TypeError","type error"),s=n("RangeError","range error")}for(var b="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),v=0;v1?t.cancelPromise._reject(e):t.cancelPromise._cancel(),t.cancelPromise=null,!0)}function s(){return u.call(this,this.promise._target()._settledValue())}function a(t){if(!o(this,t))return h.e=t,h}function u(t){var n=this.promise,u=this.handler;if(!this.called){this.called=!0;var c=this.isFinallyHandler()?u.call(n._boundValue()):u.call(n._boundValue(),t);if(void 0!==c){n._setReturnedNonUndefined();var l=r(c,n);if(l instanceof e){if(null!=this.cancelPromise){if(l.isCancelled()){var d=new f("late cancellation observer");return n._attachExtraTrace(d),h.e=d,h}l.isPending()&&l._attachCancellationCallback(new i(this))}return l._then(s,a,void 0,this,void 0)}}}return n.isRejected()?(o(this),h.e=t,h):(o(this),t)}var c=t("./util"),f=e.CancellationError,h=c.errorObj;return n.prototype.isFinallyHandler=function(){return 0===this.type},i.prototype._resultCancelled=function(){o(this.finallyHandler)},e.prototype._passThrough=function(t,e,r,i){return"function"!=typeof t?this.then():this._then(r,i,void 0,new n(this,e,t),void 0)},e.prototype.lastly=e.prototype.finally=function(t){return this._passThrough(t,0,u,u)},e.prototype.tap=function(t){return this._passThrough(t,1,u)},n}},{"./util":36}],16:[function(t,e,r){e.exports=function(e,r,n,i,o,s){function a(t,r,i,o){var s=this._promise=new e(n);s._captureStackTrace(),s._setOnCancel(this),this._stack=o,this._generatorFunction=t,this._receiver=r,this._generator=void 0,this._yieldHandlers="function"==typeof i?[i].concat(l):l,this._yieldedPromise=null}var u=t("./errors").TypeError,c=t("./util"),f=c.errorObj,h=c.tryCatch,l=[];c.inherits(a,o),a.prototype._isResolved=function(){return null===this._promise},a.prototype._cleanup=function(){this._promise=this._generator=null},a.prototype._promiseCancelled=function(){if(!this._isResolved()){var t;if(void 0!==this._generator.return)this._promise._pushContext(),t=h(this._generator.return).call(this._generator,void 0),this._promise._popContext();else{var r=new e.CancellationError("generator .return() sentinel");e.coroutine.returnSentinel=r,this._promise._attachExtraTrace(r),this._promise._pushContext(),t=h(this._generator.throw).call(this._generator,r),this._promise._popContext(),t===f&&t.e===r&&(t=null)}var n=this._promise;this._cleanup(),t===f?n._rejectCallback(t.e,!1):n.cancel()}},a.prototype._promiseFulfilled=function(t){this._yieldedPromise=null,this._promise._pushContext();var e=h(this._generator.next).call(this._generator,t);this._promise._popContext(),this._continue(e)},a.prototype._promiseRejected=function(t){this._yieldedPromise=null,this._promise._attachExtraTrace(t),this._promise._pushContext();var e=h(this._generator.throw).call(this._generator,t);this._promise._popContext(),this._continue(e)},a.prototype._resultCancelled=function(){if(this._yieldedPromise instanceof e){var t=this._yieldedPromise;this._yieldedPromise=null,t.cancel()}},a.prototype.promise=function(){return this._promise},a.prototype._run=function(){this._generator=this._generatorFunction.call(this._receiver),this._receiver=this._generatorFunction=void 0,this._promiseFulfilled(void 0)},a.prototype._continue=function(t){var r=this._promise;if(t===f)return this._cleanup(),r._rejectCallback(t.e,!1);var n=t.value;if(!0===t.done)return this._cleanup(),r._resolveCallback(n);var o=i(n,this._promise);if(o instanceof e||null!==(o=function(t,r,n){for(var o=0;o0&&"function"==typeof arguments[e]){t=arguments[e]}var n=[].slice.call(arguments);t&&n.pop();var i=new r(n).promise();return void 0!==t?i.spread(t):i}}},{"./util":36}],18:[function(t,e,r){e.exports=function(e,r,n,i,o,s){function a(t,e,r,n){this.constructor$(t),this._promise._captureStackTrace();var i=c();this._callback=null===i?e:i.bind(e),this._preservedValues=n===o?new Array(this.length()):null,this._limit=r,this._inFlight=0,this._queue=r>=1?[]:d,this._init$(void 0,-2)}function u(t,e,r,i){if("function"!=typeof e)return n("expecting a function but got "+f.classString(e));var o="object"===(void 0===r?"undefined":_typeof(r))&&null!==r?r.concurrency:0;return o="number"==typeof o&&isFinite(o)&&o>=1?o:0,new a(t,e,o,i).promise()}var c=e._getDomain,f=t("./util"),h=f.tryCatch,l=f.errorObj,d=[];f.inherits(a,r),a.prototype._init=function(){},a.prototype._promiseFulfilled=function(t,r){var n=this._values,o=this.length(),a=this._preservedValues,u=this._limit;if(r<0){if(r=-1*r-1,n[r]=t,u>=1&&(this._inFlight--,this._drainQueue(),this._isResolved()))return!0}else{if(u>=1&&this._inFlight>=u)return n[r]=t,this._queue.push(r),!1;null!==a&&(a[r]=t);var c=this._promise,f=this._callback,d=c._boundValue();c._pushContext();var p=h(f).call(d,t,r,o),m=c._popContext();if(s.checkForgottenReturns(p,m,null!==a?"Promise.filter":"Promise.map",c),p===l)return this._reject(p.e),!0;var b=i(p,this._promise);if(b instanceof e){var v=(b=b._target())._bitField;if(0==(50397184&v))return u>=1&&this._inFlight++,n[r]=b,b._proxy(this,-1*(r+1)),!1;if(0==(33554432&v))return 0!=(16777216&v)?(this._reject(b._reason()),!0):(this._cancel(),!0);p=b._value()}n[r]=p}return++this._totalResolved>=o&&(null!==a?this._filter(n,a):this._resolve(n),!0)},a.prototype._drainQueue=function(){for(var t=this._queue,e=this._limit,r=this._values;t.length>0&&this._inFlight1){o.deprecated("calling Promise.try with more than 1 argument");var c=arguments[1],f=arguments[2];u=s.isArray(c)?a(t).apply(f,c):a(t).call(f,c)}else u=a(t)();var h=n._popContext();return o.checkForgottenReturns(u,h,"Promise.try",n),n._resolveFromSyncValue(u),n},e.prototype._resolveFromSyncValue=function(t){t===s.errorObj?this._rejectCallback(t.e,!1):this._resolveCallback(t,!0)}}},{"./util":36}],20:[function(t,e,r){function n(t){var e;if(function(t){return t instanceof Error&&a.getPrototypeOf(t)===Error.prototype}(t)){(e=new s(t)).name=t.name,e.message=t.message,e.stack=t.stack;for(var r=a.keys(t),n=0;n1){var r,n=new Array(e-1),i=0;for(r=0;r0&&"function"!=typeof t&&"function"!=typeof e){var r=".then() only accepts functions but was passed: "+l.classString(t);arguments.length>1&&(r+=", "+l.classString(e)),this._warn(r)}return this._then(t,e,void 0,void 0,void 0)},n.prototype.done=function(t,e){this._then(t,e,void 0,void 0,void 0)._setIsFinal()},n.prototype.spread=function(t){return"function"!=typeof t?f("expecting a function but got "+l.classString(t)):this.all()._then(t,void 0,void 0,_,void 0)},n.prototype.toJSON=function(){var t={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(t.fulfillmentValue=this.value(),t.isFulfilled=!0):this.isRejected()&&(t.rejectionReason=this.reason(),t.isRejected=!0),t},n.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new k(this).promise()},n.prototype.error=function(t){return this.caught(l.originatesFromRejection,t)},n.is=function(t){return t instanceof n},n.fromNode=n.fromCallback=function(t){var e=new n(g);e._captureStackTrace();var r=arguments.length>1&&!!Object(arguments[1]).multiArgs,i=P(t)(C(e,r));return i===T&&e._rejectCallback(i.e,!0),e._isFateSealed()||e._setAsyncGuaranteed(),e},n.all=function(t){return new k(t).promise()},n.cast=function(t){var e=M(t);return e instanceof n||((e=new n(g))._captureStackTrace(),e._setFulfilled(),e._rejectionHandler0=t),e},n.resolve=n.fulfilled=n.cast,n.reject=n.rejected=function(t){var e=new n(g);return e._captureStackTrace(),e._rejectCallback(t,!0),e},n.setScheduler=function(t){if("function"!=typeof t)throw new v("expecting a function but got "+l.classString(t));var e=m._schedule;return m._schedule=t,e},n.prototype._then=function(t,e,r,i,o){var s=void 0!==o,u=s?o:new n(g),c=this._target(),f=c._bitField;s||(u._propagateFrom(this,3),u._captureStackTrace(),void 0===i&&0!=(2097152&this._bitField)&&(i=0!=(50397184&f)?this._boundValue():c===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,u));var h=a();if(0!=(50397184&f)){var l,d,p=c._settlePromiseCtx;0!=(33554432&f)?(d=c._rejectionHandler0,l=t):0!=(16777216&f)?(d=c._fulfillmentHandler0,l=e,c._unsetRejectionIsUnhandled()):(p=c._settlePromiseLateCancellationObserver,d=new y("late cancellation observer"),c._attachExtraTrace(d),l=e),m.invoke(p,c,{handler:null===h?l:"function"==typeof l&&h.bind(l),promise:u,receiver:i,value:d})}else c._addCallbacks(t,e,u,i,h);return u},n.prototype._length=function(){return 65535&this._bitField},n.prototype._isFateSealed=function(){return 0!=(117506048&this._bitField)},n.prototype._isFollowing=function(){return 67108864==(67108864&this._bitField)},n.prototype._setLength=function(t){this._bitField=-65536&this._bitField|65535&t},n.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent("promiseFulfilled",this)},n.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},n.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},n.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},n.prototype._isFinal=function(){return(4194304&this._bitField)>0},n.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},n.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},n.prototype._setAsyncGuaranteed=function(){this._bitField=134217728|this._bitField},n.prototype._receiverAt=function(t){var e=0===t?this._receiver0:this[4*t-4+3];if(e!==h)return void 0===e&&this._isBound()?this._boundValue():e},n.prototype._promiseAt=function(t){return this[4*t-4+2]},n.prototype._fulfillmentHandlerAt=function(t){return this[4*t-4+0]},n.prototype._rejectionHandlerAt=function(t){return this[4*t-4+1]},n.prototype._boundValue=function(){},n.prototype._migrateCallback0=function(t){t._bitField;var e=t._fulfillmentHandler0,r=t._rejectionHandler0,n=t._promise0,i=t._receiverAt(0);void 0===i&&(i=h),this._addCallbacks(e,r,n,i,null)},n.prototype._migrateCallbackAt=function(t,e){var r=t._fulfillmentHandlerAt(e),n=t._rejectionHandlerAt(e),i=t._promiseAt(e),o=t._receiverAt(e);void 0===o&&(o=h),this._addCallbacks(r,n,i,o,null)},n.prototype._addCallbacks=function(t,e,r,n,i){var o=this._length();if(o>=65531&&(o=0,this._setLength(0)),0===o)this._promise0=r,this._receiver0=n,"function"==typeof t&&(this._fulfillmentHandler0=null===i?t:i.bind(t)),"function"==typeof e&&(this._rejectionHandler0=null===i?e:i.bind(e));else{var s=4*o-4;this[s+2]=r,this[s+3]=n,"function"==typeof t&&(this[s+0]=null===i?t:i.bind(t)),"function"==typeof e&&(this[s+1]=null===i?e:i.bind(e))}return this._setLength(o+1),o},n.prototype._proxy=function(t,e){this._addCallbacks(void 0,void 0,e,t,null)},n.prototype._resolveCallback=function(t,e){if(0==(117506048&this._bitField)){if(t===this)return this._rejectCallback(u(),!1);var r=M(t,this);if(!(r instanceof n))return this._fulfill(t);e&&this._propagateFrom(r,2);var i=r._target(),o=i._bitField;if(0==(50397184&o)){var s=this._length();s>0&&i._migrateCallback0(this);for(var a=1;a>>16)){if(t===this){var r=u();return this._attachExtraTrace(r),this._reject(r)}this._setFulfilled(),this._rejectionHandler0=t,(65535&e)>0&&(0!=(134217728&e)?this._settlePromises():m.settlePromises(this))}},n.prototype._reject=function(t){var e=this._bitField;if(!((117506048&e)>>>16)){if(this._setRejected(),this._fulfillmentHandler0=t,this._isFinal())return m.fatalError(t,l.isNode);(65535&e)>0?0!=(134217728&e)?this._settlePromises():m.settlePromises(this):this._ensurePossibleRejectionHandled()}},n.prototype._fulfillPromises=function(t,e){for(var r=1;r0){if(0!=(16842752&t)){var r=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,r,t),this._rejectPromises(e,r)}else{var n=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,n,t),this._fulfillPromises(e,n)}this._setLength(0)}this._clearCancellationData()},n.prototype._settledValue=function(){var t=this._bitField;return 0!=(33554432&t)?this._rejectionHandler0:0!=(16777216&t)?this._fulfillmentHandler0:void 0},n.defer=n.pending=function(){S.deprecated("Promise.defer","new Promise");return{promise:new n(g),resolve:i,reject:o}},l.notEnumerableProp(n,"_makeSelfResolutionError",u),e("./method")(n,g,M,f,S),e("./bind")(n,g,M,S),e("./cancel")(n,k,f,S),e("./direct_resolve")(n),e("./synchronous_inspection")(n),e("./join")(n,k,M,g,S),n.Promise=n,e("./map.js")(n,k,f,M,g,S),e("./using.js")(n,f,M,E,g,S),e("./timers.js")(n,g,S),e("./generators.js")(n,f,g,M,r,S),e("./nodeify.js")(n),e("./call_get.js")(n),e("./props.js")(n,k,M,f),e("./race.js")(n,g,M,f),e("./reduce.js")(n,k,f,M,g,S),e("./settle.js")(n,k,S),e("./some.js")(n,k,f),e("./promisify.js")(n,g),e("./any.js")(n),e("./each.js")(n,g),e("./filter.js")(n,g),l.toFastProperties(n),l.toFastProperties(n.prototype),s({a:1}),s({b:2}),s({c:3}),s(1),s(function(){}),s(void 0),s(!1),s(new n(g)),S.setBounds(p.firstLineError,l.lastLineError),n}},{"./any.js":1,"./async":2,"./bind":3,"./call_get.js":5,"./cancel":6,"./catch_filter":7,"./context":8,"./debuggability":9,"./direct_resolve":10,"./each.js":11,"./errors":12,"./es5":13,"./filter.js":14,"./finally":15,"./generators.js":16,"./join":17,"./map.js":18,"./method":19,"./nodeback":20,"./nodeify.js":21,"./promise_array":23,"./promisify.js":24,"./props.js":25,"./race.js":27,"./reduce.js":28,"./settle.js":30,"./some.js":31,"./synchronous_inspection":32,"./thenables":33,"./timers.js":34,"./using.js":35,"./util":36}],23:[function(t,e,r){e.exports=function(e,r,n,i,o){function s(t){var n=this._promise=new e(r);t instanceof e&&n._propagateFrom(t,3),n._setOnCancel(this),this._values=t,this._length=0,this._totalResolved=0,this._init(void 0,-2)}var a=t("./util");a.isArray;return a.inherits(s,o),s.prototype.length=function(){return this._length},s.prototype.promise=function(){return this._promise},s.prototype._init=function t(r,o){var s=n(this._values,this._promise);if(s instanceof e){var u=(s=s._target())._bitField;if(this._values=s,0==(50397184&u))return this._promise._setAsyncGuaranteed(),s._then(t,this._reject,void 0,this,o);if(0==(33554432&u))return 0!=(16777216&u)?this._reject(s._reason()):this._cancel();s=s._value()}if(null!==(s=a.asArray(s)))0!==s.length?this._iterate(s):-5===o?this._resolveEmptyArray():this._resolve(function(t){switch(t){case-2:return[];case-3:return{}}}(o));else{var c=i("expecting an array or an iterable object but got "+a.classString(s)).reason();this._promise._rejectCallback(c,!1)}},s.prototype._iterate=function(t){var r=this.getActualLength(t.length);this._length=r,this._values=this.shouldCopyValues()?new Array(r):this._values;for(var i=this._promise,o=!1,s=null,a=0;a=this._length&&(this._resolve(this._values),!0)},s.prototype._promiseCancelled=function(){return this._cancel(),!0},s.prototype._promiseRejected=function(t){return this._totalResolved++,this._reject(t),!0},s.prototype._resultCancelled=function(){if(!this._isResolved()){var t=this._values;if(this._cancel(),t instanceof e)t.cancel();else for(var r=0;r=this._length){var r;if(this._isMap)r=function(t){for(var e=new a,r=t.length/2|0,n=0;n>1},e.prototype.props=function(){return s(this)},e.props=function(t){return s(t)}}},{"./es5":13,"./util":36}],26:[function(t,e,r){function n(t){this._capacity=t,this._length=0,this._front=0}n.prototype._willBeOverCapacity=function(t){return this._capacity=this._length&&(this._resolve(this._values),!0)},i.prototype._promiseFulfilled=function(t,e){var r=new o;return r._bitField=33554432,r._settledValueField=t,this._promiseResolved(e,r)},i.prototype._promiseRejected=function(t,e){var r=new o;return r._bitField=16777216,r._settledValueField=t,this._promiseResolved(e,r)},e.settle=function(t){return n.deprecated(".settle()",".reflect()"),new i(t).promise()},e.prototype.settle=function(){return e.settle(this)}}},{"./util":36}],31:[function(t,e,r){e.exports=function(e,r,n){function i(t){this.constructor$(t),this._howMany=0,this._unwrap=!1,this._initialized=!1}function o(t,e){if((0|e)!==e||e<0)return n("expecting a positive integer\n\n See http://goo.gl/MqrFmX\n");var r=new i(t),o=r.promise();return r.setHowMany(e),r.init(),o}var s=t("./util"),a=t("./errors").RangeError,u=t("./errors").AggregateError,c=s.isArray,f={};s.inherits(i,r),i.prototype._init=function(){if(this._initialized)if(0!==this._howMany){this._init$(void 0,-5);var t=c(this._values);!this._isResolved()&&t&&this._howMany>this._canPossiblyFulfill()&&this._reject(this._getRangeError(this.length()))}else this._resolve([])},i.prototype.init=function(){this._initialized=!0,this._init()},i.prototype.setUnwrap=function(){this._unwrap=!0},i.prototype.howMany=function(){return this._howMany},i.prototype.setHowMany=function(t){this._howMany=t},i.prototype._promiseFulfilled=function(t){return this._addFulfilled(t),this._fulfilled()===this.howMany()&&(this._values.length=this.howMany(),1===this.howMany()&&this._unwrap?this._resolve(this._values[0]):this._resolve(this._values),!0)},i.prototype._promiseRejected=function(t){return this._addRejected(t),this._checkOutcome()},i.prototype._promiseCancelled=function(){return this._values instanceof e||null==this._values?this._cancel():(this._addRejected(f),this._checkOutcome())},i.prototype._checkOutcome=function(){if(this.howMany()>this._canPossiblyFulfill()){for(var t=new u,e=this.length();e0?this._reject(t):this._cancel(),!0}return!1},i.prototype._fulfilled=function(){return this._totalResolved},i.prototype._rejected=function(){return this._values.length-this.length()},i.prototype._addRejected=function(t){this._values.push(t)},i.prototype._addFulfilled=function(t){this._values[this._totalResolved++]=t},i.prototype._canPossiblyFulfill=function(){return this.length()-this._rejected()},i.prototype._getRangeError=function(t){var e="Input array must contain at least "+this._howMany+" items but contains only "+t+" items";return new a(e)},i.prototype._resolveEmptyArray=function(){this._reject(this._getRangeError(0))},e.some=function(t,e){return o(t,e)},e.prototype.some=function(t){return o(this,t)},e._SomePromiseArray=i}},{"./errors":12,"./util":36}],32:[function(t,e,r){e.exports=function(t){function e(t){void 0!==t?(t=t._target(),this._bitField=t._bitField,this._settledValueField=t._isFateSealed()?t._settledValue():void 0):(this._bitField=0,this._settledValueField=void 0)}e.prototype._settledValue=function(){return this._settledValueField};var r=e.prototype.value=function(){if(!this.isFulfilled())throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},n=e.prototype.error=e.prototype.reason=function(){if(!this.isRejected())throw new TypeError("cannot get rejection reason of a non-rejected promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},i=e.prototype.isFulfilled=function(){return 0!=(33554432&this._bitField)},o=e.prototype.isRejected=function(){return 0!=(16777216&this._bitField)},s=e.prototype.isPending=function(){return 0==(50397184&this._bitField)},a=e.prototype.isResolved=function(){return 0!=(50331648&this._bitField)};e.prototype.isCancelled=t.prototype._isCancelled=function(){return 65536==(65536&this._bitField)},t.prototype.isCancelled=function(){return this._target()._isCancelled()},t.prototype.isPending=function(){return s.call(this._target())},t.prototype.isRejected=function(){return o.call(this._target())},t.prototype.isFulfilled=function(){return i.call(this._target())},t.prototype.isResolved=function(){return a.call(this._target())},t.prototype.value=function(){return r.call(this._target())},t.prototype.reason=function(){var t=this._target();return t._unsetRejectionIsUnhandled(),n.call(t)},t.prototype._value=function(){return this._settledValue()},t.prototype._reason=function(){return this._unsetRejectionIsUnhandled(),this._settledValue()},t.PromiseInspection=e}},{}],33:[function(t,e,r){e.exports=function(e,r){var n=t("./util"),i=n.errorObj,o=n.isObject,s={}.hasOwnProperty;return function(t,a){if(o(t)){if(t instanceof e)return t;var u=function(t){try{return function(t){return t.then}(t)}catch(t){return i.e=t,i}}(t);if(u===i){a&&a._pushContext();var c=e.reject(u.e);return a&&a._popContext(),c}if("function"==typeof u)return function(t){return s.call(t,"_promise0")}(t)?(c=new e(r),t._then(c._fulfill,c._reject,void 0,c,null),c):function(t,o,s){var a=new e(r),u=a;s&&s._pushContext(),a._captureStackTrace(),s&&s._popContext();var c=!0,f=n.tryCatch(o).call(t,function(t){a&&(a._resolveCallback(t),a=null)},function(t){a&&(a._rejectCallback(t,c,!0),a=null)});return c=!1,a&&f===i&&(a._rejectCallback(f.e,!0,!0),a=null),u}(t,u,a)}return t}}},{"./util":36}],34:[function(t,e,r){e.exports=function(e,r,n){function i(t){this.handle=t}function o(t){return clearTimeout(this.handle),t}function s(t){throw clearTimeout(this.handle),t}var a=t("./util"),u=e.TimeoutError;i.prototype._resultCancelled=function(){clearTimeout(this.handle)};var c=function(t){return f(+this).thenReturn(t)},f=e.delay=function(t,o){var s,a;return void 0!==o?(s=e.resolve(o)._then(c,null,null,t,void 0),n.cancellation()&&o instanceof e&&s._setOnCancel(o)):(s=new e(r),a=setTimeout(function(){s._fulfill()},+t),n.cancellation()&&s._setOnCancel(new i(a))),s._setAsyncGuaranteed(),s};e.prototype.delay=function(t){return f(t,this)};e.prototype.timeout=function(t,e){t=+t;var r,c,f=new i(setTimeout(function(){r.isPending()&&function(t,e,r){var n;n="string"!=typeof e?e instanceof Error?e:new u("operation timed out"):new u(e),a.markAsOriginatingFromRejection(n),t._attachExtraTrace(n),t._reject(n),null!=r&&r.cancel()}(r,e,c)},t));return n.cancellation()?(c=this.then(),(r=c._then(o,s,void 0,f,void 0))._setOnCancel(f)):r=this._then(o,s,void 0,f,void 0),r}}},{"./util":36}],35:[function(t,e,r){e.exports=function(e,r,n,i,o,s){function a(t){setTimeout(function(){throw t},0)}function u(t,r){function i(){if(s>=u)return c._fulfill();var o=function(t){var e=n(t);return e!==t&&"function"==typeof t._isDisposable&&"function"==typeof t._getDisposer&&t._isDisposable()&&e._setDisposable(t._getDisposer()),e}(t[s++]);if(o instanceof e&&o._isDisposable()){try{o=n(o._getDisposer().tryDispose(r),t.promise)}catch(t){return a(t)}if(o instanceof e)return o._then(i,a,null,null,null)}i()}var s=0,u=t.length,c=new e(o);return i(),c}function c(t,e,r){this._data=t,this._promise=e,this._context=r}function f(t,e,r){this.constructor$(t,e,r)}function h(t){return c.isDisposer(t)?(this.resources[this.index]._setDisposable(t),t.promise()):t}function l(t){this.length=t,this.promise=null,this[t-1]=null}var d=t("./util"),p=t("./errors").TypeError,m=t("./util").inherits,b=d.errorObj,v=d.tryCatch;c.prototype.data=function(){return this._data},c.prototype.promise=function(){return this._promise},c.prototype.resource=function(){return this.promise().isFulfilled()?this.promise().value():null},c.prototype.tryDispose=function(t){var e=this.resource(),r=this._context;void 0!==r&&r._pushContext();var n=null!==e?this.doDispose(e,t):null;return void 0!==r&&r._popContext(),this._promise._unsetDisposable(),this._data=null,n},c.isDisposer=function(t){return null!=t&&"function"==typeof t.resource&&"function"==typeof t.tryDispose},m(f,c),f.prototype.doDispose=function(t,e){return this.data().call(t,t,e)},l.prototype._resultCancelled=function(){for(var t=this.length,r=0;r0},e.prototype._getDisposer=function(){return this._disposer},e.prototype._unsetDisposable=function(){this._bitField=-131073&this._bitField,this._disposer=void 0},e.prototype.disposer=function(t){if("function"==typeof t)return new f(t,this,i());throw new p}}},{"./errors":12,"./util":36}],36:[function(e,r,i){function o(){try{var t=C;return C=null,t.apply(this,arguments)}catch(t){return j.e=t,j}}function s(t){return C=t,o}function a(t){return null==t||!0===t||!1===t||"string"==typeof t||"number"==typeof t}function u(t){return"function"==typeof t||"object"===(void 0===t?"undefined":_typeof(t))&&null!==t}function c(t){return a(t)?new Error(y(t)):t}function f(t,e){var r,n=t.length,i=new Array(n+1);for(r=0;r1,n=e.length>0&&!(1===e.length&&"constructor"===e[0]),i=B.test(t+"")&&S.names(t).length>0;if(r||n||i)return!0}return!1}catch(t){return!1}}function m(t){function e(){}e.prototype=t;for(var r=8;r--;)new e;return t}function b(t){return R.test(t)}function v(t,e,r){for(var n=new Array(t),i=0;i10||e[0]>0}(),D.isNode&&D.toFastProperties(t);try{throw new Error}catch(t){D.lastLineError=t}r.exports=D},{"./es5":13}]},{},[4])(4)}),"undefined"!=typeof window&&null!==window?window.P=window.Promise:"undefined"!=typeof self&&null!==self&&(self.P=self.Promise)}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:120}],188:[function(t,e,r){function n(t,e,r){this.fn=t,this.context=e,this.once=r||!1}function i(){}var o="function"!=typeof Object.create&&"~";i.prototype._events=void 0,i.prototype.listeners=function(t,e){var r=o?o+t:t,n=this._events&&this._events[r];if(e)return!!n;if(!n)return[];if(n.fn)return[n.fn];for(var i=0,s=n.length,a=new Array(s);i1?(t[r[0]]=t[r[0]]||{},t[r[0]][r[1]]=e):t[r[0]]=e},i.prototype.buildCall=function(){var t=this;return function(){t.subscriptions[arguments[0]]||console.warn("Subscription "+JSON.stringify(arguments[0])+" doesn't exist. Subscribing anyway.");var e=new n({subscription:t.subscriptions[arguments[0]],requestManager:t.requestManager,type:t.type});return e.subscribe.apply(e,arguments)}},e.exports={subscriptions:i,subscription:n}},{"./subscription.js":198}],198:[function(t,e,r){function n(t){s.call(this),this.id=null,this.callback=null,this.arguments=null,this._reconnectIntervalId=null,this.options={subscription:t.subscription,type:t.type,requestManager:t.requestManager}}var i=t("underscore"),o=t("web3-core-helpers").errors,s=t("eventemitter3");(n.prototype=Object.create(s.prototype)).constructor=n,n.prototype._extractCallback=function(t){if(i.isFunction(t[t.length-1]))return t.pop()},n.prototype._validateArgs=function(t){var e=this.options.subscription;if(e||(e={}),e.params||(e.params=0),t.length!==e.params)throw o.InvalidNumberOfParams(t.length,e.params+1,t[0])},n.prototype._formatInput=function(t){var e=this.options.subscription;if(!e)return t;if(!e.inputFormatter)return t;return e.inputFormatter.map(function(e,r){return e?e(t[r]):t[r]})},n.prototype._formatOutput=function(t){var e=this.options.subscription;return e&&e.outputFormatter&&t?e.outputFormatter(t):t},n.prototype._toPayload=function(t){var e=[];if(this.callback=this._extractCallback(t),this.subscriptionMethod||(this.subscriptionMethod=t.shift(),this.options.subscription.subscriptionName&&(this.subscriptionMethod=this.options.subscription.subscriptionName)),this.arguments||(this.arguments=this._formatInput(t),this._validateArgs(this.arguments),t=[]),e.push(this.subscriptionMethod),e=e.concat(this.arguments),t.length)throw new Error("Only a callback is allowed as parameter on an already instantiated subscription.");return{method:this.options.type+"_subscribe",params:e}},n.prototype.unsubscribe=function(t){this.options.requestManager.removeSubscription(this.id,t),this.id=null,this.removeAllListeners(),clearInterval(this._reconnectIntervalId)},n.prototype.subscribe=function(){var t=this,e=Array.prototype.slice.call(arguments),r=this._toPayload(e);if(!r)return this;if(!this.options.requestManager.provider){var n=new Error("No provider set.");return this.callback(n,null,this),this.emit("error",n),this}if(!this.options.requestManager.provider.on){var o=new Error("The current provider doesn't support subscriptions: "+this.options.requestManager.provider.constructor.name);return this.callback(o,null,this),this.emit("error",o),this}return this.id&&this.unsubscribe(),this.options.params=r.params[1],"logs"===r.params[0]&&i.isObject(r.params[1])&&r.params[1].hasOwnProperty("fromBlock")&&isFinite(r.params[1].fromBlock)&&this.options.requestManager.send({method:"eth_getLogs",params:[r.params[1]]},function(e,r){e?(t.callback(e,null,t),t.emit("error",e)):r.forEach(function(e){var r=t._formatOutput(e);t.callback(null,r,t),t.emit("data",r)})}),"object"===_typeof(r.params[1])&&delete r.params[1].fromBlock,this.options.requestManager.send(r,function(e,n){!e&&n?(t.id=n,t.options.requestManager.addSubscription(t.id,r.params[0],t.options.type,function(e,r){i.isArray(r)&&(r=r[0]);var n=t._formatOutput(r);if(e)t.options.requestManager.removeSubscription(t.id),t.options.requestManager.provider.once&&(t._reconnectIntervalId=setInterval(function(){t.options.requestManager.provider.reconnect()},500),t.options.requestManager.provider.once("connect",function(){clearInterval(t._reconnectIntervalId),t.subscribe(t.callback)})),t.emit("error",e);else{if(i.isFunction(t.options.subscription.subscriptionHandler))return t.options.subscription.subscriptionHandler.call(t,n);t.emit("data",n)}i.isFunction(t.callback)&&t.callback(e,n,t)})):i.isFunction(t.callback)&&(t.callback(e,null,t),t.emit("error",e))}),this},e.exports=n},{eventemitter3:195,underscore:196,"web3-core-helpers":184}],199:[function(t,e,r){var n=t("web3-core-helpers").formatters,i=t("web3-core-method"),o=t("web3-utils");e.exports=function(t){var e=function(e){var r;return e.property?(t[e.property]||(t[e.property]={}),r=t[e.property]):r=t,e.methods&&e.methods.forEach(function(e){e instanceof i||(e=new i(e)),e.attachToObject(r),e.setRequestManager(t._requestManager)}),t};return e.formatters=n,e.utils=o,e.Method=i,e}},{"web3-core-helpers":184,"web3-core-method":186,"web3-utils":390}],200:[function(t,e,r){var n=t("web3-core-requestmanager"),i=t("./extend.js");e.exports={packageInit:function(t,e){if(e=Array.prototype.slice.call(e),!t)throw new Error('You need to instantiate using the "new" keyword.');Object.defineProperty(t,"currentProvider",{get:function(){return t._provider},set:function(e){return t.setProvider(e)},enumerable:!0,configurable:!0}),e[0]&&e[0]._requestManager?t._requestManager=new n.Manager(e[0].currentProvider):(t._requestManager=new n.Manager,t._requestManager.setProvider(e[0],e[1])),t.givenProvider=n.Manager.givenProvider,t.providers=n.Manager.providers,t._provider=t._requestManager.provider,t.setProvider||(t.setProvider=function(e,r){return t._requestManager.setProvider(e,r),t._provider=t._requestManager.provider,!0}),t.BatchRequest=n.BatchManager.bind(null,t._requestManager),t.extend=i(t)},addProviders:function(t){t.givenProvider=n.Manager.givenProvider,t.providers=n.Manager.providers}}},{"./extend.js":199,"web3-core-requestmanager":193}],201:[function(t,e,r){!function(e,r){function n(t,e){if(!t)throw new Error(e||"Assertion failed")}function i(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function o(t,e,r){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}function s(t,e,r){for(var n=0,i=Math.min(t.length,r),o=e;o=49&&s<=54?s-49+10:s>=17&&s<=22?s-17+10:15&s}return n}function a(t,e,r,n){for(var i=0,o=Math.min(t.length,r),s=e;s=49?a-49+10:a>=17?a-17+10:a}return i}function u(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],s=i*o,a=67108863&s,u=s/67108864|0;r.words[0]=a;for(var c=1;c>>26,h=67108863&u,l=Math.min(c,e.length-1),d=Math.max(0,c-t.length+1);d<=l;d++){var p=c-d|0;f+=(s=(i=0|t.words[p])*(o=0|e.words[d])+h)/67108864|0,h=67108863&s}r.words[c]=0|h,u=0|f}return 0!==u?r.words[c]=0|u:r.length--,r.strip()}function c(t,e,r){return(new f).mulp(t,e,r)}function f(t,e){this.x=t,this.y=e}function h(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function l(){h.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function d(){h.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function p(){h.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function m(){h.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function b(t){if("string"==typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function v(t){b.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}"object"===(void 0===e?"undefined":_typeof(e))?e.exports=o:r.BN=o,o.BN=o,o.wordSize=26;var y;try{y=t("buffer").Buffer}catch(t){}o.isBN=function(t){return t instanceof o||null!==t&&"object"===(void 0===t?"undefined":_typeof(t))&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"==typeof t)return this._initNumber(t,e,r);if("object"===(void 0===t?"undefined":_typeof(t)))return this._initArray(t,e,r);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36);var i=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&i++,16===e?this._parseHex(t,i):this._parseBase(t,e,i),"-"===t[0]&&(this.negative=1),this.strip(),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(n("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i=0;i-=3)s=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[o]|=s<>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);else if("le"===r)for(i=0,o=0;i>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)i=s(t,r,r+6),this.words[n]|=i<>>26-o&4194303,(o+=24)>=26&&(o-=26,n++);r+6!==e&&(i=s(t,e,r+6),this.words[n]|=i<>>26-o&4194303),this.strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,s=o%n,u=Math.min(o,o-s)+r,c=0,f=r;f1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var g=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],_=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],w=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];o.prototype.toString=function(t,e){t=t||10,e=0|e||1;var r;if(16===t||"hex"===t){r="";for(var i=0,o=0,s=0;s>>24-i&16777215)||s!==this.length-1?g[6-u.length]+u+r:u+r,(i+=2)>=26&&(i-=26,s--)}for(0!==o&&(r=o.toString(16)+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var c=_[t],f=w[t];r="";var h=this.clone();for(h.negative=0;!h.isZero();){var l=h.modn(f).toString(t);r=(h=h.idivn(f)).isZero()?l+r:g[c-l.length]+l+r}for(this.isZero()&&(r="0"+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return n(void 0!==y),this.toArrayLike(y,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,r){var i=this.byteLength(),o=r||Math.max(1,i);n(i<=o,"byte array longer than desired length"),n(o>0,"Requested array length <= 0"),this.strip();var s,a,u="le"===e,c=new t(o),f=this.clone();if(u){for(a=0;!f.isZero();a++)s=f.andln(255),f.iushrn(8),c[a]=s;for(;a=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0==(8191&e)&&(r+=13,e>>>=13),0==(127&e)&&(r+=7,e>>>=7),0==(15&e)&&(r+=4,e>>>=4),0==(3&e)&&(r+=2,e>>>=2),0==(1&e)&&r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){n("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){n("number"==typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o>>26;for(;0!==i&&o>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r=this.cmp(t);if(0===r)return this.negative=0,this.length=1,this.words[0]=0,this;var n,i;r>0?(n=this,i=t):(n=t,i=this);for(var o=0,s=0;s>26,this.words[s]=67108863&e;for(;0!==o&&s>26,this.words[s]=67108863&e;if(0===o&&s>>13,d=0|s[1],p=8191&d,m=d>>>13,b=0|s[2],v=8191&b,y=b>>>13,g=0|s[3],_=8191&g,w=g>>>13,M=0|s[4],k=8191&M,x=M>>>13,E=0|s[5],S=8191&E,A=E>>>13,j=0|s[6],C=8191&j,T=j>>>13,P=0|s[7],I=8191&P,B=P>>>13,R=0|s[8],F=8191&R,O=R>>>13,N=0|s[9],L=8191&N,D=N>>>13,q=0|a[0],U=8191&q,z=q>>>13,H=0|a[1],K=8191&H,V=H>>>13,W=0|a[2],X=8191&W,G=W>>>13,$=0|a[3],Z=8191&$,J=$>>>13,Q=0|a[4],Y=8191&Q,tt=Q>>>13,et=0|a[5],rt=8191&et,nt=et>>>13,it=0|a[6],ot=8191&it,st=it>>>13,at=0|a[7],ut=8191&at,ct=at>>>13,ft=0|a[8],ht=8191&ft,lt=ft>>>13,dt=0|a[9],pt=8191&dt,mt=dt>>>13;r.negative=t.negative^e.negative,r.length=19;var bt=(c+(n=Math.imul(h,U))|0)+((8191&(i=(i=Math.imul(h,z))+Math.imul(l,U)|0))<<13)|0;c=((o=Math.imul(l,z))+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(p,U),i=(i=Math.imul(p,z))+Math.imul(m,U)|0,o=Math.imul(m,z);var vt=(c+(n=n+Math.imul(h,K)|0)|0)+((8191&(i=(i=i+Math.imul(h,V)|0)+Math.imul(l,K)|0))<<13)|0;c=((o=o+Math.imul(l,V)|0)+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(v,U),i=(i=Math.imul(v,z))+Math.imul(y,U)|0,o=Math.imul(y,z),n=n+Math.imul(p,K)|0,i=(i=i+Math.imul(p,V)|0)+Math.imul(m,K)|0,o=o+Math.imul(m,V)|0;var yt=(c+(n=n+Math.imul(h,X)|0)|0)+((8191&(i=(i=i+Math.imul(h,G)|0)+Math.imul(l,X)|0))<<13)|0;c=((o=o+Math.imul(l,G)|0)+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(_,U),i=(i=Math.imul(_,z))+Math.imul(w,U)|0,o=Math.imul(w,z),n=n+Math.imul(v,K)|0,i=(i=i+Math.imul(v,V)|0)+Math.imul(y,K)|0,o=o+Math.imul(y,V)|0,n=n+Math.imul(p,X)|0,i=(i=i+Math.imul(p,G)|0)+Math.imul(m,X)|0,o=o+Math.imul(m,G)|0;var gt=(c+(n=n+Math.imul(h,Z)|0)|0)+((8191&(i=(i=i+Math.imul(h,J)|0)+Math.imul(l,Z)|0))<<13)|0;c=((o=o+Math.imul(l,J)|0)+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(k,U),i=(i=Math.imul(k,z))+Math.imul(x,U)|0,o=Math.imul(x,z),n=n+Math.imul(_,K)|0,i=(i=i+Math.imul(_,V)|0)+Math.imul(w,K)|0,o=o+Math.imul(w,V)|0,n=n+Math.imul(v,X)|0,i=(i=i+Math.imul(v,G)|0)+Math.imul(y,X)|0,o=o+Math.imul(y,G)|0,n=n+Math.imul(p,Z)|0,i=(i=i+Math.imul(p,J)|0)+Math.imul(m,Z)|0,o=o+Math.imul(m,J)|0;var _t=(c+(n=n+Math.imul(h,Y)|0)|0)+((8191&(i=(i=i+Math.imul(h,tt)|0)+Math.imul(l,Y)|0))<<13)|0;c=((o=o+Math.imul(l,tt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(S,U),i=(i=Math.imul(S,z))+Math.imul(A,U)|0,o=Math.imul(A,z),n=n+Math.imul(k,K)|0,i=(i=i+Math.imul(k,V)|0)+Math.imul(x,K)|0,o=o+Math.imul(x,V)|0,n=n+Math.imul(_,X)|0,i=(i=i+Math.imul(_,G)|0)+Math.imul(w,X)|0,o=o+Math.imul(w,G)|0,n=n+Math.imul(v,Z)|0,i=(i=i+Math.imul(v,J)|0)+Math.imul(y,Z)|0,o=o+Math.imul(y,J)|0,n=n+Math.imul(p,Y)|0,i=(i=i+Math.imul(p,tt)|0)+Math.imul(m,Y)|0,o=o+Math.imul(m,tt)|0;var wt=(c+(n=n+Math.imul(h,rt)|0)|0)+((8191&(i=(i=i+Math.imul(h,nt)|0)+Math.imul(l,rt)|0))<<13)|0;c=((o=o+Math.imul(l,nt)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(C,U),i=(i=Math.imul(C,z))+Math.imul(T,U)|0,o=Math.imul(T,z),n=n+Math.imul(S,K)|0,i=(i=i+Math.imul(S,V)|0)+Math.imul(A,K)|0,o=o+Math.imul(A,V)|0,n=n+Math.imul(k,X)|0,i=(i=i+Math.imul(k,G)|0)+Math.imul(x,X)|0,o=o+Math.imul(x,G)|0,n=n+Math.imul(_,Z)|0,i=(i=i+Math.imul(_,J)|0)+Math.imul(w,Z)|0,o=o+Math.imul(w,J)|0,n=n+Math.imul(v,Y)|0,i=(i=i+Math.imul(v,tt)|0)+Math.imul(y,Y)|0,o=o+Math.imul(y,tt)|0,n=n+Math.imul(p,rt)|0,i=(i=i+Math.imul(p,nt)|0)+Math.imul(m,rt)|0,o=o+Math.imul(m,nt)|0;var Mt=(c+(n=n+Math.imul(h,ot)|0)|0)+((8191&(i=(i=i+Math.imul(h,st)|0)+Math.imul(l,ot)|0))<<13)|0;c=((o=o+Math.imul(l,st)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(I,U),i=(i=Math.imul(I,z))+Math.imul(B,U)|0,o=Math.imul(B,z),n=n+Math.imul(C,K)|0,i=(i=i+Math.imul(C,V)|0)+Math.imul(T,K)|0,o=o+Math.imul(T,V)|0,n=n+Math.imul(S,X)|0,i=(i=i+Math.imul(S,G)|0)+Math.imul(A,X)|0,o=o+Math.imul(A,G)|0,n=n+Math.imul(k,Z)|0,i=(i=i+Math.imul(k,J)|0)+Math.imul(x,Z)|0,o=o+Math.imul(x,J)|0,n=n+Math.imul(_,Y)|0,i=(i=i+Math.imul(_,tt)|0)+Math.imul(w,Y)|0,o=o+Math.imul(w,tt)|0,n=n+Math.imul(v,rt)|0,i=(i=i+Math.imul(v,nt)|0)+Math.imul(y,rt)|0,o=o+Math.imul(y,nt)|0,n=n+Math.imul(p,ot)|0,i=(i=i+Math.imul(p,st)|0)+Math.imul(m,ot)|0,o=o+Math.imul(m,st)|0;var kt=(c+(n=n+Math.imul(h,ut)|0)|0)+((8191&(i=(i=i+Math.imul(h,ct)|0)+Math.imul(l,ut)|0))<<13)|0;c=((o=o+Math.imul(l,ct)|0)+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(F,U),i=(i=Math.imul(F,z))+Math.imul(O,U)|0,o=Math.imul(O,z),n=n+Math.imul(I,K)|0,i=(i=i+Math.imul(I,V)|0)+Math.imul(B,K)|0,o=o+Math.imul(B,V)|0,n=n+Math.imul(C,X)|0,i=(i=i+Math.imul(C,G)|0)+Math.imul(T,X)|0,o=o+Math.imul(T,G)|0,n=n+Math.imul(S,Z)|0,i=(i=i+Math.imul(S,J)|0)+Math.imul(A,Z)|0,o=o+Math.imul(A,J)|0,n=n+Math.imul(k,Y)|0,i=(i=i+Math.imul(k,tt)|0)+Math.imul(x,Y)|0,o=o+Math.imul(x,tt)|0,n=n+Math.imul(_,rt)|0,i=(i=i+Math.imul(_,nt)|0)+Math.imul(w,rt)|0,o=o+Math.imul(w,nt)|0,n=n+Math.imul(v,ot)|0,i=(i=i+Math.imul(v,st)|0)+Math.imul(y,ot)|0,o=o+Math.imul(y,st)|0,n=n+Math.imul(p,ut)|0,i=(i=i+Math.imul(p,ct)|0)+Math.imul(m,ut)|0,o=o+Math.imul(m,ct)|0;var xt=(c+(n=n+Math.imul(h,ht)|0)|0)+((8191&(i=(i=i+Math.imul(h,lt)|0)+Math.imul(l,ht)|0))<<13)|0;c=((o=o+Math.imul(l,lt)|0)+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(L,U),i=(i=Math.imul(L,z))+Math.imul(D,U)|0,o=Math.imul(D,z),n=n+Math.imul(F,K)|0,i=(i=i+Math.imul(F,V)|0)+Math.imul(O,K)|0,o=o+Math.imul(O,V)|0,n=n+Math.imul(I,X)|0,i=(i=i+Math.imul(I,G)|0)+Math.imul(B,X)|0,o=o+Math.imul(B,G)|0,n=n+Math.imul(C,Z)|0,i=(i=i+Math.imul(C,J)|0)+Math.imul(T,Z)|0,o=o+Math.imul(T,J)|0,n=n+Math.imul(S,Y)|0,i=(i=i+Math.imul(S,tt)|0)+Math.imul(A,Y)|0,o=o+Math.imul(A,tt)|0,n=n+Math.imul(k,rt)|0,i=(i=i+Math.imul(k,nt)|0)+Math.imul(x,rt)|0,o=o+Math.imul(x,nt)|0,n=n+Math.imul(_,ot)|0,i=(i=i+Math.imul(_,st)|0)+Math.imul(w,ot)|0,o=o+Math.imul(w,st)|0,n=n+Math.imul(v,ut)|0,i=(i=i+Math.imul(v,ct)|0)+Math.imul(y,ut)|0,o=o+Math.imul(y,ct)|0,n=n+Math.imul(p,ht)|0,i=(i=i+Math.imul(p,lt)|0)+Math.imul(m,ht)|0,o=o+Math.imul(m,lt)|0;var Et=(c+(n=n+Math.imul(h,pt)|0)|0)+((8191&(i=(i=i+Math.imul(h,mt)|0)+Math.imul(l,pt)|0))<<13)|0;c=((o=o+Math.imul(l,mt)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(L,K),i=(i=Math.imul(L,V))+Math.imul(D,K)|0,o=Math.imul(D,V),n=n+Math.imul(F,X)|0,i=(i=i+Math.imul(F,G)|0)+Math.imul(O,X)|0,o=o+Math.imul(O,G)|0,n=n+Math.imul(I,Z)|0,i=(i=i+Math.imul(I,J)|0)+Math.imul(B,Z)|0,o=o+Math.imul(B,J)|0,n=n+Math.imul(C,Y)|0,i=(i=i+Math.imul(C,tt)|0)+Math.imul(T,Y)|0,o=o+Math.imul(T,tt)|0,n=n+Math.imul(S,rt)|0,i=(i=i+Math.imul(S,nt)|0)+Math.imul(A,rt)|0,o=o+Math.imul(A,nt)|0,n=n+Math.imul(k,ot)|0,i=(i=i+Math.imul(k,st)|0)+Math.imul(x,ot)|0,o=o+Math.imul(x,st)|0,n=n+Math.imul(_,ut)|0,i=(i=i+Math.imul(_,ct)|0)+Math.imul(w,ut)|0,o=o+Math.imul(w,ct)|0,n=n+Math.imul(v,ht)|0,i=(i=i+Math.imul(v,lt)|0)+Math.imul(y,ht)|0,o=o+Math.imul(y,lt)|0;var St=(c+(n=n+Math.imul(p,pt)|0)|0)+((8191&(i=(i=i+Math.imul(p,mt)|0)+Math.imul(m,pt)|0))<<13)|0;c=((o=o+Math.imul(m,mt)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(L,X),i=(i=Math.imul(L,G))+Math.imul(D,X)|0,o=Math.imul(D,G),n=n+Math.imul(F,Z)|0,i=(i=i+Math.imul(F,J)|0)+Math.imul(O,Z)|0,o=o+Math.imul(O,J)|0,n=n+Math.imul(I,Y)|0,i=(i=i+Math.imul(I,tt)|0)+Math.imul(B,Y)|0,o=o+Math.imul(B,tt)|0,n=n+Math.imul(C,rt)|0,i=(i=i+Math.imul(C,nt)|0)+Math.imul(T,rt)|0,o=o+Math.imul(T,nt)|0,n=n+Math.imul(S,ot)|0,i=(i=i+Math.imul(S,st)|0)+Math.imul(A,ot)|0,o=o+Math.imul(A,st)|0,n=n+Math.imul(k,ut)|0,i=(i=i+Math.imul(k,ct)|0)+Math.imul(x,ut)|0,o=o+Math.imul(x,ct)|0,n=n+Math.imul(_,ht)|0,i=(i=i+Math.imul(_,lt)|0)+Math.imul(w,ht)|0,o=o+Math.imul(w,lt)|0;var At=(c+(n=n+Math.imul(v,pt)|0)|0)+((8191&(i=(i=i+Math.imul(v,mt)|0)+Math.imul(y,pt)|0))<<13)|0;c=((o=o+Math.imul(y,mt)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(L,Z),i=(i=Math.imul(L,J))+Math.imul(D,Z)|0,o=Math.imul(D,J),n=n+Math.imul(F,Y)|0,i=(i=i+Math.imul(F,tt)|0)+Math.imul(O,Y)|0,o=o+Math.imul(O,tt)|0,n=n+Math.imul(I,rt)|0,i=(i=i+Math.imul(I,nt)|0)+Math.imul(B,rt)|0,o=o+Math.imul(B,nt)|0,n=n+Math.imul(C,ot)|0,i=(i=i+Math.imul(C,st)|0)+Math.imul(T,ot)|0,o=o+Math.imul(T,st)|0,n=n+Math.imul(S,ut)|0,i=(i=i+Math.imul(S,ct)|0)+Math.imul(A,ut)|0,o=o+Math.imul(A,ct)|0,n=n+Math.imul(k,ht)|0,i=(i=i+Math.imul(k,lt)|0)+Math.imul(x,ht)|0,o=o+Math.imul(x,lt)|0;var jt=(c+(n=n+Math.imul(_,pt)|0)|0)+((8191&(i=(i=i+Math.imul(_,mt)|0)+Math.imul(w,pt)|0))<<13)|0;c=((o=o+Math.imul(w,mt)|0)+(i>>>13)|0)+(jt>>>26)|0,jt&=67108863,n=Math.imul(L,Y),i=(i=Math.imul(L,tt))+Math.imul(D,Y)|0,o=Math.imul(D,tt),n=n+Math.imul(F,rt)|0,i=(i=i+Math.imul(F,nt)|0)+Math.imul(O,rt)|0,o=o+Math.imul(O,nt)|0,n=n+Math.imul(I,ot)|0,i=(i=i+Math.imul(I,st)|0)+Math.imul(B,ot)|0,o=o+Math.imul(B,st)|0,n=n+Math.imul(C,ut)|0,i=(i=i+Math.imul(C,ct)|0)+Math.imul(T,ut)|0,o=o+Math.imul(T,ct)|0,n=n+Math.imul(S,ht)|0,i=(i=i+Math.imul(S,lt)|0)+Math.imul(A,ht)|0,o=o+Math.imul(A,lt)|0;var Ct=(c+(n=n+Math.imul(k,pt)|0)|0)+((8191&(i=(i=i+Math.imul(k,mt)|0)+Math.imul(x,pt)|0))<<13)|0;c=((o=o+Math.imul(x,mt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(L,rt),i=(i=Math.imul(L,nt))+Math.imul(D,rt)|0,o=Math.imul(D,nt),n=n+Math.imul(F,ot)|0,i=(i=i+Math.imul(F,st)|0)+Math.imul(O,ot)|0,o=o+Math.imul(O,st)|0,n=n+Math.imul(I,ut)|0,i=(i=i+Math.imul(I,ct)|0)+Math.imul(B,ut)|0,o=o+Math.imul(B,ct)|0,n=n+Math.imul(C,ht)|0,i=(i=i+Math.imul(C,lt)|0)+Math.imul(T,ht)|0,o=o+Math.imul(T,lt)|0;var Tt=(c+(n=n+Math.imul(S,pt)|0)|0)+((8191&(i=(i=i+Math.imul(S,mt)|0)+Math.imul(A,pt)|0))<<13)|0;c=((o=o+Math.imul(A,mt)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(L,ot),i=(i=Math.imul(L,st))+Math.imul(D,ot)|0,o=Math.imul(D,st),n=n+Math.imul(F,ut)|0,i=(i=i+Math.imul(F,ct)|0)+Math.imul(O,ut)|0,o=o+Math.imul(O,ct)|0,n=n+Math.imul(I,ht)|0,i=(i=i+Math.imul(I,lt)|0)+Math.imul(B,ht)|0,o=o+Math.imul(B,lt)|0;var Pt=(c+(n=n+Math.imul(C,pt)|0)|0)+((8191&(i=(i=i+Math.imul(C,mt)|0)+Math.imul(T,pt)|0))<<13)|0;c=((o=o+Math.imul(T,mt)|0)+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,n=Math.imul(L,ut),i=(i=Math.imul(L,ct))+Math.imul(D,ut)|0,o=Math.imul(D,ct),n=n+Math.imul(F,ht)|0,i=(i=i+Math.imul(F,lt)|0)+Math.imul(O,ht)|0,o=o+Math.imul(O,lt)|0;var It=(c+(n=n+Math.imul(I,pt)|0)|0)+((8191&(i=(i=i+Math.imul(I,mt)|0)+Math.imul(B,pt)|0))<<13)|0;c=((o=o+Math.imul(B,mt)|0)+(i>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(L,ht),i=(i=Math.imul(L,lt))+Math.imul(D,ht)|0,o=Math.imul(D,lt);var Bt=(c+(n=n+Math.imul(F,pt)|0)|0)+((8191&(i=(i=i+Math.imul(F,mt)|0)+Math.imul(O,pt)|0))<<13)|0;c=((o=o+Math.imul(O,mt)|0)+(i>>>13)|0)+(Bt>>>26)|0,Bt&=67108863;var Rt=(c+(n=Math.imul(L,pt))|0)+((8191&(i=(i=Math.imul(L,mt))+Math.imul(D,pt)|0))<<13)|0;return c=((o=Math.imul(D,mt))+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,u[0]=bt,u[1]=vt,u[2]=yt,u[3]=gt,u[4]=_t,u[5]=wt,u[6]=Mt,u[7]=kt,u[8]=xt,u[9]=Et,u[10]=St,u[11]=At,u[12]=jt,u[13]=Ct,u[14]=Tt,u[15]=Pt,u[16]=It,u[17]=Bt,u[18]=Rt,0!==c&&(u[19]=c,r.length++),r};Math.imul||(M=u),o.prototype.mulTo=function(t,e){var r=this.length+t.length;return 10===this.length&&10===t.length?M(this,t,e):r<63?u(this,t,e):r<1024?function(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o>>26)|0)>>>26,s&=67108863}r.words[o]=a,n=s,s=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}(this,t,e):c(this,t,e)},f.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,n=0;n>=1;return n},f.prototype.permute=function(t,e,r,n,i,o){for(var s=0;s>>=1)i++;return 1<>>=13,r[2*s+1]=8191&o,o>>>=13;for(s=2*e;s>=26,e+=i/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r>>i}return e}(t);if(0===e.length)return new o(1);for(var r=this,n=0;n=0);var e,r=t%26,i=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var s=0;for(e=0;e>>26-r}s&&(this.words[e]=s,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e=0);var i;i=e?(e-e%26)/26:0;var o=t%26,s=Math.min((t-o)/26,this.length),a=67108863^67108863>>>o<s)for(this.length-=s,c=0;c=0&&(0!==f||c>=i);c--){var h=0|this.words[c];this.words[c]=f<<26-o|h>>>o,f=h&a}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){n("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(n("number"==typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[i+r]=67108863&s}for(;i>26,this.words[i+r]=67108863&s;if(0===a)return this.strip();for(n(-1===a),a=0,i=0;i>26,this.words[i]=67108863&s;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var r=this.length-t.length,n=this.clone(),i=t,s=0|i.words[i.length-1];0!==(r=26-this._countBits(s))&&(i=i.ushln(r),n.iushln(r),s=0|i.words[i.length-1]);var a,u=n.length-i.length;if("mod"!==e){(a=new o(null)).length=u+1,a.words=new Array(a.length);for(var c=0;c=0;h--){var l=67108864*(0|n.words[i.length+h])+(0|n.words[i.length+h-1]);for(l=Math.min(l/s|0,67108863),n._ishlnsubmul(i,l,h);0!==n.negative;)l--,n.negative=0,n._ishlnsubmul(i,1,h),n.isZero()||(n.negative^=1);a&&(a.words[h]=l)}return a&&a.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},o.prototype.divmod=function(t,e,r){if(n(!t.isZero()),this.isZero())return{div:new o(0),mod:new o(0)};var i,s,a;return 0!==this.negative&&0===t.negative?(a=this.neg().divmod(t,e),"mod"!==e&&(i=a.div.neg()),"div"!==e&&(s=a.mod.neg(),r&&0!==s.negative&&s.iadd(t)),{div:i,mod:s}):0===this.negative&&0!==t.negative?(a=this.divmod(t.neg(),e),"mod"!==e&&(i=a.div.neg()),{div:i,mod:a.mod}):0!=(this.negative&t.negative)?(a=this.neg().divmod(t.neg(),e),"div"!==e&&(s=a.mod.neg(),r&&0!==s.negative&&s.isub(t)),{div:a.div,mod:s}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e)},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,r=0,i=this.length-1;i>=0;i--)r=(e*r+(0|this.words[i]))%t;return r},o.prototype.idivn=function(t){n(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*e;this.words[r]=i/t|0,e=i%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i=new o(1),s=new o(0),a=new o(0),u=new o(1),c=0;e.isEven()&&r.isEven();)e.iushrn(1),r.iushrn(1),++c;for(var f=r.clone(),h=e.clone();!e.isZero();){for(var l=0,d=1;0==(e.words[0]&d)&&l<26;++l,d<<=1);if(l>0)for(e.iushrn(l);l-- >0;)(i.isOdd()||s.isOdd())&&(i.iadd(f),s.isub(h)),i.iushrn(1),s.iushrn(1);for(var p=0,m=1;0==(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(a.isOdd()||u.isOdd())&&(a.iadd(f),u.isub(h)),a.iushrn(1),u.iushrn(1);e.cmp(r)>=0?(e.isub(r),i.isub(a),s.isub(u)):(r.isub(e),a.isub(i),u.isub(s))}return{a:a,b:u,gcd:r.iushln(c)}},o.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i=new o(1),s=new o(0),a=r.clone();e.cmpn(1)>0&&r.cmpn(1)>0;){for(var u=0,c=1;0==(e.words[0]&c)&&u<26;++u,c<<=1);if(u>0)for(e.iushrn(u);u-- >0;)i.isOdd()&&i.iadd(a),i.iushrn(1);for(var f=0,h=1;0==(r.words[0]&h)&&f<26;++f,h<<=1);if(f>0)for(r.iushrn(f);f-- >0;)s.isOdd()&&s.iadd(a),s.iushrn(1);e.cmp(r)>=0?(e.isub(r),i.isub(s)):(r.isub(e),s.isub(i))}var l;return(l=0===e.cmpn(1)?i:s).cmpn(0)<0&&l.iadd(t),l},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0==(1&this.words[0])},o.prototype.isOdd=function(){return 1==(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){n("number"==typeof t);var e=t%26,r=(t-e)/26,i=1<>>26,a&=67108863,this.words[s]=a}return 0!==o&&(this.words[s]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e=t<0;if(0!==this.negative&&!e)return-1;if(0===this.negative&&e)return 1;this.strip();var r;if(this.length>1)r=1;else{e&&(t=-t),n(t<=67108863,"Number is too big");var i=0|this.words[0];r=i===t?0:it.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){ni&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new b(t)},o.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var k={k256:null,p224:null,p192:null,p25519:null};h.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},h.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e0?r.isub(this.p):r.strip(),r},h.prototype.split=function(t,e){t.iushrn(this.n,0,e)},h.prototype.imulK=function(t){return t.imul(this.k)},i(l,h),l.prototype.split=function(t,e){for(var r=Math.min(t.length,9),n=0;n>>22,i=o}i>>>=22,t.words[n-10]=i,0===i&&t.length>10?t.length-=10:t.length-=9},l.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(k[t])return k[t];var e;if("k256"===t)e=new l;else if("p224"===t)e=new d;else if("p192"===t)e=new p;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new m}return k[t]=e,e},b.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},b.prototype._verify2=function(t,e){n(0==(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},b.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},b.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},b.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},b.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},b.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},b.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},b.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},b.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},b.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},b.prototype.isqr=function(t){return this.imul(t,t.clone())},b.prototype.sqr=function(t){return this.mul(t,t)},b.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2==1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);n(!i.isZero());var a=new o(1).toRed(this),u=a.redNeg(),c=this.m.subn(1).iushrn(1),f=this.m.bitLength();for(f=new o(2*f*f).toRed(this);0!==this.pow(f,c).cmp(u);)f.redIAdd(u);for(var h=this.pow(f,i),l=this.pow(t,i.addn(1).iushrn(1)),d=this.pow(t,i),p=s;0!==d.cmp(a);){for(var m=d,b=0;0!==m.cmp(a);b++)m=m.redSqr();n(b=0;n--){for(var c=e.words[n],f=u-1;f>=0;f--){var h=c>>f&1;i!==r[0]&&(i=this.sqr(i)),0!==h||0!==s?(s<<=1,s|=h,(4===++a||0===n&&0===f)&&(i=this.mul(i,r[s]),a=0,s=0)):a=0}u=26}return i},b.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},b.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new v(t)},i(v,b),v.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},v.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},v.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},v.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},v.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(void 0===e||e,this)},{}],202:[function(t,e,r){arguments[4][170][0].apply(r,arguments)},{dup:170}],203:[function(t,e,r){var n=t("underscore"),i=t("web3-utils"),o=t("bn.js"),s=t("./param"),a=function(t){return n.isNumber(t)&&(t=Math.trunc(t)),new s(i.toTwosComplement(t).replace("0x",""))};e.exports={formatInputInt:a,formatInputBytes:function(t){if(!i.isHexStrict(t))throw new Error('Given parameter is not bytes: "'+t+'"');var e=t.replace(/^0x/i,"");if(e.length%2!=0)throw new Error('Given parameter bytes has an invalid length: "'+t+'"');if(e.length>64)throw new Error('Given parameter bytes is too long: "'+t+'"');var r=Math.floor((e.length+63)/64);return e=i.padRight(e,64*r),new s(e)},formatInputDynamicBytes:function(t){if(!i.isHexStrict(t))throw new Error('Given parameter is not bytes: "'+t+'"');var e=t.replace(/^0x/i,"");if(e.length%2!=0)throw new Error('Given parameter bytes has an invalid length: "'+t+'"');var r=e.length/2,n=Math.floor((e.length+63)/64);return e=i.padRight(e,64*n),new s(a(r).value+e)},formatInputString:function(t){if(!n.isString(t))throw new Error("Given parameter is not a valid string: "+t);var e=i.utf8ToHex(t).replace(/^0x/i,""),r=e.length/2,o=Math.floor((e.length+63)/64);return e=i.padRight(e,64*o),new s(a(r).value+e)},formatInputBool:function(t){return new s("000000000000000000000000000000000000000000000000000000000000000"+(t?"1":"0"))},formatOutputInt:function(t){var e=t.staticPart();if(!e&&!t.rawValue)throw new Error("Couldn't decode "+name+" from ABI: 0x"+t.rawValue);return function(t){return"1"===new o(t.substr(0,1),16).toString(2).substr(0,1)}(e)?new o(e,16).fromTwos(256).toString(10):new o(e,16).toString(10)},formatOutputUInt:function(t,e){var r=t.staticPart();if(!r&&!t.rawValue)throw new Error("Couldn't decode "+e+" from ABI: 0x"+t.rawValue);return new o(r,16).toString(10)},formatOutputBool:function(t,e){var r=t.staticPart();if(!r&&!t.rawValue)throw new Error("Couldn't decode "+e+" from ABI: 0x"+t.rawValue);return"0000000000000000000000000000000000000000000000000000000000000001"===r},formatOutputBytes:function(t,e){var r=e.match(/^bytes([0-9]*)/),n=parseInt(r[1]);if(t.staticPart().slice(0,2*n).length!==2*n)throw new Error("Couldn't decode "+e+" from ABI: 0x"+t.rawValue+" The size doesn't match.");return"0x"+t.staticPart().slice(0,2*n)},formatOutputDynamicBytes:function(t,e){var r=t.dynamicPart().slice(0,64);if(!r)throw new Error("Couldn't decode "+e+" from ABI: 0x"+t.rawValue);var n=2*new o(r,16).toNumber();return"0x"+t.dynamicPart().substr(64,n)},formatOutputString:function(t){var e=t.dynamicPart().slice(0,64);if(!e)throw new Error("ERROR: The returned value is not a convertible string:"+e);var r=2*new o(e,16).toNumber();return r?i.hexToUtf8("0x"+t.dynamicPart().substr(64,r).replace(/^0x/i,"")):""},formatOutputAddress:function(t,e){var r=t.staticPart();if(!r)throw new Error("Couldn't decode "+e+" from ABI: 0x"+t.rawValue);return i.toChecksumAddress("0x"+r.slice(r.length-40,r.length))},toTwosComplement:i.toTwosComplement}},{"./param":205,"bn.js":201,underscore:202,"web3-utils":390}],204:[function(t,e,r){function n(){}var i=t("underscore"),o=t("web3-utils"),s=t("./formatters"),a=t("./types/address"),u=t("./types/bool"),c=t("./types/int"),f=t("./types/uint"),h=t("./types/dynamicbytes"),l=t("./types/string"),d=t("./types/bytes"),p=function(t,e){return t.isDynamicType(e)||t.isDynamicArray(e)},m=function(t){this._types=t};m.prototype._requireType=function(t){var e=this._types.filter(function(e){return e.isType(t)})[0];if(!e)throw Error("Invalid solidity type: "+t);return e},m.prototype._getOffsets=function(t,e){for(var r=e.map(function(e,r){return e.staticPartLength(t[r])}),n=1;n=49&&s<=54?s-49+10:s>=17&&s<=22?s-17+10:15&s}return n}function a(t,e,r,n){for(var i=0,o=Math.min(t.length,r),s=e;s=49?a-49+10:a>=17?a-17+10:a}return i}function u(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],s=i*o,a=67108863&s,u=s/67108864|0;r.words[0]=a;for(var c=1;c>>26,h=67108863&u,l=Math.min(c,e.length-1),d=Math.max(0,c-t.length+1);d<=l;d++){var p=c-d|0;f+=(s=(i=0|t.words[p])*(o=0|e.words[d])+h)/67108864|0,h=67108863&s}r.words[c]=0|h,u=0|f}return 0!==u?r.words[c]=0|u:r.length--,r.strip()}function c(t,e,r){return(new f).mulp(t,e,r)}function f(t,e){this.x=t,this.y=e}function h(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function l(){h.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function d(){h.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function p(){h.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function m(){h.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function b(t){if("string"==typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function v(t){b.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}"object"===(void 0===e?"undefined":_typeof(e))?e.exports=o:r.BN=o,o.BN=o,o.wordSize=26;var y;try{y=t("buffer").Buffer}catch(t){}o.isBN=function(t){return t instanceof o||null!==t&&"object"===(void 0===t?"undefined":_typeof(t))&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"==typeof t)return this._initNumber(t,e,r);if("object"===(void 0===t?"undefined":_typeof(t)))return this._initArray(t,e,r);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36);var i=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&i++,16===e?this._parseHex(t,i):this._parseBase(t,e,i),"-"===t[0]&&(this.negative=1),this.strip(),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(n("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i=0;i-=3)s=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[o]|=s<>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);else if("le"===r)for(i=0,o=0;i>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)i=s(t,r,r+6),this.words[n]|=i<>>26-o&4194303,(o+=24)>=26&&(o-=26,n++);r+6!==e&&(i=s(t,e,r+6),this.words[n]|=i<>>26-o&4194303),this.strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,s=o%n,u=Math.min(o,o-s)+r,c=0,f=r;f1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var g=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],_=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],w=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];o.prototype.toString=function(t,e){t=t||10,e=0|e||1;var r;if(16===t||"hex"===t){r="";for(var i=0,o=0,s=0;s>>24-i&16777215)||s!==this.length-1?g[6-u.length]+u+r:u+r,(i+=2)>=26&&(i-=26,s--)}for(0!==o&&(r=o.toString(16)+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var c=_[t],f=w[t];r="";var h=this.clone();for(h.negative=0;!h.isZero();){var l=h.modn(f).toString(t);r=(h=h.idivn(f)).isZero()?l+r:g[c-l.length]+l+r}for(this.isZero()&&(r="0"+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return n(void 0!==y),this.toArrayLike(y,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,r){var i=this.byteLength(),o=r||Math.max(1,i);n(i<=o,"byte array longer than desired length"),n(o>0,"Requested array length <= 0"),this.strip();var s,a,u="le"===e,c=new t(o),f=this.clone();if(u){for(a=0;!f.isZero();a++)s=f.andln(255),f.iushrn(8),c[a]=s;for(;a=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0==(8191&e)&&(r+=13,e>>>=13),0==(127&e)&&(r+=7,e>>>=7),0==(15&e)&&(r+=4,e>>>=4),0==(3&e)&&(r+=2,e>>>=2),0==(1&e)&&r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){n("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){n("number"==typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o>>26;for(;0!==i&&o>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r=this.cmp(t);if(0===r)return this.negative=0,this.length=1,this.words[0]=0,this;var n,i;r>0?(n=this,i=t):(n=t,i=this);for(var o=0,s=0;s>26,this.words[s]=67108863&e;for(;0!==o&&s>26,this.words[s]=67108863&e;if(0===o&&s>>13,d=0|s[1],p=8191&d,m=d>>>13,b=0|s[2],v=8191&b,y=b>>>13,g=0|s[3],_=8191&g,w=g>>>13,M=0|s[4],k=8191&M,x=M>>>13,E=0|s[5],S=8191&E,A=E>>>13,j=0|s[6],C=8191&j,T=j>>>13,P=0|s[7],I=8191&P,B=P>>>13,R=0|s[8],F=8191&R,O=R>>>13,N=0|s[9],L=8191&N,D=N>>>13,q=0|a[0],U=8191&q,z=q>>>13,H=0|a[1],K=8191&H,V=H>>>13,W=0|a[2],X=8191&W,G=W>>>13,$=0|a[3],Z=8191&$,J=$>>>13,Q=0|a[4],Y=8191&Q,tt=Q>>>13,et=0|a[5],rt=8191&et,nt=et>>>13,it=0|a[6],ot=8191&it,st=it>>>13,at=0|a[7],ut=8191&at,ct=at>>>13,ft=0|a[8],ht=8191&ft,lt=ft>>>13,dt=0|a[9],pt=8191&dt,mt=dt>>>13;r.negative=t.negative^e.negative,r.length=19;var bt=(c+(n=Math.imul(h,U))|0)+((8191&(i=(i=Math.imul(h,z))+Math.imul(l,U)|0))<<13)|0;c=((o=Math.imul(l,z))+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(p,U),i=(i=Math.imul(p,z))+Math.imul(m,U)|0,o=Math.imul(m,z);var vt=(c+(n=n+Math.imul(h,K)|0)|0)+((8191&(i=(i=i+Math.imul(h,V)|0)+Math.imul(l,K)|0))<<13)|0;c=((o=o+Math.imul(l,V)|0)+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(v,U),i=(i=Math.imul(v,z))+Math.imul(y,U)|0,o=Math.imul(y,z),n=n+Math.imul(p,K)|0,i=(i=i+Math.imul(p,V)|0)+Math.imul(m,K)|0,o=o+Math.imul(m,V)|0;var yt=(c+(n=n+Math.imul(h,X)|0)|0)+((8191&(i=(i=i+Math.imul(h,G)|0)+Math.imul(l,X)|0))<<13)|0;c=((o=o+Math.imul(l,G)|0)+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(_,U),i=(i=Math.imul(_,z))+Math.imul(w,U)|0,o=Math.imul(w,z),n=n+Math.imul(v,K)|0,i=(i=i+Math.imul(v,V)|0)+Math.imul(y,K)|0,o=o+Math.imul(y,V)|0,n=n+Math.imul(p,X)|0,i=(i=i+Math.imul(p,G)|0)+Math.imul(m,X)|0,o=o+Math.imul(m,G)|0;var gt=(c+(n=n+Math.imul(h,Z)|0)|0)+((8191&(i=(i=i+Math.imul(h,J)|0)+Math.imul(l,Z)|0))<<13)|0;c=((o=o+Math.imul(l,J)|0)+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(k,U),i=(i=Math.imul(k,z))+Math.imul(x,U)|0,o=Math.imul(x,z),n=n+Math.imul(_,K)|0,i=(i=i+Math.imul(_,V)|0)+Math.imul(w,K)|0,o=o+Math.imul(w,V)|0,n=n+Math.imul(v,X)|0,i=(i=i+Math.imul(v,G)|0)+Math.imul(y,X)|0,o=o+Math.imul(y,G)|0,n=n+Math.imul(p,Z)|0,i=(i=i+Math.imul(p,J)|0)+Math.imul(m,Z)|0,o=o+Math.imul(m,J)|0;var _t=(c+(n=n+Math.imul(h,Y)|0)|0)+((8191&(i=(i=i+Math.imul(h,tt)|0)+Math.imul(l,Y)|0))<<13)|0;c=((o=o+Math.imul(l,tt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(S,U),i=(i=Math.imul(S,z))+Math.imul(A,U)|0,o=Math.imul(A,z),n=n+Math.imul(k,K)|0,i=(i=i+Math.imul(k,V)|0)+Math.imul(x,K)|0,o=o+Math.imul(x,V)|0,n=n+Math.imul(_,X)|0,i=(i=i+Math.imul(_,G)|0)+Math.imul(w,X)|0,o=o+Math.imul(w,G)|0,n=n+Math.imul(v,Z)|0,i=(i=i+Math.imul(v,J)|0)+Math.imul(y,Z)|0,o=o+Math.imul(y,J)|0,n=n+Math.imul(p,Y)|0,i=(i=i+Math.imul(p,tt)|0)+Math.imul(m,Y)|0,o=o+Math.imul(m,tt)|0;var wt=(c+(n=n+Math.imul(h,rt)|0)|0)+((8191&(i=(i=i+Math.imul(h,nt)|0)+Math.imul(l,rt)|0))<<13)|0;c=((o=o+Math.imul(l,nt)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(C,U),i=(i=Math.imul(C,z))+Math.imul(T,U)|0,o=Math.imul(T,z),n=n+Math.imul(S,K)|0,i=(i=i+Math.imul(S,V)|0)+Math.imul(A,K)|0,o=o+Math.imul(A,V)|0,n=n+Math.imul(k,X)|0,i=(i=i+Math.imul(k,G)|0)+Math.imul(x,X)|0,o=o+Math.imul(x,G)|0,n=n+Math.imul(_,Z)|0,i=(i=i+Math.imul(_,J)|0)+Math.imul(w,Z)|0,o=o+Math.imul(w,J)|0,n=n+Math.imul(v,Y)|0,i=(i=i+Math.imul(v,tt)|0)+Math.imul(y,Y)|0,o=o+Math.imul(y,tt)|0,n=n+Math.imul(p,rt)|0,i=(i=i+Math.imul(p,nt)|0)+Math.imul(m,rt)|0,o=o+Math.imul(m,nt)|0;var Mt=(c+(n=n+Math.imul(h,ot)|0)|0)+((8191&(i=(i=i+Math.imul(h,st)|0)+Math.imul(l,ot)|0))<<13)|0;c=((o=o+Math.imul(l,st)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(I,U),i=(i=Math.imul(I,z))+Math.imul(B,U)|0,o=Math.imul(B,z),n=n+Math.imul(C,K)|0,i=(i=i+Math.imul(C,V)|0)+Math.imul(T,K)|0,o=o+Math.imul(T,V)|0,n=n+Math.imul(S,X)|0,i=(i=i+Math.imul(S,G)|0)+Math.imul(A,X)|0,o=o+Math.imul(A,G)|0,n=n+Math.imul(k,Z)|0,i=(i=i+Math.imul(k,J)|0)+Math.imul(x,Z)|0,o=o+Math.imul(x,J)|0,n=n+Math.imul(_,Y)|0,i=(i=i+Math.imul(_,tt)|0)+Math.imul(w,Y)|0,o=o+Math.imul(w,tt)|0,n=n+Math.imul(v,rt)|0,i=(i=i+Math.imul(v,nt)|0)+Math.imul(y,rt)|0,o=o+Math.imul(y,nt)|0,n=n+Math.imul(p,ot)|0,i=(i=i+Math.imul(p,st)|0)+Math.imul(m,ot)|0,o=o+Math.imul(m,st)|0;var kt=(c+(n=n+Math.imul(h,ut)|0)|0)+((8191&(i=(i=i+Math.imul(h,ct)|0)+Math.imul(l,ut)|0))<<13)|0;c=((o=o+Math.imul(l,ct)|0)+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(F,U),i=(i=Math.imul(F,z))+Math.imul(O,U)|0,o=Math.imul(O,z),n=n+Math.imul(I,K)|0,i=(i=i+Math.imul(I,V)|0)+Math.imul(B,K)|0,o=o+Math.imul(B,V)|0,n=n+Math.imul(C,X)|0,i=(i=i+Math.imul(C,G)|0)+Math.imul(T,X)|0,o=o+Math.imul(T,G)|0,n=n+Math.imul(S,Z)|0,i=(i=i+Math.imul(S,J)|0)+Math.imul(A,Z)|0,o=o+Math.imul(A,J)|0,n=n+Math.imul(k,Y)|0,i=(i=i+Math.imul(k,tt)|0)+Math.imul(x,Y)|0,o=o+Math.imul(x,tt)|0,n=n+Math.imul(_,rt)|0,i=(i=i+Math.imul(_,nt)|0)+Math.imul(w,rt)|0,o=o+Math.imul(w,nt)|0,n=n+Math.imul(v,ot)|0,i=(i=i+Math.imul(v,st)|0)+Math.imul(y,ot)|0,o=o+Math.imul(y,st)|0,n=n+Math.imul(p,ut)|0,i=(i=i+Math.imul(p,ct)|0)+Math.imul(m,ut)|0,o=o+Math.imul(m,ct)|0;var xt=(c+(n=n+Math.imul(h,ht)|0)|0)+((8191&(i=(i=i+Math.imul(h,lt)|0)+Math.imul(l,ht)|0))<<13)|0;c=((o=o+Math.imul(l,lt)|0)+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(L,U),i=(i=Math.imul(L,z))+Math.imul(D,U)|0,o=Math.imul(D,z),n=n+Math.imul(F,K)|0,i=(i=i+Math.imul(F,V)|0)+Math.imul(O,K)|0,o=o+Math.imul(O,V)|0,n=n+Math.imul(I,X)|0,i=(i=i+Math.imul(I,G)|0)+Math.imul(B,X)|0,o=o+Math.imul(B,G)|0,n=n+Math.imul(C,Z)|0,i=(i=i+Math.imul(C,J)|0)+Math.imul(T,Z)|0,o=o+Math.imul(T,J)|0,n=n+Math.imul(S,Y)|0,i=(i=i+Math.imul(S,tt)|0)+Math.imul(A,Y)|0,o=o+Math.imul(A,tt)|0,n=n+Math.imul(k,rt)|0,i=(i=i+Math.imul(k,nt)|0)+Math.imul(x,rt)|0,o=o+Math.imul(x,nt)|0,n=n+Math.imul(_,ot)|0,i=(i=i+Math.imul(_,st)|0)+Math.imul(w,ot)|0,o=o+Math.imul(w,st)|0,n=n+Math.imul(v,ut)|0,i=(i=i+Math.imul(v,ct)|0)+Math.imul(y,ut)|0,o=o+Math.imul(y,ct)|0,n=n+Math.imul(p,ht)|0,i=(i=i+Math.imul(p,lt)|0)+Math.imul(m,ht)|0,o=o+Math.imul(m,lt)|0;var Et=(c+(n=n+Math.imul(h,pt)|0)|0)+((8191&(i=(i=i+Math.imul(h,mt)|0)+Math.imul(l,pt)|0))<<13)|0;c=((o=o+Math.imul(l,mt)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(L,K),i=(i=Math.imul(L,V))+Math.imul(D,K)|0,o=Math.imul(D,V),n=n+Math.imul(F,X)|0,i=(i=i+Math.imul(F,G)|0)+Math.imul(O,X)|0,o=o+Math.imul(O,G)|0,n=n+Math.imul(I,Z)|0,i=(i=i+Math.imul(I,J)|0)+Math.imul(B,Z)|0,o=o+Math.imul(B,J)|0,n=n+Math.imul(C,Y)|0,i=(i=i+Math.imul(C,tt)|0)+Math.imul(T,Y)|0,o=o+Math.imul(T,tt)|0,n=n+Math.imul(S,rt)|0,i=(i=i+Math.imul(S,nt)|0)+Math.imul(A,rt)|0,o=o+Math.imul(A,nt)|0,n=n+Math.imul(k,ot)|0,i=(i=i+Math.imul(k,st)|0)+Math.imul(x,ot)|0,o=o+Math.imul(x,st)|0,n=n+Math.imul(_,ut)|0,i=(i=i+Math.imul(_,ct)|0)+Math.imul(w,ut)|0,o=o+Math.imul(w,ct)|0,n=n+Math.imul(v,ht)|0,i=(i=i+Math.imul(v,lt)|0)+Math.imul(y,ht)|0,o=o+Math.imul(y,lt)|0;var St=(c+(n=n+Math.imul(p,pt)|0)|0)+((8191&(i=(i=i+Math.imul(p,mt)|0)+Math.imul(m,pt)|0))<<13)|0;c=((o=o+Math.imul(m,mt)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(L,X),i=(i=Math.imul(L,G))+Math.imul(D,X)|0,o=Math.imul(D,G),n=n+Math.imul(F,Z)|0,i=(i=i+Math.imul(F,J)|0)+Math.imul(O,Z)|0,o=o+Math.imul(O,J)|0,n=n+Math.imul(I,Y)|0,i=(i=i+Math.imul(I,tt)|0)+Math.imul(B,Y)|0,o=o+Math.imul(B,tt)|0,n=n+Math.imul(C,rt)|0,i=(i=i+Math.imul(C,nt)|0)+Math.imul(T,rt)|0,o=o+Math.imul(T,nt)|0,n=n+Math.imul(S,ot)|0,i=(i=i+Math.imul(S,st)|0)+Math.imul(A,ot)|0,o=o+Math.imul(A,st)|0,n=n+Math.imul(k,ut)|0,i=(i=i+Math.imul(k,ct)|0)+Math.imul(x,ut)|0,o=o+Math.imul(x,ct)|0,n=n+Math.imul(_,ht)|0,i=(i=i+Math.imul(_,lt)|0)+Math.imul(w,ht)|0,o=o+Math.imul(w,lt)|0;var At=(c+(n=n+Math.imul(v,pt)|0)|0)+((8191&(i=(i=i+Math.imul(v,mt)|0)+Math.imul(y,pt)|0))<<13)|0;c=((o=o+Math.imul(y,mt)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(L,Z),i=(i=Math.imul(L,J))+Math.imul(D,Z)|0,o=Math.imul(D,J),n=n+Math.imul(F,Y)|0,i=(i=i+Math.imul(F,tt)|0)+Math.imul(O,Y)|0,o=o+Math.imul(O,tt)|0,n=n+Math.imul(I,rt)|0,i=(i=i+Math.imul(I,nt)|0)+Math.imul(B,rt)|0,o=o+Math.imul(B,nt)|0,n=n+Math.imul(C,ot)|0,i=(i=i+Math.imul(C,st)|0)+Math.imul(T,ot)|0,o=o+Math.imul(T,st)|0,n=n+Math.imul(S,ut)|0,i=(i=i+Math.imul(S,ct)|0)+Math.imul(A,ut)|0,o=o+Math.imul(A,ct)|0,n=n+Math.imul(k,ht)|0,i=(i=i+Math.imul(k,lt)|0)+Math.imul(x,ht)|0,o=o+Math.imul(x,lt)|0;var jt=(c+(n=n+Math.imul(_,pt)|0)|0)+((8191&(i=(i=i+Math.imul(_,mt)|0)+Math.imul(w,pt)|0))<<13)|0;c=((o=o+Math.imul(w,mt)|0)+(i>>>13)|0)+(jt>>>26)|0,jt&=67108863,n=Math.imul(L,Y),i=(i=Math.imul(L,tt))+Math.imul(D,Y)|0,o=Math.imul(D,tt),n=n+Math.imul(F,rt)|0,i=(i=i+Math.imul(F,nt)|0)+Math.imul(O,rt)|0,o=o+Math.imul(O,nt)|0,n=n+Math.imul(I,ot)|0,i=(i=i+Math.imul(I,st)|0)+Math.imul(B,ot)|0,o=o+Math.imul(B,st)|0,n=n+Math.imul(C,ut)|0,i=(i=i+Math.imul(C,ct)|0)+Math.imul(T,ut)|0,o=o+Math.imul(T,ct)|0,n=n+Math.imul(S,ht)|0,i=(i=i+Math.imul(S,lt)|0)+Math.imul(A,ht)|0,o=o+Math.imul(A,lt)|0;var Ct=(c+(n=n+Math.imul(k,pt)|0)|0)+((8191&(i=(i=i+Math.imul(k,mt)|0)+Math.imul(x,pt)|0))<<13)|0;c=((o=o+Math.imul(x,mt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(L,rt),i=(i=Math.imul(L,nt))+Math.imul(D,rt)|0,o=Math.imul(D,nt),n=n+Math.imul(F,ot)|0,i=(i=i+Math.imul(F,st)|0)+Math.imul(O,ot)|0,o=o+Math.imul(O,st)|0,n=n+Math.imul(I,ut)|0,i=(i=i+Math.imul(I,ct)|0)+Math.imul(B,ut)|0,o=o+Math.imul(B,ct)|0,n=n+Math.imul(C,ht)|0,i=(i=i+Math.imul(C,lt)|0)+Math.imul(T,ht)|0,o=o+Math.imul(T,lt)|0;var Tt=(c+(n=n+Math.imul(S,pt)|0)|0)+((8191&(i=(i=i+Math.imul(S,mt)|0)+Math.imul(A,pt)|0))<<13)|0;c=((o=o+Math.imul(A,mt)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(L,ot),i=(i=Math.imul(L,st))+Math.imul(D,ot)|0,o=Math.imul(D,st),n=n+Math.imul(F,ut)|0,i=(i=i+Math.imul(F,ct)|0)+Math.imul(O,ut)|0,o=o+Math.imul(O,ct)|0,n=n+Math.imul(I,ht)|0,i=(i=i+Math.imul(I,lt)|0)+Math.imul(B,ht)|0,o=o+Math.imul(B,lt)|0;var Pt=(c+(n=n+Math.imul(C,pt)|0)|0)+((8191&(i=(i=i+Math.imul(C,mt)|0)+Math.imul(T,pt)|0))<<13)|0;c=((o=o+Math.imul(T,mt)|0)+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,n=Math.imul(L,ut),i=(i=Math.imul(L,ct))+Math.imul(D,ut)|0,o=Math.imul(D,ct),n=n+Math.imul(F,ht)|0,i=(i=i+Math.imul(F,lt)|0)+Math.imul(O,ht)|0,o=o+Math.imul(O,lt)|0;var It=(c+(n=n+Math.imul(I,pt)|0)|0)+((8191&(i=(i=i+Math.imul(I,mt)|0)+Math.imul(B,pt)|0))<<13)|0;c=((o=o+Math.imul(B,mt)|0)+(i>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(L,ht),i=(i=Math.imul(L,lt))+Math.imul(D,ht)|0,o=Math.imul(D,lt);var Bt=(c+(n=n+Math.imul(F,pt)|0)|0)+((8191&(i=(i=i+Math.imul(F,mt)|0)+Math.imul(O,pt)|0))<<13)|0;c=((o=o+Math.imul(O,mt)|0)+(i>>>13)|0)+(Bt>>>26)|0,Bt&=67108863;var Rt=(c+(n=Math.imul(L,pt))|0)+((8191&(i=(i=Math.imul(L,mt))+Math.imul(D,pt)|0))<<13)|0;return c=((o=Math.imul(D,mt))+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,u[0]=bt,u[1]=vt,u[2]=yt,u[3]=gt,u[4]=_t,u[5]=wt,u[6]=Mt,u[7]=kt,u[8]=xt,u[9]=Et,u[10]=St,u[11]=At,u[12]=jt,u[13]=Ct,u[14]=Tt,u[15]=Pt,u[16]=It,u[17]=Bt,u[18]=Rt,0!==c&&(u[19]=c,r.length++),r};Math.imul||(M=u),o.prototype.mulTo=function(t,e){var r=this.length+t.length;return 10===this.length&&10===t.length?M(this,t,e):r<63?u(this,t,e):r<1024?function(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o>>26)|0)>>>26,s&=67108863}r.words[o]=a,n=s,s=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}(this,t,e):c(this,t,e)},f.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,n=0;n>=1;return n},f.prototype.permute=function(t,e,r,n,i,o){for(var s=0;s>>=1)i++;return 1<>>=13,r[2*s+1]=8191&o,o>>>=13;for(s=2*e;s>=26,e+=i/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r>>i}return e}(t);if(0===e.length)return new o(1);for(var r=this,n=0;n=0);var e,r=t%26,i=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var s=0;for(e=0;e>>26-r}s&&(this.words[e]=s,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e=0);var i;i=e?(e-e%26)/26:0;var o=t%26,s=Math.min((t-o)/26,this.length),a=67108863^67108863>>>o<s)for(this.length-=s,c=0;c=0&&(0!==f||c>=i);c--){var h=0|this.words[c];this.words[c]=f<<26-o|h>>>o,f=h&a}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){n("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(n("number"==typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[i+r]=67108863&s}for(;i>26,this.words[i+r]=67108863&s;if(0===a)return this.strip();for(n(-1===a),a=0,i=0;i>26,this.words[i]=67108863&s;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var r=this.length-t.length,n=this.clone(),i=t,s=0|i.words[i.length-1];0!==(r=26-this._countBits(s))&&(i=i.ushln(r),n.iushln(r),s=0|i.words[i.length-1]);var a,u=n.length-i.length;if("mod"!==e){(a=new o(null)).length=u+1,a.words=new Array(a.length);for(var c=0;c=0;h--){var l=67108864*(0|n.words[i.length+h])+(0|n.words[i.length+h-1]);for(l=Math.min(l/s|0,67108863),n._ishlnsubmul(i,l,h);0!==n.negative;)l--,n.negative=0,n._ishlnsubmul(i,1,h),n.isZero()||(n.negative^=1);a&&(a.words[h]=l)}return a&&a.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},o.prototype.divmod=function(t,e,r){if(n(!t.isZero()),this.isZero())return{div:new o(0),mod:new o(0)};var i,s,a;return 0!==this.negative&&0===t.negative?(a=this.neg().divmod(t,e),"mod"!==e&&(i=a.div.neg()),"div"!==e&&(s=a.mod.neg(),r&&0!==s.negative&&s.iadd(t)),{div:i,mod:s}):0===this.negative&&0!==t.negative?(a=this.divmod(t.neg(),e),"mod"!==e&&(i=a.div.neg()),{div:i,mod:a.mod}):0!=(this.negative&t.negative)?(a=this.neg().divmod(t.neg(),e),"div"!==e&&(s=a.mod.neg(),r&&0!==s.negative&&s.isub(t)),{div:a.div,mod:s}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e)},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,r=0,i=this.length-1;i>=0;i--)r=(e*r+(0|this.words[i]))%t;return r},o.prototype.idivn=function(t){n(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*e;this.words[r]=i/t|0,e=i%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i=new o(1),s=new o(0),a=new o(0),u=new o(1),c=0;e.isEven()&&r.isEven();)e.iushrn(1),r.iushrn(1),++c;for(var f=r.clone(),h=e.clone();!e.isZero();){for(var l=0,d=1;0==(e.words[0]&d)&&l<26;++l,d<<=1);if(l>0)for(e.iushrn(l);l-- >0;)(i.isOdd()||s.isOdd())&&(i.iadd(f),s.isub(h)),i.iushrn(1),s.iushrn(1);for(var p=0,m=1;0==(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(a.isOdd()||u.isOdd())&&(a.iadd(f),u.isub(h)),a.iushrn(1),u.iushrn(1);e.cmp(r)>=0?(e.isub(r),i.isub(a),s.isub(u)):(r.isub(e),a.isub(i),u.isub(s))}return{a:a,b:u,gcd:r.iushln(c)}},o.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i=new o(1),s=new o(0),a=r.clone();e.cmpn(1)>0&&r.cmpn(1)>0;){for(var u=0,c=1;0==(e.words[0]&c)&&u<26;++u,c<<=1);if(u>0)for(e.iushrn(u);u-- >0;)i.isOdd()&&i.iadd(a),i.iushrn(1);for(var f=0,h=1;0==(r.words[0]&h)&&f<26;++f,h<<=1);if(f>0)for(r.iushrn(f);f-- >0;)s.isOdd()&&s.iadd(a),s.iushrn(1);e.cmp(r)>=0?(e.isub(r),i.isub(s)):(r.isub(e),s.isub(i))}var l;return(l=0===e.cmpn(1)?i:s).cmpn(0)<0&&l.iadd(t),l},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0==(1&this.words[0])},o.prototype.isOdd=function(){return 1==(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){n("number"==typeof t);var e=t%26,r=(t-e)/26,i=1<>>26,a&=67108863,this.words[s]=a}return 0!==o&&(this.words[s]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e=t<0;if(0!==this.negative&&!e)return-1;if(0===this.negative&&e)return 1;this.strip();var r;if(this.length>1)r=1;else{e&&(t=-t),n(t<=67108863,"Number is too big");var i=0|this.words[0];r=i===t?0:it.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){ni&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new b(t)},o.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var k={k256:null,p224:null,p192:null,p25519:null};h.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},h.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e0?r.isub(this.p):r.strip(),r},h.prototype.split=function(t,e){t.iushrn(this.n,0,e)},h.prototype.imulK=function(t){return t.imul(this.k)},i(l,h),l.prototype.split=function(t,e){for(var r=Math.min(t.length,9),n=0;n>>22,i=o}i>>>=22,t.words[n-10]=i,0===i&&t.length>10?t.length-=10:t.length-=9},l.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(k[t])return k[t];var e;if("k256"===t)e=new l;else if("p224"===t)e=new d;else if("p192"===t)e=new p;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new m}return k[t]=e,e},b.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},b.prototype._verify2=function(t,e){n(0==(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},b.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},b.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},b.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},b.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},b.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},b.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},b.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},b.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},b.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},b.prototype.isqr=function(t){return this.imul(t,t.clone())},b.prototype.sqr=function(t){return this.mul(t,t)},b.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2==1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);n(!i.isZero());var a=new o(1).toRed(this),u=a.redNeg(),c=this.m.subn(1).iushrn(1),f=this.m.bitLength();for(f=new o(2*f*f).toRed(this);0!==this.pow(f,c).cmp(u);)f.redIAdd(u);for(var h=this.pow(f,i),l=this.pow(t,i.addn(1).iushrn(1)),d=this.pow(t,i),p=s;0!==d.cmp(a);){for(var m=d,b=0;0!==m.cmp(a);b++)m=m.redSqr();n(b=0;n--){for(var c=e.words[n],f=u-1;f>=0;f--){var h=c>>f&1;i!==r[0]&&(i=this.sqr(i)),0!==h||0!==s?(s<<=1,s|=h,(4===++a||0===n&&0===f)&&(i=this.mul(i,r[s]),a=0,s=0)):a=0}u=26}return i},b.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},b.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new v(t)},i(v,b),v.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},v.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},v.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},v.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},v.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(void 0===e||e,this)},{buffer:17}],229:[function(t,e,r){(function(t,n){!function(t){if("object"==(void 0===r?"undefined":_typeof(r))&&void 0!==e)e.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var i;"undefined"!=typeof window?i=window:void 0!==n?i=n:"undefined"!=typeof self&&(i=self),i.Promise=t()}}(function(){var e,r,i;return function t(e,r,n){function i(s,a){if(!r[s]){if(!e[s]){var u="function"==typeof _dereq_&&_dereq_;if(!a&&u)return u(s,!0);if(o)return o(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var f=r[s]={exports:{}};e[s][0].call(f.exports,function(t){var r=e[s][1][t];return i(r||t)},f,f.exports,t,e,r,n)}return r[s].exports}for(var o="function"==typeof _dereq_&&_dereq_,s=0;s0;){var e=t.shift();if("function"==typeof e){var r=t.shift(),n=t.shift();e.call(r,n)}else e._settlePromises()}},i.prototype._drainQueues=function(){this._drainQueue(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,this._drainQueue(this._lateQueue)},i.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},i.prototype._reset=function(){this._isTickUsed=!1},r.exports=i,r.exports.firstLineError=u},{"./queue":26,"./schedule":29,"./util":36}],3:[function(t,e,r){e.exports=function(t,e,r,n){var i=!1,o=function(t,e){this._reject(e)},s=function(t,e){e.promiseRejectionQueued=!0,e.bindingPromise._then(o,o,null,this,t)},a=function(t,e){0==(50397184&this._bitField)&&this._resolveCallback(e.target)},u=function(t,e){e.promiseRejectionQueued||this._reject(t)};t.prototype.bind=function(o){i||(i=!0,t.prototype._propagateFrom=n.propagateFromFunction(),t.prototype._boundValue=n.boundValueFunction());var c=r(o),f=new t(e);f._propagateFrom(this,1);var h=this._target();if(f._setBoundTo(c),c instanceof t){var l={promiseRejectionQueued:!1,promise:f,target:h,bindingPromise:c};h._then(e,s,void 0,f,l),c._then(a,u,void 0,f,l),f._setOnCancel(c)}else f._resolveCallback(h);return f},t.prototype._setBoundTo=function(t){void 0!==t?(this._bitField=2097152|this._bitField,this._boundTo=t):this._bitField=-2097153&this._bitField},t.prototype._isBound=function(){return 2097152==(2097152&this._bitField)},t.bind=function(e,r){return t.resolve(r).bind(e)}}},{}],4:[function(t,e,r){var n;"undefined"!=typeof Promise&&(n=Promise);var i=t("./promise")();i.noConflict=function(){try{Promise===i&&(Promise=n)}catch(t){}return i},e.exports=i},{"./promise":22}],5:[function(t,e,r){var n=Object.create;if(n){var i=n(null),o=n(null);i[" size"]=o[" size"]=0}e.exports=function(e){function r(t,r){var n;if(null!=t&&(n=t[r]),"function"!=typeof n){var i="Object "+a.classString(t)+" has no method '"+a.toString(r)+"'";throw new e.TypeError(i)}return n}function n(t){return r(t,this.pop()).apply(t,this)}function i(t){return t[this]}function o(t){var e=+this;return e<0&&(e=Math.max(0,e+t.length)),t[e]}var s,a=t("./util"),u=a.canEvaluate;a.isIdentifier;e.prototype.call=function(t){var e=[].slice.call(arguments,1);return e.push(t),this._then(n,void 0,void 0,e,void 0)},e.prototype.get=function(t){var e;if("number"==typeof t)e=o;else if(u){var r=s(t);e=null!==r?r:i}else e=i;return this._then(e,void 0,void 0,t,void 0)}}},{"./util":36}],6:[function(t,e,r){e.exports=function(e,r,n,i){var o=t("./util"),s=o.tryCatch,a=o.errorObj,u=e._async;e.prototype.break=e.prototype.cancel=function(){if(!i.cancellation())return this._warn("cancellation is disabled");for(var t=this,e=t;t.isCancellable();){if(!t._cancelBy(e)){e._isFollowing()?e._followee().cancel():e._cancelBranched();break}var r=t._cancellationParent;if(null==r||!r.isCancellable()){t._isFollowing()?t._followee().cancel():t._cancelBranched();break}t._isFollowing()&&t._followee().cancel(),e=t,t=r}},e.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--},e.prototype._enoughBranchesHaveCancelled=function(){return void 0===this._branchesRemainingToCancel||this._branchesRemainingToCancel<=0},e.prototype._cancelBy=function(t){return t===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),!!this._enoughBranchesHaveCancelled()&&(this._invokeOnCancel(),!0))},e.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()},e.prototype._cancel=function(){this.isCancellable()&&(this._setCancelled(),u.invoke(this._cancelPromises,this,void 0))},e.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()},e.prototype._unsetOnCancel=function(){this._onCancelField=void 0},e.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()},e.prototype._doInvokeOnCancel=function(t,e){if(o.isArray(t))for(var r=0;r=0)return i[t]}var n=!1,i=[];return t.prototype._promiseCreated=function(){},t.prototype._pushContext=function(){},t.prototype._popContext=function(){return null},t._peekContext=t.prototype._peekContext=function(){},e.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,i.push(this._trace))},e.prototype._popContext=function(){if(void 0!==this._trace){var t=i.pop(),e=t._promiseCreated;return t._promiseCreated=null,e}return null},e.CapturedTrace=null,e.create=function(){if(n)return new e},e.deactivateLongStackTraces=function(){},e.activateLongStackTraces=function(){var i=t.prototype._pushContext,o=t.prototype._popContext,s=t._peekContext,a=t.prototype._peekContext,u=t.prototype._promiseCreated;e.deactivateLongStackTraces=function(){t.prototype._pushContext=i,t.prototype._popContext=o,t._peekContext=s,t.prototype._peekContext=a,t.prototype._promiseCreated=u,n=!1},n=!0,t.prototype._pushContext=e.prototype._pushContext,t.prototype._popContext=e.prototype._popContext,t._peekContext=t.prototype._peekContext=r,t.prototype._promiseCreated=function(){var t=this._peekContext();t&&null==t._promiseCreated&&(t._promiseCreated=this)}},e}},{}],9:[function(e,r,n){r.exports=function(r,n){function i(t,e){return{promise:e}}function o(){return!1}function s(t,e,r){var n=this;try{t(e,r,function(t){if("function"!=typeof t)throw new TypeError("onCancel must be a function, got: "+T.toString(t));n._attachCancellationCallback(t)})}catch(t){return t}}function a(t){if(!this.isCancellable())return this;var e=this._onCancel();void 0!==e?T.isArray(e)?e.push(t):this._setOnCancel([e,t]):this._setOnCancel(t)}function u(){return this._onCancelField}function c(t){this._onCancelField=t}function f(){this._cancellationParent=void 0,this._onCancelField=void 0}function h(t,e){if(0!=(1&e)){this._cancellationParent=t;var r=t._branchesRemainingToCancel;void 0===r&&(r=0),t._branchesRemainingToCancel=r+1}0!=(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function l(){var t=this._boundTo;return void 0!==t&&t instanceof r?t.isFulfilled()?t.value():void 0:t}function d(){this._trace=new k(this._peekContext())}function p(t,e){if(P(t)){var r=this._trace;if(void 0!==r&&e&&(r=r._parent),void 0!==r)r.attachExtraTrace(t);else if(!t.__stackCleaned__){var n=v(t);T.notEnumerableProp(t,"stack",n.message+"\n"+n.stack.join("\n")),T.notEnumerableProp(t,"__stackCleaned__",!0)}}}function m(t,e,n){if($.warnings){var i,o=new C(t);if(e)n._attachExtraTrace(o);else if($.longStackTraces&&(i=r._peekContext()))i.attachExtraTrace(o);else{var s=v(o);o.stack=s.message+"\n"+s.stack.join("\n")}K("warning",o)||y(o,"",!0)}}function b(t){for(var e=[],r=0;r0?function(t){for(var e=t.stack.replace(/\s+$/g,"").split("\n"),r=0;r0&&(e=e.slice(r)),e}(t):[" (No stack trace)"],{message:r,stack:b(e)}}function y(t,e,r){if("undefined"!=typeof console){var n;if(T.isObject(t)){var i=t.stack;n=e+R(i,t)}else n=e+String(t);"function"==typeof S?S(n,r):"function"!=typeof console.log&&"object"!==_typeof(console.log)||console.log(n)}}function g(t,e,r,n){var i=!1;try{"function"==typeof e&&(i=!0,"rejectionHandled"===t?e(n):e(r,n))}catch(t){j.throwLater(t)}"unhandledRejection"===t?K(t,r,n)||i||y(r,"Unhandled rejection "):K(t,n)}function _(t){var e;if("function"==typeof t)e="[function "+(t.name||"anonymous")+"]";else{e=t&&"function"==typeof t.toString?t.toString():T.toString(t);if(/\[object [a-zA-Z0-9$_]+\]/.test(e))try{e=JSON.stringify(t)}catch(t){}0===e.length&&(e="(empty array)")}return"(<"+function(t){if(t.length<41)return t;return t.substr(0,38)+"..."}(e)+">, no stack trace)"}function w(){return"function"==typeof G}function M(t){var e=t.match(X);if(e)return{fileName:e[1],line:parseInt(e[2],10)}}function k(t){this._parent=t,this._promisesCreated=0;var e=this._length=1+(void 0===t?0:t._length);G(this,k),e>32&&this.uncycle()}var x,E,S,A=r._getDomain,j=r._async,C=e("./errors").Warning,T=e("./util"),P=T.canAttachTrace,I=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,B=null,R=null,F=!1,O=!(0==T.env("BLUEBIRD_DEBUG")),N=!(0==T.env("BLUEBIRD_WARNINGS")||!O&&!T.env("BLUEBIRD_WARNINGS")),L=!(0==T.env("BLUEBIRD_LONG_STACK_TRACES")||!O&&!T.env("BLUEBIRD_LONG_STACK_TRACES")),D=0!=T.env("BLUEBIRD_W_FORGOTTEN_RETURN")&&(N||!!T.env("BLUEBIRD_W_FORGOTTEN_RETURN"));r.prototype.suppressUnhandledRejections=function(){var t=this._target();t._bitField=-1048577&t._bitField|524288},r.prototype._ensurePossibleRejectionHandled=function(){0==(524288&this._bitField)&&(this._setRejectionIsUnhandled(),j.invokeLater(this._notifyUnhandledRejection,this,void 0))},r.prototype._notifyUnhandledRejectionIsHandled=function(){g("rejectionHandled",x,void 0,this)},r.prototype._setReturnedNonUndefined=function(){this._bitField=268435456|this._bitField},r.prototype._returnedNonUndefined=function(){return 0!=(268435456&this._bitField)},r.prototype._notifyUnhandledRejection=function(){if(this._isRejectionUnhandled()){var t=this._settledValue();this._setUnhandledRejectionIsNotified(),g("unhandledRejection",E,t,this)}},r.prototype._setUnhandledRejectionIsNotified=function(){this._bitField=262144|this._bitField},r.prototype._unsetUnhandledRejectionIsNotified=function(){this._bitField=-262145&this._bitField},r.prototype._isUnhandledRejectionNotified=function(){return(262144&this._bitField)>0},r.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField},r.prototype._unsetRejectionIsUnhandled=function(){this._bitField=-1048577&this._bitField,this._isUnhandledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())},r.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0},r.prototype._warn=function(t,e,r){return m(t,e,r||this)},r.onPossiblyUnhandledRejection=function(t){var e=A();E="function"==typeof t?null===e?t:e.bind(t):void 0},r.onUnhandledRejectionHandled=function(t){var e=A();x="function"==typeof t?null===e?t:e.bind(t):void 0};var q=function(){};r.longStackTraces=function(){if(j.haveItemsQueued()&&!$.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");if(!$.longStackTraces&&w()){var t=r.prototype._captureStackTrace,e=r.prototype._attachExtraTrace;$.longStackTraces=!0,q=function(){if(j.haveItemsQueued()&&!$.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");r.prototype._captureStackTrace=t,r.prototype._attachExtraTrace=e,n.deactivateLongStackTraces(),j.enableTrampoline(),$.longStackTraces=!1},r.prototype._captureStackTrace=d,r.prototype._attachExtraTrace=p,n.activateLongStackTraces(),j.disableTrampolineIfNecessary()}},r.hasLongStackTraces=function(){return $.longStackTraces&&w()};var U=function(){try{var t=document.createEvent("CustomEvent");return t.initCustomEvent("testingtheevent",!1,!0,{}),T.global.dispatchEvent(t),function(t,e){var r=document.createEvent("CustomEvent");return r.initCustomEvent(t.toLowerCase(),!1,!0,e),!T.global.dispatchEvent(r)}}catch(t){}return function(){return!1}}(),z=T.isNode?function(){return t.emit.apply(t,arguments)}:T.global?function(t){var e="on"+t.toLowerCase(),r=T.global[e];return!!r&&(r.apply(T.global,[].slice.call(arguments,1)),!0)}:function(){return!1},H={promiseCreated:i,promiseFulfilled:i,promiseRejected:i,promiseResolved:i,promiseCancelled:i,promiseChained:function(t,e,r){return{promise:e,child:r}},warning:function(t,e){return{warning:e}},unhandledRejection:function(t,e,r){return{reason:e,promise:r}},rejectionHandled:i},K=function(t){var e=!1;try{e=z.apply(null,arguments)}catch(t){j.throwLater(t),e=!0}var r=!1;try{r=U(t,H[t].apply(null,arguments))}catch(t){j.throwLater(t),r=!0}return r||e};r.config=function(t){if("longStackTraces"in(t=Object(t))&&(t.longStackTraces?r.longStackTraces():!t.longStackTraces&&r.hasLongStackTraces()&&q()),"warnings"in t){var e=t.warnings;$.warnings=!!e,D=$.warnings,T.isObject(e)&&"wForgottenReturn"in e&&(D=!!e.wForgottenReturn)}if("cancellation"in t&&t.cancellation&&!$.cancellation){if(j.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");r.prototype._clearCancellationData=f,r.prototype._propagateFrom=h,r.prototype._onCancel=u,r.prototype._setOnCancel=c,r.prototype._attachCancellationCallback=a,r.prototype._execute=s,V=h,$.cancellation=!0}"monitoring"in t&&(t.monitoring&&!$.monitoring?($.monitoring=!0,r.prototype._fireEvent=K):!t.monitoring&&$.monitoring&&($.monitoring=!1,r.prototype._fireEvent=o))},r.prototype._fireEvent=o,r.prototype._execute=function(t,e,r){try{t(e,r)}catch(t){return t}},r.prototype._onCancel=function(){},r.prototype._setOnCancel=function(t){},r.prototype._attachCancellationCallback=function(t){},r.prototype._captureStackTrace=function(){},r.prototype._attachExtraTrace=function(){},r.prototype._clearCancellationData=function(){},r.prototype._propagateFrom=function(t,e){};var V=function(t,e){0!=(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)},W=function(){return!1},X=/[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;T.inherits(k,Error),n.CapturedTrace=k,k.prototype.uncycle=function(){var t=this._length;if(!(t<2)){for(var e=[],r={},n=0,i=this;void 0!==i;++n)e.push(i),i=i._parent;for(n=(t=this._length=n)-1;n>=0;--n){var o=e[n].stack;void 0===r[o]&&(r[o]=n)}for(n=0;n0&&(e[s-1]._parent=void 0,e[s-1]._length=1),e[n]._parent=void 0,e[n]._length=1;var a=n>0?e[n-1]:this;s=0;--c)e[c]._length=u,u++;return}}}},k.prototype.attachExtraTrace=function(t){if(!t.__stackCleaned__){this.uncycle();for(var e=v(t),r=e.message,n=[e.stack],i=this;void 0!==i;)n.push(b(i.stack.split("\n"))),i=i._parent;!function(t){for(var e=t[0],r=1;r=0;--a)if(n[a]===o){s=a;break}for(a=s;a>=0;--a){var u=n[a];if(e[i]!==u)break;e.pop(),i--}e=n}}(n),function(t){for(var e=0;e=0)return B=/@/,R=e,F=!0,function(t){t.stack=(new Error).stack};var i;try{throw new Error}catch(t){i="stack"in t}return"stack"in n||!i||"number"!=typeof Error.stackTraceLimit?(R=function(t,e){return"string"==typeof t?t:"object"!==(void 0===e?"undefined":_typeof(e))&&"function"!=typeof e||void 0===e.name||void 0===e.message?_(e):e.toString()},null):(B=t,R=e,function(t){Error.stackTraceLimit+=6;try{throw new Error}catch(e){t.stack=e.stack}Error.stackTraceLimit-=6})}();"undefined"!=typeof console&&void 0!==console.warn&&(S=function(t){console.warn(t)},T.isNode&&t.stderr.isTTY?S=function(t,e){var r=e?"":"";console.warn(r+t+"\n")}:T.isNode||"string"!=typeof(new Error).stack||(S=function(t,e){console.warn("%c"+t,e?"color: darkorange":"color: red")}));var $={warnings:N,longStackTraces:!1,cancellation:!1,monitoring:!1};return L&&r.longStackTraces(),{longStackTraces:function(){return $.longStackTraces},warnings:function(){return $.warnings},cancellation:function(){return $.cancellation},monitoring:function(){return $.monitoring},propagateFromFunction:function(){return V},boundValueFunction:function(){return l},checkForgottenReturns:function(t,e,r,n,i){if(void 0===t&&null!==e&&D){if(void 0!==i&&i._returnedNonUndefined())return;r&&(r+=" ");var o="a promise was created in a "+r+"handler but was not returned from it";n._warn(o,!0,e)}},setBounds:function(t,e){if(w()){for(var r,n,i=t.stack.split("\n"),o=e.stack.split("\n"),s=-1,a=-1,u=0;u=a||(W=function(t){if(I.test(t))return!0;var e=M(t);return!!(e&&e.fileName===r&&s<=e.line&&e.line<=a)})}},warn:m,deprecated:function(t,e){var r=t+" is deprecated and will be removed in a future version.";return e&&(r+=" Use "+e+" instead."),m(r)},CapturedTrace:k,fireDomEvent:U,fireGlobalEvent:z}}},{"./errors":12,"./util":36}],10:[function(t,e,r){e.exports=function(t){function e(){return this.value}function r(){throw this.reason}t.prototype.return=t.prototype.thenReturn=function(r){return r instanceof t&&r.suppressUnhandledRejections(),this._then(e,void 0,void 0,{value:r},void 0)},t.prototype.throw=t.prototype.thenThrow=function(t){return this._then(r,void 0,void 0,{reason:t},void 0)},t.prototype.catchThrow=function(t){if(arguments.length<=1)return this._then(void 0,r,void 0,{reason:t},void 0);var e=arguments[1];return this.caught(t,function(){throw e})},t.prototype.catchReturn=function(r){if(arguments.length<=1)return r instanceof t&&r.suppressUnhandledRejections(),this._then(void 0,e,void 0,{value:r},void 0);var n=arguments[1];n instanceof t&&n.suppressUnhandledRejections();return this.caught(r,function(){return n})}}},{}],11:[function(t,e,r){e.exports=function(t,e){function r(){return o(this)}function n(t,r){return i(t,r,e,e)}var i=t.reduce,o=t.all;t.prototype.each=function(t){return this.mapSeries(t)._then(r,void 0,void 0,this,void 0)},t.prototype.mapSeries=function(t){return i(this,t,e,e)},t.each=function(t,e){return n(t,e)._then(r,void 0,void 0,t,void 0)},t.mapSeries=n}},{}],12:[function(t,e,r){function n(t,e){function r(n){if(!(this instanceof r))return new r(n);h(this,"message","string"==typeof n?n:e),h(this,"name",t),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this)}return f(r,Error),r}function i(t){if(!(this instanceof i))return new i(t);h(this,"name","OperationalError"),h(this,"message",t),this.cause=t,this.isOperational=!0,t instanceof Error?(h(this,"message",t.message),h(this,"stack",t.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}var o,s,a=t("./es5"),u=a.freeze,c=t("./util"),f=c.inherits,h=c.notEnumerableProp,l=n("Warning","warning"),d=n("CancellationError","cancellation error"),p=n("TimeoutError","timeout error"),m=n("AggregateError","aggregate error");try{o=TypeError,s=RangeError}catch(t){o=n("TypeError","type error"),s=n("RangeError","range error")}for(var b="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),v=0;v1?t.cancelPromise._reject(e):t.cancelPromise._cancel(),t.cancelPromise=null,!0)}function s(){return u.call(this,this.promise._target()._settledValue())}function a(t){if(!o(this,t))return h.e=t,h}function u(t){var n=this.promise,u=this.handler;if(!this.called){this.called=!0;var c=this.isFinallyHandler()?u.call(n._boundValue()):u.call(n._boundValue(),t);if(void 0!==c){n._setReturnedNonUndefined();var l=r(c,n);if(l instanceof e){if(null!=this.cancelPromise){if(l.isCancelled()){var d=new f("late cancellation observer");return n._attachExtraTrace(d),h.e=d,h}l.isPending()&&l._attachCancellationCallback(new i(this))}return l._then(s,a,void 0,this,void 0)}}}return n.isRejected()?(o(this),h.e=t,h):(o(this),t)}var c=t("./util"),f=e.CancellationError,h=c.errorObj;return n.prototype.isFinallyHandler=function(){return 0===this.type},i.prototype._resultCancelled=function(){o(this.finallyHandler)},e.prototype._passThrough=function(t,e,r,i){return"function"!=typeof t?this.then():this._then(r,i,void 0,new n(this,e,t),void 0)},e.prototype.lastly=e.prototype.finally=function(t){return this._passThrough(t,0,u,u)},e.prototype.tap=function(t){return this._passThrough(t,1,u)},n}},{"./util":36}],16:[function(t,e,r){e.exports=function(e,r,n,i,o,s){function a(t,r,i,o){var s=this._promise=new e(n);s._captureStackTrace(),s._setOnCancel(this),this._stack=o,this._generatorFunction=t,this._receiver=r,this._generator=void 0,this._yieldHandlers="function"==typeof i?[i].concat(l):l,this._yieldedPromise=null}var u=t("./errors").TypeError,c=t("./util"),f=c.errorObj,h=c.tryCatch,l=[];c.inherits(a,o),a.prototype._isResolved=function(){return null===this._promise},a.prototype._cleanup=function(){this._promise=this._generator=null},a.prototype._promiseCancelled=function(){if(!this._isResolved()){var t;if(void 0!==this._generator.return)this._promise._pushContext(),t=h(this._generator.return).call(this._generator,void 0),this._promise._popContext();else{var r=new e.CancellationError("generator .return() sentinel");e.coroutine.returnSentinel=r,this._promise._attachExtraTrace(r),this._promise._pushContext(),t=h(this._generator.throw).call(this._generator,r),this._promise._popContext(),t===f&&t.e===r&&(t=null)}var n=this._promise;this._cleanup(),t===f?n._rejectCallback(t.e,!1):n.cancel()}},a.prototype._promiseFulfilled=function(t){this._yieldedPromise=null,this._promise._pushContext();var e=h(this._generator.next).call(this._generator,t);this._promise._popContext(),this._continue(e)},a.prototype._promiseRejected=function(t){this._yieldedPromise=null,this._promise._attachExtraTrace(t),this._promise._pushContext();var e=h(this._generator.throw).call(this._generator,t);this._promise._popContext(),this._continue(e)},a.prototype._resultCancelled=function(){if(this._yieldedPromise instanceof e){var t=this._yieldedPromise;this._yieldedPromise=null,t.cancel()}},a.prototype.promise=function(){return this._promise},a.prototype._run=function(){this._generator=this._generatorFunction.call(this._receiver),this._receiver=this._generatorFunction=void 0,this._promiseFulfilled(void 0)},a.prototype._continue=function(t){var r=this._promise;if(t===f)return this._cleanup(),r._rejectCallback(t.e,!1);var n=t.value;if(!0===t.done)return this._cleanup(),r._resolveCallback(n);var o=i(n,this._promise);if(o instanceof e||null!==(o=function(t,r,n){for(var o=0;o0&&"function"==typeof arguments[e]){t=arguments[e]}var n=[].slice.call(arguments);t&&n.pop();var i=new r(n).promise();return void 0!==t?i.spread(t):i}}},{"./util":36}],18:[function(t,e,r){e.exports=function(e,r,n,i,o,s){function a(t,e,r,n){this.constructor$(t),this._promise._captureStackTrace();var i=c();this._callback=null===i?e:i.bind(e),this._preservedValues=n===o?new Array(this.length()):null,this._limit=r,this._inFlight=0,this._queue=r>=1?[]:d,this._init$(void 0,-2)}function u(t,e,r,i){if("function"!=typeof e)return n("expecting a function but got "+f.classString(e));var o="object"===(void 0===r?"undefined":_typeof(r))&&null!==r?r.concurrency:0;return o="number"==typeof o&&isFinite(o)&&o>=1?o:0,new a(t,e,o,i).promise()}var c=e._getDomain,f=t("./util"),h=f.tryCatch,l=f.errorObj,d=[];f.inherits(a,r),a.prototype._init=function(){},a.prototype._promiseFulfilled=function(t,r){var n=this._values,o=this.length(),a=this._preservedValues,u=this._limit;if(r<0){if(r=-1*r-1,n[r]=t,u>=1&&(this._inFlight--,this._drainQueue(),this._isResolved()))return!0}else{if(u>=1&&this._inFlight>=u)return n[r]=t,this._queue.push(r),!1;null!==a&&(a[r]=t);var c=this._promise,f=this._callback,d=c._boundValue();c._pushContext();var p=h(f).call(d,t,r,o),m=c._popContext();if(s.checkForgottenReturns(p,m,null!==a?"Promise.filter":"Promise.map",c),p===l)return this._reject(p.e),!0;var b=i(p,this._promise);if(b instanceof e){var v=(b=b._target())._bitField;if(0==(50397184&v))return u>=1&&this._inFlight++,n[r]=b,b._proxy(this,-1*(r+1)),!1;if(0==(33554432&v))return 0!=(16777216&v)?(this._reject(b._reason()),!0):(this._cancel(),!0);p=b._value()}n[r]=p}return++this._totalResolved>=o&&(null!==a?this._filter(n,a):this._resolve(n),!0)},a.prototype._drainQueue=function(){for(var t=this._queue,e=this._limit,r=this._values;t.length>0&&this._inFlight1){o.deprecated("calling Promise.try with more than 1 argument");var c=arguments[1],f=arguments[2];u=s.isArray(c)?a(t).apply(f,c):a(t).call(f,c)}else u=a(t)();var h=n._popContext();return o.checkForgottenReturns(u,h,"Promise.try",n),n._resolveFromSyncValue(u),n},e.prototype._resolveFromSyncValue=function(t){t===s.errorObj?this._rejectCallback(t.e,!1):this._resolveCallback(t,!0)}}},{"./util":36}],20:[function(t,e,r){function n(t){var e;if(function(t){return t instanceof Error&&a.getPrototypeOf(t)===Error.prototype}(t)){(e=new s(t)).name=t.name,e.message=t.message,e.stack=t.stack;for(var r=a.keys(t),n=0;n1){var r,n=new Array(e-1),i=0;for(r=0;r0&&"function"!=typeof t&&"function"!=typeof e){var r=".then() only accepts functions but was passed: "+l.classString(t);arguments.length>1&&(r+=", "+l.classString(e)),this._warn(r)}return this._then(t,e,void 0,void 0,void 0)},n.prototype.done=function(t,e){this._then(t,e,void 0,void 0,void 0)._setIsFinal()},n.prototype.spread=function(t){return"function"!=typeof t?f("expecting a function but got "+l.classString(t)):this.all()._then(t,void 0,void 0,_,void 0)},n.prototype.toJSON=function(){var t={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(t.fulfillmentValue=this.value(),t.isFulfilled=!0):this.isRejected()&&(t.rejectionReason=this.reason(),t.isRejected=!0),t},n.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new k(this).promise()},n.prototype.error=function(t){return this.caught(l.originatesFromRejection,t)},n.is=function(t){return t instanceof n},n.fromNode=n.fromCallback=function(t){var e=new n(g);e._captureStackTrace();var r=arguments.length>1&&!!Object(arguments[1]).multiArgs,i=P(t)(C(e,r));return i===T&&e._rejectCallback(i.e,!0),e._isFateSealed()||e._setAsyncGuaranteed(),e},n.all=function(t){return new k(t).promise()},n.cast=function(t){var e=M(t);return e instanceof n||((e=new n(g))._captureStackTrace(),e._setFulfilled(),e._rejectionHandler0=t),e},n.resolve=n.fulfilled=n.cast,n.reject=n.rejected=function(t){var e=new n(g);return e._captureStackTrace(),e._rejectCallback(t,!0),e},n.setScheduler=function(t){if("function"!=typeof t)throw new v("expecting a function but got "+l.classString(t));var e=m._schedule;return m._schedule=t,e},n.prototype._then=function(t,e,r,i,o){var s=void 0!==o,u=s?o:new n(g),c=this._target(),f=c._bitField;s||(u._propagateFrom(this,3),u._captureStackTrace(),void 0===i&&0!=(2097152&this._bitField)&&(i=0!=(50397184&f)?this._boundValue():c===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,u));var h=a();if(0!=(50397184&f)){var l,d,p=c._settlePromiseCtx;0!=(33554432&f)?(d=c._rejectionHandler0,l=t):0!=(16777216&f)?(d=c._fulfillmentHandler0,l=e,c._unsetRejectionIsUnhandled()):(p=c._settlePromiseLateCancellationObserver,d=new y("late cancellation observer"),c._attachExtraTrace(d),l=e),m.invoke(p,c,{handler:null===h?l:"function"==typeof l&&h.bind(l),promise:u,receiver:i,value:d})}else c._addCallbacks(t,e,u,i,h);return u},n.prototype._length=function(){return 65535&this._bitField},n.prototype._isFateSealed=function(){return 0!=(117506048&this._bitField)},n.prototype._isFollowing=function(){return 67108864==(67108864&this._bitField)},n.prototype._setLength=function(t){this._bitField=-65536&this._bitField|65535&t},n.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent("promiseFulfilled",this)},n.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},n.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},n.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},n.prototype._isFinal=function(){return(4194304&this._bitField)>0},n.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},n.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},n.prototype._setAsyncGuaranteed=function(){this._bitField=134217728|this._bitField},n.prototype._receiverAt=function(t){var e=0===t?this._receiver0:this[4*t-4+3];if(e!==h)return void 0===e&&this._isBound()?this._boundValue():e},n.prototype._promiseAt=function(t){return this[4*t-4+2]},n.prototype._fulfillmentHandlerAt=function(t){return this[4*t-4+0]},n.prototype._rejectionHandlerAt=function(t){return this[4*t-4+1]},n.prototype._boundValue=function(){},n.prototype._migrateCallback0=function(t){t._bitField;var e=t._fulfillmentHandler0,r=t._rejectionHandler0,n=t._promise0,i=t._receiverAt(0);void 0===i&&(i=h),this._addCallbacks(e,r,n,i,null)},n.prototype._migrateCallbackAt=function(t,e){var r=t._fulfillmentHandlerAt(e),n=t._rejectionHandlerAt(e),i=t._promiseAt(e),o=t._receiverAt(e);void 0===o&&(o=h),this._addCallbacks(r,n,i,o,null)},n.prototype._addCallbacks=function(t,e,r,n,i){var o=this._length();if(o>=65531&&(o=0,this._setLength(0)),0===o)this._promise0=r,this._receiver0=n,"function"==typeof t&&(this._fulfillmentHandler0=null===i?t:i.bind(t)),"function"==typeof e&&(this._rejectionHandler0=null===i?e:i.bind(e));else{var s=4*o-4;this[s+2]=r,this[s+3]=n,"function"==typeof t&&(this[s+0]=null===i?t:i.bind(t)),"function"==typeof e&&(this[s+1]=null===i?e:i.bind(e))}return this._setLength(o+1),o},n.prototype._proxy=function(t,e){this._addCallbacks(void 0,void 0,e,t,null)},n.prototype._resolveCallback=function(t,e){if(0==(117506048&this._bitField)){if(t===this)return this._rejectCallback(u(),!1);var r=M(t,this);if(!(r instanceof n))return this._fulfill(t);e&&this._propagateFrom(r,2);var i=r._target(),o=i._bitField;if(0==(50397184&o)){var s=this._length();s>0&&i._migrateCallback0(this);for(var a=1;a>>16)){if(t===this){var r=u();return this._attachExtraTrace(r),this._reject(r)}this._setFulfilled(),this._rejectionHandler0=t,(65535&e)>0&&(0!=(134217728&e)?this._settlePromises():m.settlePromises(this))}},n.prototype._reject=function(t){var e=this._bitField;if(!((117506048&e)>>>16)){if(this._setRejected(),this._fulfillmentHandler0=t,this._isFinal())return m.fatalError(t,l.isNode);(65535&e)>0?0!=(134217728&e)?this._settlePromises():m.settlePromises(this):this._ensurePossibleRejectionHandled()}},n.prototype._fulfillPromises=function(t,e){for(var r=1;r0){if(0!=(16842752&t)){var r=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,r,t),this._rejectPromises(e,r)}else{var n=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,n,t),this._fulfillPromises(e,n)}this._setLength(0)}this._clearCancellationData()},n.prototype._settledValue=function(){var t=this._bitField;return 0!=(33554432&t)?this._rejectionHandler0:0!=(16777216&t)?this._fulfillmentHandler0:void 0},n.defer=n.pending=function(){S.deprecated("Promise.defer","new Promise");return{promise:new n(g),resolve:i,reject:o}},l.notEnumerableProp(n,"_makeSelfResolutionError",u),e("./method")(n,g,M,f,S),e("./bind")(n,g,M,S),e("./cancel")(n,k,f,S),e("./direct_resolve")(n),e("./synchronous_inspection")(n),e("./join")(n,k,M,g,S),n.Promise=n,e("./map.js")(n,k,f,M,g,S),e("./using.js")(n,f,M,E,g,S),e("./timers.js")(n,g,S),e("./generators.js")(n,f,g,M,r,S),e("./nodeify.js")(n),e("./call_get.js")(n),e("./props.js")(n,k,M,f),e("./race.js")(n,g,M,f),e("./reduce.js")(n,k,f,M,g,S),e("./settle.js")(n,k,S),e("./some.js")(n,k,f),e("./promisify.js")(n,g),e("./any.js")(n),e("./each.js")(n,g),e("./filter.js")(n,g),l.toFastProperties(n),l.toFastProperties(n.prototype),s({a:1}),s({b:2}),s({c:3}),s(1),s(function(){}),s(void 0),s(!1),s(new n(g)),S.setBounds(p.firstLineError,l.lastLineError),n}},{"./any.js":1,"./async":2,"./bind":3,"./call_get.js":5,"./cancel":6,"./catch_filter":7,"./context":8,"./debuggability":9,"./direct_resolve":10,"./each.js":11,"./errors":12,"./es5":13,"./filter.js":14,"./finally":15,"./generators.js":16,"./join":17,"./map.js":18,"./method":19,"./nodeback":20,"./nodeify.js":21,"./promise_array":23,"./promisify.js":24,"./props.js":25,"./race.js":27,"./reduce.js":28,"./settle.js":30,"./some.js":31,"./synchronous_inspection":32,"./thenables":33,"./timers.js":34,"./using.js":35,"./util":36}],23:[function(t,e,r){e.exports=function(e,r,n,i,o){function s(t){var n=this._promise=new e(r);t instanceof e&&n._propagateFrom(t,3),n._setOnCancel(this),this._values=t,this._length=0,this._totalResolved=0,this._init(void 0,-2)}var a=t("./util");a.isArray;return a.inherits(s,o),s.prototype.length=function(){return this._length},s.prototype.promise=function(){return this._promise},s.prototype._init=function t(r,o){var s=n(this._values,this._promise);if(s instanceof e){var u=(s=s._target())._bitField;if(this._values=s,0==(50397184&u))return this._promise._setAsyncGuaranteed(),s._then(t,this._reject,void 0,this,o);if(0==(33554432&u))return 0!=(16777216&u)?this._reject(s._reason()):this._cancel();s=s._value()}if(null!==(s=a.asArray(s)))0!==s.length?this._iterate(s):-5===o?this._resolveEmptyArray():this._resolve(function(t){switch(t){case-2:return[];case-3:return{}}}(o));else{var c=i("expecting an array or an iterable object but got "+a.classString(s)).reason();this._promise._rejectCallback(c,!1)}},s.prototype._iterate=function(t){var r=this.getActualLength(t.length);this._length=r,this._values=this.shouldCopyValues()?new Array(r):this._values;for(var i=this._promise,o=!1,s=null,a=0;a=this._length&&(this._resolve(this._values),!0)},s.prototype._promiseCancelled=function(){return this._cancel(),!0},s.prototype._promiseRejected=function(t){return this._totalResolved++,this._reject(t),!0},s.prototype._resultCancelled=function(){if(!this._isResolved()){var t=this._values;if(this._cancel(),t instanceof e)t.cancel();else for(var r=0;r=this._length){var r;if(this._isMap)r=function(t){for(var e=new a,r=t.length/2|0,n=0;n>1},e.prototype.props=function(){return s(this)},e.props=function(t){return s(t)}}},{"./es5":13,"./util":36}],26:[function(t,e,r){function n(t){this._capacity=t,this._length=0,this._front=0}n.prototype._willBeOverCapacity=function(t){return this._capacity=this._length&&(this._resolve(this._values),!0)},i.prototype._promiseFulfilled=function(t,e){var r=new o;return r._bitField=33554432,r._settledValueField=t,this._promiseResolved(e,r)},i.prototype._promiseRejected=function(t,e){var r=new o;return r._bitField=16777216,r._settledValueField=t,this._promiseResolved(e,r)},e.settle=function(t){return n.deprecated(".settle()",".reflect()"),new i(t).promise()},e.prototype.settle=function(){return e.settle(this)}}},{"./util":36}],31:[function(t,e,r){e.exports=function(e,r,n){function i(t){this.constructor$(t),this._howMany=0,this._unwrap=!1,this._initialized=!1}function o(t,e){if((0|e)!==e||e<0)return n("expecting a positive integer\n\n See http://goo.gl/MqrFmX\n");var r=new i(t),o=r.promise();return r.setHowMany(e),r.init(),o}var s=t("./util"),a=t("./errors").RangeError,u=t("./errors").AggregateError,c=s.isArray,f={};s.inherits(i,r),i.prototype._init=function(){if(this._initialized)if(0!==this._howMany){this._init$(void 0,-5);var t=c(this._values);!this._isResolved()&&t&&this._howMany>this._canPossiblyFulfill()&&this._reject(this._getRangeError(this.length()))}else this._resolve([])},i.prototype.init=function(){this._initialized=!0,this._init()},i.prototype.setUnwrap=function(){this._unwrap=!0},i.prototype.howMany=function(){return this._howMany},i.prototype.setHowMany=function(t){this._howMany=t},i.prototype._promiseFulfilled=function(t){return this._addFulfilled(t),this._fulfilled()===this.howMany()&&(this._values.length=this.howMany(),1===this.howMany()&&this._unwrap?this._resolve(this._values[0]):this._resolve(this._values),!0)},i.prototype._promiseRejected=function(t){return this._addRejected(t),this._checkOutcome()},i.prototype._promiseCancelled=function(){return this._values instanceof e||null==this._values?this._cancel():(this._addRejected(f),this._checkOutcome())},i.prototype._checkOutcome=function(){if(this.howMany()>this._canPossiblyFulfill()){for(var t=new u,e=this.length();e0?this._reject(t):this._cancel(),!0}return!1},i.prototype._fulfilled=function(){return this._totalResolved},i.prototype._rejected=function(){return this._values.length-this.length()},i.prototype._addRejected=function(t){this._values.push(t)},i.prototype._addFulfilled=function(t){this._values[this._totalResolved++]=t},i.prototype._canPossiblyFulfill=function(){return this.length()-this._rejected()},i.prototype._getRangeError=function(t){var e="Input array must contain at least "+this._howMany+" items but contains only "+t+" items";return new a(e)},i.prototype._resolveEmptyArray=function(){this._reject(this._getRangeError(0))},e.some=function(t,e){return o(t,e)},e.prototype.some=function(t){return o(this,t)},e._SomePromiseArray=i}},{"./errors":12,"./util":36}],32:[function(t,e,r){e.exports=function(t){function e(t){void 0!==t?(t=t._target(),this._bitField=t._bitField,this._settledValueField=t._isFateSealed()?t._settledValue():void 0):(this._bitField=0,this._settledValueField=void 0)}e.prototype._settledValue=function(){return this._settledValueField};var r=e.prototype.value=function(){if(!this.isFulfilled())throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},n=e.prototype.error=e.prototype.reason=function(){if(!this.isRejected())throw new TypeError("cannot get rejection reason of a non-rejected promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},i=e.prototype.isFulfilled=function(){return 0!=(33554432&this._bitField)},o=e.prototype.isRejected=function(){return 0!=(16777216&this._bitField)},s=e.prototype.isPending=function(){return 0==(50397184&this._bitField)},a=e.prototype.isResolved=function(){return 0!=(50331648&this._bitField)};e.prototype.isCancelled=t.prototype._isCancelled=function(){return 65536==(65536&this._bitField)},t.prototype.isCancelled=function(){return this._target()._isCancelled()},t.prototype.isPending=function(){return s.call(this._target())},t.prototype.isRejected=function(){return o.call(this._target())},t.prototype.isFulfilled=function(){return i.call(this._target())},t.prototype.isResolved=function(){return a.call(this._target())},t.prototype.value=function(){return r.call(this._target())},t.prototype.reason=function(){var t=this._target();return t._unsetRejectionIsUnhandled(),n.call(t)},t.prototype._value=function(){return this._settledValue()},t.prototype._reason=function(){return this._unsetRejectionIsUnhandled(),this._settledValue()},t.PromiseInspection=e}},{}],33:[function(t,e,r){e.exports=function(e,r){var n=t("./util"),i=n.errorObj,o=n.isObject,s={}.hasOwnProperty;return function(t,a){if(o(t)){if(t instanceof e)return t;var u=function(t){try{return function(t){return t.then}(t)}catch(t){return i.e=t,i}}(t);if(u===i){a&&a._pushContext();var c=e.reject(u.e);return a&&a._popContext(),c}if("function"==typeof u)return function(t){return s.call(t,"_promise0")}(t)?(c=new e(r),t._then(c._fulfill,c._reject,void 0,c,null),c):function(t,o,s){var a=new e(r),u=a;s&&s._pushContext(),a._captureStackTrace(),s&&s._popContext();var c=!0,f=n.tryCatch(o).call(t,function(t){a&&(a._resolveCallback(t),a=null)},function(t){a&&(a._rejectCallback(t,c,!0),a=null)});return c=!1,a&&f===i&&(a._rejectCallback(f.e,!0,!0),a=null),u}(t,u,a)}return t}}},{"./util":36}],34:[function(t,e,r){e.exports=function(e,r,n){function i(t){this.handle=t}function o(t){return clearTimeout(this.handle),t}function s(t){throw clearTimeout(this.handle),t}var a=t("./util"),u=e.TimeoutError;i.prototype._resultCancelled=function(){clearTimeout(this.handle)};var c=function(t){return f(+this).thenReturn(t)},f=e.delay=function(t,o){var s,a;return void 0!==o?(s=e.resolve(o)._then(c,null,null,t,void 0),n.cancellation()&&o instanceof e&&s._setOnCancel(o)):(s=new e(r),a=setTimeout(function(){s._fulfill()},+t),n.cancellation()&&s._setOnCancel(new i(a))),s._setAsyncGuaranteed(),s};e.prototype.delay=function(t){return f(t,this)};e.prototype.timeout=function(t,e){t=+t;var r,c,f=new i(setTimeout(function(){r.isPending()&&function(t,e,r){var n;n="string"!=typeof e?e instanceof Error?e:new u("operation timed out"):new u(e),a.markAsOriginatingFromRejection(n),t._attachExtraTrace(n),t._reject(n),null!=r&&r.cancel()}(r,e,c)},t));return n.cancellation()?(c=this.then(),(r=c._then(o,s,void 0,f,void 0))._setOnCancel(f)):r=this._then(o,s,void 0,f,void 0),r}}},{"./util":36}],35:[function(t,e,r){e.exports=function(e,r,n,i,o,s){function a(t){setTimeout(function(){throw t},0)}function u(t,r){function i(){if(s>=u)return c._fulfill();var o=function(t){var e=n(t);return e!==t&&"function"==typeof t._isDisposable&&"function"==typeof t._getDisposer&&t._isDisposable()&&e._setDisposable(t._getDisposer()),e}(t[s++]);if(o instanceof e&&o._isDisposable()){try{o=n(o._getDisposer().tryDispose(r),t.promise)}catch(t){return a(t)}if(o instanceof e)return o._then(i,a,null,null,null)}i()}var s=0,u=t.length,c=new e(o);return i(),c}function c(t,e,r){this._data=t,this._promise=e,this._context=r}function f(t,e,r){this.constructor$(t,e,r)}function h(t){return c.isDisposer(t)?(this.resources[this.index]._setDisposable(t),t.promise()):t}function l(t){this.length=t,this.promise=null,this[t-1]=null}var d=t("./util"),p=t("./errors").TypeError,m=t("./util").inherits,b=d.errorObj,v=d.tryCatch;c.prototype.data=function(){return this._data},c.prototype.promise=function(){return this._promise},c.prototype.resource=function(){return this.promise().isFulfilled()?this.promise().value():null},c.prototype.tryDispose=function(t){var e=this.resource(),r=this._context;void 0!==r&&r._pushContext();var n=null!==e?this.doDispose(e,t):null;return void 0!==r&&r._popContext(),this._promise._unsetDisposable(),this._data=null,n},c.isDisposer=function(t){return null!=t&&"function"==typeof t.resource&&"function"==typeof t.tryDispose},m(f,c),f.prototype.doDispose=function(t,e){return this.data().call(t,t,e)},l.prototype._resultCancelled=function(){for(var t=this.length,r=0;r0},e.prototype._getDisposer=function(){return this._disposer},e.prototype._unsetDisposable=function(){this._bitField=-131073&this._bitField,this._disposer=void 0},e.prototype.disposer=function(t){if("function"==typeof t)return new f(t,this,i());throw new p}}},{"./errors":12,"./util":36}],36:[function(e,r,i){function o(){try{var t=C;return C=null,t.apply(this,arguments)}catch(t){return j.e=t,j}}function s(t){return C=t,o}function a(t){return null==t||!0===t||!1===t||"string"==typeof t||"number"==typeof t}function u(t){return"function"==typeof t||"object"===(void 0===t?"undefined":_typeof(t))&&null!==t}function c(t){return a(t)?new Error(y(t)):t}function f(t,e){var r,n=t.length,i=new Array(n+1);for(r=0;r1,n=e.length>0&&!(1===e.length&&"constructor"===e[0]),i=B.test(t+"")&&S.names(t).length>0;if(r||n||i)return!0}return!1}catch(t){return!1}}function m(t){function e(){}e.prototype=t;for(var r=8;r--;)new e;return t}function b(t){return R.test(t)}function v(t,e,r){for(var n=new Array(t),i=0;i10||e[0]>0}(),D.isNode&&D.toFastProperties(t);try{throw new Error}catch(t){D.lastLineError=t}r.exports=D},{"./es5":13}]},{},[4])(4)}),"undefined"!=typeof window&&null!==window?window.P=window.Promise:"undefined"!=typeof self&&null!==self&&(self.P=self.Promise)}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:120}],230:[function(t,e,r){arguments[4][16][0].apply(r,arguments)},{crypto:17,dup:16}],231:[function(t,e,r){arguments[4][18][0].apply(r,arguments)},{dup:18,"safe-buffer":347}],232:[function(t,e,r){arguments[4][19][0].apply(r,arguments)},{"./aes":231,"./ghash":236,"./incr32":237,"buffer-xor":260,"cipher-base":261,dup:19,inherits:320,"safe-buffer":347}],233:[function(t,e,r){arguments[4][20][0].apply(r,arguments)},{"./decrypter":234,"./encrypter":235,"./modes/list.json":245,dup:20}],234:[function(t,e,r){arguments[4][21][0].apply(r,arguments)},{"./aes":231,"./authCipher":232,"./modes":244,"./streamCipher":247,"cipher-base":261,dup:21,evp_bytestokey:305,inherits:320,"safe-buffer":347}],235:[function(t,e,r){arguments[4][22][0].apply(r,arguments)},{"./aes":231,"./authCipher":232,"./modes":244,"./streamCipher":247,"cipher-base":261,dup:22,evp_bytestokey:305,inherits:320,"safe-buffer":347}],236:[function(t,e,r){arguments[4][23][0].apply(r,arguments)},{dup:23,"safe-buffer":347}],237:[function(t,e,r){arguments[4][24][0].apply(r,arguments)},{dup:24}],238:[function(t,e,r){arguments[4][25][0].apply(r,arguments)},{"buffer-xor":260,dup:25}],239:[function(t,e,r){arguments[4][26][0].apply(r,arguments)},{"buffer-xor":260,dup:26,"safe-buffer":347}],240:[function(t,e,r){arguments[4][27][0].apply(r,arguments)},{dup:27,"safe-buffer":347}],241:[function(t,e,r){arguments[4][28][0].apply(r,arguments)},{dup:28,"safe-buffer":347}],242:[function(t,e,r){arguments[4][29][0].apply(r,arguments)},{"../incr32":237,"buffer-xor":260,dup:29,"safe-buffer":347}],243:[function(t,e,r){arguments[4][30][0].apply(r,arguments)},{dup:30}],244:[function(t,e,r){arguments[4][31][0].apply(r,arguments)},{"./cbc":238,"./cfb":239,"./cfb1":240,"./cfb8":241,"./ctr":242,"./ecb":243,"./list.json":245,"./ofb":246,dup:31}],245:[function(t,e,r){arguments[4][32][0].apply(r,arguments)},{dup:32}],246:[function(t,e,r){(function(e){function n(t){return t._prev=t._cipher.encryptBlock(t._prev),t._prev}var i=t("buffer-xor");r.encrypt=function(t,r){for(;t._cache.length=0||!r.umod(t.prime1)||!r.umod(t.prime2);)r=new o(s(e));return r}var o=t("bn.js"),s=t("randombytes");e.exports=n,n.getr=i}).call(this,t("buffer").Buffer)},{"bn.js":252,buffer:47,randombytes:344}],252:[function(t,e,r){arguments[4][228][0].apply(r,arguments)},{buffer:17,dup:228}],253:[function(t,e,r){arguments[4][39][0].apply(r,arguments)},{"./browser/algorithms.json":254,dup:39}],254:[function(t,e,r){arguments[4][40][0].apply(r,arguments)},{dup:40}],255:[function(t,e,r){arguments[4][41][0].apply(r,arguments)},{dup:41}],256:[function(t,e,r){(function(r){function n(t){u.Writable.call(this);var e=l[t];if(!e)throw new Error("Unknown message digest");this._hashType=e.hash,this._hash=a(e.hash),this._tag=e.id,this._signType=e.sign}function i(t){u.Writable.call(this);var e=l[t];if(!e)throw new Error("Unknown message digest");this._hash=a(e.hash),this._tag=e.id,this._signType=e.sign}function o(t){return new n(t)}function s(t){return new i(t)}var a=t("create-hash"),u=t("stream"),c=t("inherits"),f=t("./sign"),h=t("./verify"),l=t("./algorithms.json");Object.keys(l).forEach(function(t){l[t].id=new r(l[t].id,"hex"),l[t.toLowerCase()]=l[t]}),c(n,u.Writable),n.prototype._write=function(t,e,r){this._hash.update(t),r()},n.prototype.update=function(t,e){return"string"==typeof t&&(t=new r(t,e)),this._hash.update(t),this},n.prototype.sign=function(t,e){this.end();var r=this._hash.digest(),n=f(r,t,this._hashType,this._signType,this._tag);return e?n.toString(e):n},c(i,u.Writable),i.prototype._write=function(t,e,r){this._hash.update(t),r()},i.prototype.update=function(t,e){return"string"==typeof t&&(t=new r(t,e)),this._hash.update(t),this},i.prototype.verify=function(t,e,n){"string"==typeof e&&(e=new r(e,n)),this.end();var i=this._hash.digest();return h(e,i,t,this._signType,this._tag)},e.exports={Sign:o,Verify:s,createSign:o,createVerify:s}}).call(this,t("buffer").Buffer)},{"./algorithms.json":254,"./sign":257,"./verify":258,buffer:47,"create-hash":264,inherits:320,stream:152}],257:[function(t,e,r){(function(r){function n(t,e,n,o){if((t=new r(t.toArray())).length0&&r.ishrn(n),r}function o(t,e,n){var o,a;do{for(o=new r(0);8*o.length=e)throw new Error("invalid sig")}var i=t("bn.js"),o=t("elliptic").ec,s=t("parse-asn1"),a=t("./curves.json");e.exports=function(t,e,u,c,f){var h=s(u);if("ec"===h.type){if("ecdsa"!==c&&"ecdsa/rsa"!==c)throw new Error("wrong public key type");return function(t,e,r){var n=a[r.data.algorithm.curve.join(".")];if(!n)throw new Error("unknown curve "+r.data.algorithm.curve.join("."));var i=new o(n),s=r.data.subjectPrivateKey.data;return i.verify(e,t,s)}(t,e,h)}if("dsa"===h.type){if("dsa"!==c)throw new Error("wrong public key type");return function(t,e,r){var o=r.data.p,a=r.data.q,u=r.data.g,c=r.data.pub_key,f=s.signature.decode(t,"der"),h=f.s,l=f.r;n(h,a),n(l,a);var d=i.mont(o),p=h.invm(a);return 0===u.toRed(d).redPow(new i(e).mul(p).mod(a)).fromRed().mul(c.toRed(d).redPow(l.mul(p).mod(a)).fromRed()).mod(o).mod(a).cmp(l)}(t,e,h)}if("rsa"!==c&&"ecdsa/rsa"!==c)throw new Error("wrong public key type");e=r.concat([f,e]);for(var l=h.modulus.byteLength(),d=[1],p=0;e.length+d.length+2>>2),s=0,a=0;s=6.4.0 <7.0.0",type:"range"},"/Users/frozeman/Sites/_ethereum/web3/packages/web3-eth-accounts/node_modules/eth-lib"]],_from:"elliptic@>=6.4.0 <7.0.0",_id:"elliptic@6.4.0",_inCache:!0,_location:"/elliptic",_nodeVersion:"7.0.0",_npmOperationalInternal:{host:"packages-18-east.internal.npmjs.com",tmp:"tmp/elliptic-6.4.0.tgz_1487798866428_0.30510620190761983"},_npmUser:{name:"indutny",email:"fedor@indutny.com"},_npmVersion:"3.10.8",_phantomChildren:{},_requested:{raw:"elliptic@^6.4.0",scope:null,escapedName:"elliptic",name:"elliptic",rawSpec:"^6.4.0",spec:">=6.4.0 <7.0.0",type:"range"},_requiredBy:["/eth-lib"],_resolved:"https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz",_shasum:"cac9af8762c85836187003c8dfe193e5e2eae5df",_shrinkwrap:null,_spec:"elliptic@^6.4.0",_where:"/Users/frozeman/Sites/_ethereum/web3/packages/web3-eth-accounts/node_modules/eth-lib",author:{name:"Fedor Indutny",email:"fedor@indutny.com"},bugs:{url:"https://github.com/indutny/elliptic/issues"},dependencies:{"bn.js":"^4.4.0",brorand:"^1.0.1","hash.js":"^1.0.0","hmac-drbg":"^1.0.0",inherits:"^2.0.1","minimalistic-assert":"^1.0.0","minimalistic-crypto-utils":"^1.0.0"},description:"EC cryptography",devDependencies:{brfs:"^1.4.3",coveralls:"^2.11.3",grunt:"^0.4.5","grunt-browserify":"^5.0.0","grunt-cli":"^1.2.0","grunt-contrib-connect":"^1.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^1.0.1","grunt-mocha-istanbul":"^3.0.1","grunt-saucelabs":"^8.6.2",istanbul:"^0.4.2",jscs:"^2.9.0",jshint:"^2.6.0",mocha:"^2.1.0"},directories:{},dist:{shasum:"cac9af8762c85836187003c8dfe193e5e2eae5df",tarball:"https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz"},files:["lib"],gitHead:"6b0d2b76caae91471649c8e21f0b1d3ba0f96090",homepage:"https://github.com/indutny/elliptic",keywords:["EC","Elliptic","curve","Cryptography"],license:"MIT",main:"lib/elliptic.js",maintainers:[{name:"indutny",email:"fedor@indutny.com"}],name:"elliptic",optionalDependencies:{},readme:"ERROR: No README data found!",repository:{type:"git",url:"git+ssh://git@github.com/indutny/elliptic.git"},scripts:{jscs:"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",jshint:"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",lint:"npm run jscs && npm run jshint",test:"npm run lint && npm run unit",unit:"istanbul test _mocha --reporter=spec test/index.js",version:"grunt dist && git add dist/"},version:"6.4.0"}},{}],298:[function(t,e,r){(function(r){var n=function(){return function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var r=[],n=!0,i=!1,o=void 0;try{for(var s,a=t[Symbol.iterator]();!(n=(s=a.next()).done)&&(r.push(s.value),!e||r.length!==e);n=!0);}catch(t){i=!0,o=t}finally{try{!n&&a.return&&a.return()}finally{if(i)throw o}}return r}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),i=t("./bytes"),o=t("./nat"),s=t("elliptic"),a=(t("./rlp"),new s.ec("secp256k1")),u=t("./hash"),c=u.keccak256,f=u.keccak256s,h=function(t){for(var e=f(t.slice(2)),r="0x",n=0;n<40;n++)r+=parseInt(e[n+2],16)>7?t[n+2].toUpperCase():t[n+2];return r},l=function(t){var e=new r(t.slice(2),"hex"),n="0x"+a.keyFromPrivate(e).getPublic(!1,"hex").slice(2),i=c(n);return{address:h("0x"+i.slice(-40)),privateKey:t}},d=function(t){var e=n(t,3),r=e[0],o=i.pad(32,e[1]),s=i.pad(32,e[2]);return i.flatten([o,s,r])},p=function(t){return[i.slice(64,i.length(t),t),i.slice(0,32,t),i.slice(32,64,t)]},m=function(t){return function(e,n){var s=a.keyFromPrivate(new r(n.slice(2),"hex")).sign(new r(e.slice(2),"hex"),{canonical:!0});return d([o.fromString(i.fromNumber(t+s.recoveryParam)),i.pad(32,i.fromNat("0x"+s.r.toString(16))),i.pad(32,i.fromNat("0x"+s.s.toString(16)))])}},b=m(27);e.exports={create:function(t){var e=c(i.concat(i.random(32),t||i.random(32))),r=i.concat(i.concat(i.random(32),e),i.random(32)),n=c(r);return l(n)},toChecksum:h,fromPrivate:l,sign:b,makeSigner:m,recover:function(t,e){var n=p(e),o={v:i.toNumber(n[0]),r:n[1].slice(2),s:n[2].slice(2)},s="0x"+a.recoverPubKey(new r(t.slice(2),"hex"),o,o.v<2?o.v:1-o.v%2).encode("hex",!1).slice(2),u=c(s);return h("0x"+u.slice(-40))},encodeSignature:d,decodeSignature:p}}).call(this,t("buffer").Buffer)},{"./bytes":300,"./hash":301,"./nat":302,"./rlp":303,buffer:47,elliptic:281}],299:[function(t,e,r){arguments[4][156][0].apply(r,arguments)},{dup:156}],300:[function(t,e,r){arguments[4][157][0].apply(r,arguments)},{"./array.js":299,dup:157}],301:[function(t,e,r){arguments[4][158][0].apply(r,arguments)},{dup:158}],302:[function(t,e,r){var n=t("bn.js"),i=t("./bytes"),o=function(t){return new n(t.slice(2),16)},s=function(t){var e="0x"+("0x"===t.slice(0,2)?new n(t.slice(2),16):new n(t,10)).toString("hex");return"0x0"===e?"0x":e},a=function(t){return"string"==typeof t?/^0x/.test(t)?t:"0x"+t:"0x"+new n(t).toString("hex")},u=function(t){return o(t).toNumber()},c=function(t){return function(e,r){return function(t){return"0x"+t.toString("hex")}(o(e)[t](o(r)))}},f=c("add"),h=c("mul"),l=c("div"),d=c("sub");e.exports={toString:function(t){return o(t).toString(10)},fromString:s,toNumber:u,fromNumber:a,toEther:function(t){return u(l(t,s("10000000000")))/1e8},fromEther:function(t){return h(a(Math.floor(1e8*t)),s("10000000000"))},toUint256:function(t){return i.pad(32,t)},add:f,mul:h,div:l,sub:d}},{"./bytes":300,"bn.js":304}],303:[function(t,e,r){e.exports={encode:function(t){var e=function(t){return function(t){return t.length%2==0?t:"0"+t}(t.toString(16))},r=function(t,r){return t<56?e(r+t):e(r+e(t).length/2+55)+e(t)};return"0x"+function t(e){if("string"==typeof e){var n=e.slice(2);return(2!=n.length||n>="80"?r(n.length/2,128):"")+n}var i=e.map(t).join("");return r(i.length/2,192)+i}(t)},decode:function(t){var e=2,r=function(){if(e>=t.length)throw"";var r=t.slice(e,e+2);return r<"80"?(e+=2,"0x"+r):r<"c0"?i():o()},n=function(){var r=parseInt(t.slice(e,e+=2),16)%64;return r<56?r:parseInt(t.slice(e,e+=2*(r-55)),16)},i=function(){var r=n();return"0x"+t.slice(e,e+=2*r)},o=function(){for(var t=2*n()+e,i=[];e=this._blockSize;){for(var o=this._blockOffset;o0;++s)this._length[s]+=a,(a=this._length[s]/4294967296|0)>0&&(this._length[s]-=4294967296*a);return this},n.prototype._update=function(t){throw new Error("_update is not implemented")},n.prototype.digest=function(t){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var e=this._digest();return void 0!==t&&(e=e.toString(t)),e},n.prototype._digest=function(){throw new Error("_digest is not implemented")},e.exports=n}).call(this,t("buffer").Buffer)},{buffer:47,inherits:320,stream:152}],307:[function(t,e,r){arguments[4][86][0].apply(r,arguments)},{"./hash/common":308,"./hash/hmac":309,"./hash/ripemd":310,"./hash/sha":311,"./hash/utils":318,dup:86}],308:[function(t,e,r){arguments[4][87][0].apply(r,arguments)},{"./utils":318,dup:87,"minimalistic-assert":325}],309:[function(t,e,r){arguments[4][88][0].apply(r,arguments)},{"./utils":318,dup:88,"minimalistic-assert":325}],310:[function(t,e,r){arguments[4][89][0].apply(r,arguments)},{"./common":308,"./utils":318,dup:89}],311:[function(t,e,r){arguments[4][90][0].apply(r,arguments)},{"./sha/1":312,"./sha/224":313,"./sha/256":314,"./sha/384":315,"./sha/512":316,dup:90}],312:[function(t,e,r){arguments[4][91][0].apply(r,arguments)},{"../common":308,"../utils":318,"./common":317,dup:91}],313:[function(t,e,r){arguments[4][92][0].apply(r,arguments)},{"../utils":318,"./256":314,dup:92}],314:[function(t,e,r){arguments[4][93][0].apply(r,arguments)},{"../common":308,"../utils":318,"./common":317,dup:93,"minimalistic-assert":325}],315:[function(t,e,r){arguments[4][94][0].apply(r,arguments)},{"../utils":318,"./512":316,dup:94}],316:[function(t,e,r){arguments[4][95][0].apply(r,arguments)},{"../common":308,"../utils":318,dup:95,"minimalistic-assert":325}],317:[function(t,e,r){arguments[4][96][0].apply(r,arguments)},{"../utils":318,dup:96}],318:[function(t,e,r){arguments[4][97][0].apply(r,arguments)},{dup:97,inherits:320,"minimalistic-assert":325}],319:[function(t,e,r){arguments[4][98][0].apply(r,arguments)},{dup:98,"hash.js":307,"minimalistic-assert":325,"minimalistic-crypto-utils":326}],320:[function(t,e,r){arguments[4][101][0].apply(r,arguments)},{dup:101}],321:[function(t,e,r){(function(r){function n(){f.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function i(t,e){return t<>>32-e}function o(t,e,r,n,o,s,a){return i(t+(e&r|~e&n)+o+s|0,a)+e|0}function s(t,e,r,n,o,s,a){return i(t+(e&n|r&~n)+o+s|0,a)+e|0}function a(t,e,r,n,o,s,a){return i(t+(e^r^n)+o+s|0,a)+e|0}function u(t,e,r,n,o,s,a){return i(t+(r^(e|~n))+o+s|0,a)+e|0}var c=t("inherits"),f=t("hash-base"),h=new Array(16);c(n,f),n.prototype._update=function(){for(var t=h,e=0;e<16;++e)t[e]=this._block.readInt32LE(4*e);var r=this._a,n=this._b,i=this._c,c=this._d;n=u(n=u(n=u(n=u(n=a(n=a(n=a(n=a(n=s(n=s(n=s(n=s(n=o(n=o(n=o(n=o(n,i=o(i,c=o(c,r=o(r,n,i,c,t[0],3614090360,7),n,i,t[1],3905402710,12),r,n,t[2],606105819,17),c,r,t[3],3250441966,22),i=o(i,c=o(c,r=o(r,n,i,c,t[4],4118548399,7),n,i,t[5],1200080426,12),r,n,t[6],2821735955,17),c,r,t[7],4249261313,22),i=o(i,c=o(c,r=o(r,n,i,c,t[8],1770035416,7),n,i,t[9],2336552879,12),r,n,t[10],4294925233,17),c,r,t[11],2304563134,22),i=o(i,c=o(c,r=o(r,n,i,c,t[12],1804603682,7),n,i,t[13],4254626195,12),r,n,t[14],2792965006,17),c,r,t[15],1236535329,22),i=s(i,c=s(c,r=s(r,n,i,c,t[1],4129170786,5),n,i,t[6],3225465664,9),r,n,t[11],643717713,14),c,r,t[0],3921069994,20),i=s(i,c=s(c,r=s(r,n,i,c,t[5],3593408605,5),n,i,t[10],38016083,9),r,n,t[15],3634488961,14),c,r,t[4],3889429448,20),i=s(i,c=s(c,r=s(r,n,i,c,t[9],568446438,5),n,i,t[14],3275163606,9),r,n,t[3],4107603335,14),c,r,t[8],1163531501,20),i=s(i,c=s(c,r=s(r,n,i,c,t[13],2850285829,5),n,i,t[2],4243563512,9),r,n,t[7],1735328473,14),c,r,t[12],2368359562,20),i=a(i,c=a(c,r=a(r,n,i,c,t[5],4294588738,4),n,i,t[8],2272392833,11),r,n,t[11],1839030562,16),c,r,t[14],4259657740,23),i=a(i,c=a(c,r=a(r,n,i,c,t[1],2763975236,4),n,i,t[4],1272893353,11),r,n,t[7],4139469664,16),c,r,t[10],3200236656,23),i=a(i,c=a(c,r=a(r,n,i,c,t[13],681279174,4),n,i,t[0],3936430074,11),r,n,t[3],3572445317,16),c,r,t[6],76029189,23),i=a(i,c=a(c,r=a(r,n,i,c,t[9],3654602809,4),n,i,t[12],3873151461,11),r,n,t[15],530742520,16),c,r,t[2],3299628645,23),i=u(i,c=u(c,r=u(r,n,i,c,t[0],4096336452,6),n,i,t[7],1126891415,10),r,n,t[14],2878612391,15),c,r,t[5],4237533241,21),i=u(i,c=u(c,r=u(r,n,i,c,t[12],1700485571,6),n,i,t[3],2399980690,10),r,n,t[10],4293915773,15),c,r,t[1],2240044497,21),i=u(i,c=u(c,r=u(r,n,i,c,t[8],1873313359,6),n,i,t[15],4264355552,10),r,n,t[6],2734768916,15),c,r,t[13],1309151649,21),i=u(i,c=u(c,r=u(r,n,i,c,t[4],4149444226,6),n,i,t[11],3174756917,10),r,n,t[2],718787259,15),c,r,t[9],3951481745,21),this._a=this._a+r|0,this._b=this._b+n|0,this._c=this._c+i|0,this._d=this._d+c|0},n.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=new r(16);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t},e.exports=n}).call(this,t("buffer").Buffer)},{buffer:47,"hash-base":322,inherits:320}],322:[function(t,e,r){arguments[4][105][0].apply(r,arguments)},{dup:105,inherits:320,"safe-buffer":347,stream:152}],323:[function(t,e,r){arguments[4][106][0].apply(r,arguments)},{"bn.js":324,brorand:230,dup:106}],324:[function(t,e,r){arguments[4][228][0].apply(r,arguments)},{buffer:17,dup:228}],325:[function(t,e,r){arguments[4][107][0].apply(r,arguments)},{dup:107}],326:[function(t,e,r){arguments[4][108][0].apply(r,arguments)},{dup:108}],327:[function(t,e,r){arguments[4][109][0].apply(r,arguments)},{dup:109}],328:[function(t,e,r){arguments[4][110][0].apply(r,arguments)},{"./certificate":329,"asn1.js":214,dup:110}],329:[function(t,e,r){arguments[4][111][0].apply(r,arguments)},{"asn1.js":214,dup:111}],330:[function(t,e,r){(function(r){var n=/Proc-Type: 4,ENCRYPTED\n\r?DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)\n\r?\n\r?([0-9A-z\n\r\+\/\=]+)\n\r?/m,i=/^-----BEGIN ((?:.* KEY)|CERTIFICATE)-----\n/m,o=/^-----BEGIN ((?:.* KEY)|CERTIFICATE)-----\n\r?([0-9A-z\n\r\+\/\=]+)\n\r?-----END \1-----$/m,s=t("evp_bytestokey"),a=t("browserify-aes");e.exports=function(t,e){var u,c=t.toString(),f=c.match(n);if(f){var h="aes"+f[1],l=new r(f[2],"hex"),d=new r(f[3].replace(/\r?\n/g,""),"base64"),p=s(e,l.slice(0,8),parseInt(f[1],10)).key,m=[],b=a.createDecipheriv(h,p,l);m.push(b.update(d)),m.push(b.final()),u=r.concat(m)}else{var v=c.match(o);u=new r(v[2].replace(/\r?\n/g,""),"base64")}return{tag:c.match(i)[1],data:u}}}).call(this,t("buffer").Buffer)},{"browserify-aes":233,buffer:47,evp_bytestokey:305}],331:[function(t,e,r){(function(r){function n(t){var e;"object"!==(void 0===t?"undefined":_typeof(t))||r.isBuffer(t)||(e=t.passphrase,t=t.key),"string"==typeof t&&(t=new r(t));var n,c,f=s(t,e),h=f.tag,l=f.data;switch(h){case"CERTIFICATE":c=i.certificate.decode(l,"der").tbsCertificate.subjectPublicKeyInfo;case"PUBLIC KEY":switch(c||(c=i.PublicKey.decode(l,"der")),n=c.algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return i.RSAPublicKey.decode(c.subjectPublicKey.data,"der");case"1.2.840.10045.2.1":return c.subjectPrivateKey=c.subjectPublicKey,{type:"ec",data:c};case"1.2.840.10040.4.1":return c.algorithm.params.pub_key=i.DSAparam.decode(c.subjectPublicKey.data,"der"),{type:"dsa",data:c.algorithm.params};default:throw new Error("unknown key id "+n)}throw new Error("unknown key type "+h);case"ENCRYPTED PRIVATE KEY":l=function(t,e){var n=t.algorithm.decrypt.kde.kdeparams.salt,i=parseInt(t.algorithm.decrypt.kde.kdeparams.iters.toString(),10),s=o[t.algorithm.decrypt.cipher.algo.join(".")],c=t.algorithm.decrypt.cipher.iv,f=t.subjectPrivateKey,h=parseInt(s.split("-")[1],10)/8,l=u.pbkdf2Sync(e,n,i,h),d=a.createDecipheriv(s,l,c),p=[];return p.push(d.update(f)),p.push(d.final()),r.concat(p)}(l=i.EncryptedPrivateKey.decode(l,"der"),e);case"PRIVATE KEY":switch(c=i.PrivateKey.decode(l,"der"),n=c.algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return i.RSAPrivateKey.decode(c.subjectPrivateKey,"der");case"1.2.840.10045.2.1":return{curve:c.algorithm.curve,privateKey:i.ECPrivateKey.decode(c.subjectPrivateKey,"der").privateKey};case"1.2.840.10040.4.1":return c.algorithm.params.priv_key=i.DSAparam.decode(c.subjectPrivateKey,"der"),{type:"dsa",params:c.algorithm.params};default:throw new Error("unknown key id "+n)}throw new Error("unknown key type "+h);case"RSA PUBLIC KEY":return i.RSAPublicKey.decode(l,"der");case"RSA PRIVATE KEY":return i.RSAPrivateKey.decode(l,"der");case"DSA PRIVATE KEY":return{type:"dsa",params:i.DSAPrivateKey.decode(l,"der")};case"EC PRIVATE KEY":return l=i.ECPrivateKey.decode(l,"der"),{curve:l.parameters.value,privateKey:l.privateKey};default:throw new Error("unknown key type "+h)}}var i=t("./asn1"),o=t("./aesid.json"),s=t("./fixProc"),a=t("browserify-aes"),u=t("pbkdf2");e.exports=n,n.signature=i.signature}).call(this,t("buffer").Buffer)},{"./aesid.json":327,"./asn1":328,"./fixProc":330,"browserify-aes":233,buffer:47,pbkdf2:332}],332:[function(t,e,r){arguments[4][114][0].apply(r,arguments)},{"./lib/async":333,"./lib/sync":336,dup:114}],333:[function(t,e,r){(function(r,n){function i(t,e,r,n,i){return f.importKey("raw",t,{name:"PBKDF2"},!1,["deriveBits"]).then(function(t){return f.deriveBits({name:"PBKDF2",salt:e,iterations:r,hash:{name:i}},t,n<<3)}).then(function(t){return c.from(t)})}var o,s=t("./precondition"),a=t("./default-encoding"),u=t("./sync"),c=t("safe-buffer").Buffer,f=n.crypto&&n.crypto.subtle,h={sha:"SHA-1","sha-1":"SHA-1",sha1:"SHA-1",sha256:"SHA-256","sha-256":"SHA-256",sha384:"SHA-384","sha-384":"SHA-384","sha-512":"SHA-512",sha512:"SHA-512"},l=[];e.exports=function(t,e,d,p,m,b){if(c.isBuffer(t)||(t=c.from(t,a)),c.isBuffer(e)||(e=c.from(e,a)),s(d,p),"function"==typeof m&&(b=m,m=void 0),"function"!=typeof b)throw new Error("No callback provided to pbkdf2");var v=h[(m=m||"sha1").toLowerCase()];if(!v||"function"!=typeof n.Promise)return r.nextTick(function(){var r;try{r=u(t,e,d,p,m)}catch(t){return b(t)}b(null,r)});!function(t,e){t.then(function(t){r.nextTick(function(){e(null,t)})},function(t){r.nextTick(function(){e(t)})})}(function(t){if(n.process&&!n.process.browser)return Promise.resolve(!1);if(!f||!f.importKey||!f.deriveBits)return Promise.resolve(!1);if(void 0!==l[t])return l[t];var e=i(o=o||c.alloc(8),o,10,128,t).then(function(){return!0}).catch(function(){return!1});return l[t]=e,e}(v).then(function(r){return r?i(t,e,d,p,v):u(t,e,d,p,m)}),b)}}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./default-encoding":334,"./precondition":335,"./sync":336,_process:120,"safe-buffer":347}],334:[function(t,e,r){(function(t){var r;if(t.browser)r="utf-8";else{r=parseInt(t.version.split(".")[0].slice(1),10)>=6?"utf-8":"binary"}e.exports=r}).call(this,t("_process"))},{_process:120}],335:[function(t,e,r){arguments[4][117][0].apply(r,arguments)},{dup:117}],336:[function(t,e,r){arguments[4][118][0].apply(r,arguments)},{"./default-encoding":334,"./precondition":335,"create-hash/md5":266,dup:118,ripemd160:346,"safe-buffer":347,"sha.js":351}],337:[function(t,e,r){arguments[4][121][0].apply(r,arguments)},{"./privateDecrypt":340,"./publicEncrypt":341,dup:121}],338:[function(t,e,r){(function(r){var n=t("create-hash");e.exports=function(t,e){for(var i,o=new r(""),s=0;o.lengthh||new a(e).cmp(c.modulus)>=0)throw new Error("decryption error");var l;l=o?f(new a(e),c):u(e,c);var d=new r(h-l.length);if(d.fill(0),l=r.concat([d,l],h),4===s)return n(c,l);if(1===s)return function(t,e,r){for(var n=e.slice(0,2),i=2,o=0;0!==e[i++];)if(i>=e.length){o++;break}var s=e.slice(2,i-1);if(e.slice(i-1,i),("0002"!==n.toString("hex")&&!r||"0001"!==n.toString("hex")&&r)&&o++,s.length<8&&o++,o)throw new Error("decryption error");return e.slice(i)}(0,l,o);if(3===s)return l;throw new Error("unknown padding")}}).call(this,t("buffer").Buffer)},{"./mgf":338,"./withPublic":342,"./xor":343,"bn.js":339,"browserify-rsa":251,buffer:47,"create-hash":264,"parse-asn1":331}],341:[function(t,e,r){(function(r){function n(t,e,n){var i=e.length,s=t.modulus.byteLength();if(i>s-11)throw new Error("message too long");var a;return n?(a=new r(s-i-3)).fill(255):a=function(t,e){var n,i=new r(t),s=0,a=o(2*t),u=0;for(;sn-l-2)throw new Error("message too long");var d=new r(n-i-l-2);d.fill(0);var p=n-h-1,m=o(h),b=u(r.concat([f,d,new r([1]),e],p),a(m,p)),v=u(m,a(b,h));return new c(r.concat([new r([0]),v,b],n))}(m,e);else if(1===d)p=n(m,e,l);else{if(3!==d)throw new Error("unknown padding");if((p=new c(e)).cmp(m.modulus)>=0)throw new Error("data too long for modulus")}return l?h(p,m):f(p,m)}}).call(this,t("buffer").Buffer)},{"./mgf":338,"./withPublic":342,"./xor":343,"bn.js":339,"browserify-rsa":251,buffer:47,"create-hash":264,"parse-asn1":331,randombytes:344}],342:[function(t,e,r){(function(r){var n=t("bn.js");e.exports=function(t,e){return new r(t.toRed(n.mont(e.modulus)).redPow(new n(e.publicExponent)).fromRed().toArray())}}).call(this,t("buffer").Buffer)},{"bn.js":339,buffer:47}],343:[function(t,e,r){arguments[4][126][0].apply(r,arguments)},{dup:126}],344:[function(t,e,r){(function(r,n){var i=t("safe-buffer").Buffer,o=n.crypto||n.msCrypto;o&&o.getRandomValues?e.exports=function(t,e){if(t>65536)throw new Error("requested too many random bytes");var s=new n.Uint8Array(t);t>0&&o.getRandomValues(s);var a=i.from(s.buffer);return"function"==typeof e?r.nextTick(function(){e(null,a)}):a}:e.exports=function(){throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11")}}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:120,"safe-buffer":347}],345:[function(t,e,r){(function(e,n){function i(){throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11")}function o(t,e){if("number"!=typeof t||t!=t)throw new TypeError("offset must be a number");if(t>d||t<0)throw new TypeError("offset must be a uint32");if(t>h||t>e)throw new RangeError("offset out of range")}function s(t,e,r){if("number"!=typeof t||t!=t)throw new TypeError("size must be a number");if(t>d||t<0)throw new TypeError("size must be a uint32");if(t+e>r||t>h)throw new RangeError("buffer too small")}function a(t,r,n,i){if(e.browser){var o=t.buffer,s=new Uint8Array(o,r,n);return l.getRandomValues(s),i?void e.nextTick(function(){i(null,t)}):t}{if(!i){return c(n).copy(t,r),t}c(n,function(e,n){if(e)return i(e);n.copy(t,r),i(null,t)})}}var u=t("safe-buffer"),c=t("randombytes"),f=u.Buffer,h=u.kMaxLength,l=n.crypto||n.msCrypto,d=Math.pow(2,32)-1;l&&l.getRandomValues||!e.browser?(r.randomFill=function(t,e,r,i){if(!(f.isBuffer(t)||t instanceof n.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if("function"==typeof e)i=e,e=0,r=t.length;else if("function"==typeof r)i=r,r=t.length-e;else if("function"!=typeof i)throw new TypeError('"cb" argument must be a function');return o(e,t.length),s(r,e,t.length),a(t,e,r,i)},r.randomFillSync=function(t,e,r){if(void 0===e&&(e=0),!(f.isBuffer(t)||t instanceof n.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return o(e,t.length),void 0===r&&(r=t.length-e),s(r,e,t.length),a(t,e,r)}):(r.randomFill=i,r.randomFillSync=i)}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:120,randombytes:344,"safe-buffer":347}],346:[function(t,e,r){(function(r){function n(){h.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function i(t,e){return t<>>32-e}function o(t,e,r,n,o,s,a,u){return i(t+(e^r^n)+s+a|0,u)+o|0}function s(t,e,r,n,o,s,a,u){return i(t+(e&r|~e&n)+s+a|0,u)+o|0}function a(t,e,r,n,o,s,a,u){return i(t+((e|~r)^n)+s+a|0,u)+o|0}function u(t,e,r,n,o,s,a,u){return i(t+(e&n|r&~n)+s+a|0,u)+o|0}function c(t,e,r,n,o,s,a,u){return i(t+(e^(r|~n))+s+a|0,u)+o|0}var f=t("inherits"),h=t("hash-base");f(n,h),n.prototype._update=function(){for(var t=new Array(16),e=0;e<16;++e)t[e]=this._block.readInt32LE(4*e);var r=this._a,n=this._b,f=this._c,h=this._d,l=this._e;l=o(l,r=o(r,n,f,h,l,t[0],0,11),n,f=i(f,10),h,t[1],0,14),n=o(n=i(n,10),f=o(f,h=o(h,l,r,n,f,t[2],0,15),l,r=i(r,10),n,t[3],0,12),h,l=i(l,10),r,t[4],0,5),h=o(h=i(h,10),l=o(l,r=o(r,n,f,h,l,t[5],0,8),n,f=i(f,10),h,t[6],0,7),r,n=i(n,10),f,t[7],0,9),r=o(r=i(r,10),n=o(n,f=o(f,h,l,r,n,t[8],0,11),h,l=i(l,10),r,t[9],0,13),f,h=i(h,10),l,t[10],0,14),f=o(f=i(f,10),h=o(h,l=o(l,r,n,f,h,t[11],0,15),r,n=i(n,10),f,t[12],0,6),l,r=i(r,10),n,t[13],0,7),l=s(l=i(l,10),r=o(r,n=o(n,f,h,l,r,t[14],0,9),f,h=i(h,10),l,t[15],0,8),n,f=i(f,10),h,t[7],1518500249,7),n=s(n=i(n,10),f=s(f,h=s(h,l,r,n,f,t[4],1518500249,6),l,r=i(r,10),n,t[13],1518500249,8),h,l=i(l,10),r,t[1],1518500249,13),h=s(h=i(h,10),l=s(l,r=s(r,n,f,h,l,t[10],1518500249,11),n,f=i(f,10),h,t[6],1518500249,9),r,n=i(n,10),f,t[15],1518500249,7),r=s(r=i(r,10),n=s(n,f=s(f,h,l,r,n,t[3],1518500249,15),h,l=i(l,10),r,t[12],1518500249,7),f,h=i(h,10),l,t[0],1518500249,12),f=s(f=i(f,10),h=s(h,l=s(l,r,n,f,h,t[9],1518500249,15),r,n=i(n,10),f,t[5],1518500249,9),l,r=i(r,10),n,t[2],1518500249,11),l=s(l=i(l,10),r=s(r,n=s(n,f,h,l,r,t[14],1518500249,7),f,h=i(h,10),l,t[11],1518500249,13),n,f=i(f,10),h,t[8],1518500249,12),n=a(n=i(n,10),f=a(f,h=a(h,l,r,n,f,t[3],1859775393,11),l,r=i(r,10),n,t[10],1859775393,13),h,l=i(l,10),r,t[14],1859775393,6),h=a(h=i(h,10),l=a(l,r=a(r,n,f,h,l,t[4],1859775393,7),n,f=i(f,10),h,t[9],1859775393,14),r,n=i(n,10),f,t[15],1859775393,9),r=a(r=i(r,10),n=a(n,f=a(f,h,l,r,n,t[8],1859775393,13),h,l=i(l,10),r,t[1],1859775393,15),f,h=i(h,10),l,t[2],1859775393,14),f=a(f=i(f,10),h=a(h,l=a(l,r,n,f,h,t[7],1859775393,8),r,n=i(n,10),f,t[0],1859775393,13),l,r=i(r,10),n,t[6],1859775393,6),l=a(l=i(l,10),r=a(r,n=a(n,f,h,l,r,t[13],1859775393,5),f,h=i(h,10),l,t[11],1859775393,12),n,f=i(f,10),h,t[5],1859775393,7),n=u(n=i(n,10),f=u(f,h=a(h,l,r,n,f,t[12],1859775393,5),l,r=i(r,10),n,t[1],2400959708,11),h,l=i(l,10),r,t[9],2400959708,12),h=u(h=i(h,10),l=u(l,r=u(r,n,f,h,l,t[11],2400959708,14),n,f=i(f,10),h,t[10],2400959708,15),r,n=i(n,10),f,t[0],2400959708,14),r=u(r=i(r,10),n=u(n,f=u(f,h,l,r,n,t[8],2400959708,15),h,l=i(l,10),r,t[12],2400959708,9),f,h=i(h,10),l,t[4],2400959708,8),f=u(f=i(f,10),h=u(h,l=u(l,r,n,f,h,t[13],2400959708,9),r,n=i(n,10),f,t[3],2400959708,14),l,r=i(r,10),n,t[7],2400959708,5),l=u(l=i(l,10),r=u(r,n=u(n,f,h,l,r,t[15],2400959708,6),f,h=i(h,10),l,t[14],2400959708,8),n,f=i(f,10),h,t[5],2400959708,6),n=c(n=i(n,10),f=u(f,h=u(h,l,r,n,f,t[6],2400959708,5),l,r=i(r,10),n,t[2],2400959708,12),h,l=i(l,10),r,t[4],2840853838,9),h=c(h=i(h,10),l=c(l,r=c(r,n,f,h,l,t[0],2840853838,15),n,f=i(f,10),h,t[5],2840853838,5),r,n=i(n,10),f,t[9],2840853838,11),r=c(r=i(r,10),n=c(n,f=c(f,h,l,r,n,t[7],2840853838,6),h,l=i(l,10),r,t[12],2840853838,8),f,h=i(h,10),l,t[2],2840853838,13),f=c(f=i(f,10),h=c(h,l=c(l,r,n,f,h,t[10],2840853838,12),r,n=i(n,10),f,t[14],2840853838,5),l,r=i(r,10),n,t[1],2840853838,12),l=c(l=i(l,10),r=c(r,n=c(n,f,h,l,r,t[3],2840853838,13),f,h=i(h,10),l,t[8],2840853838,14),n,f=i(f,10),h,t[11],2840853838,11),n=c(n=i(n,10),f=c(f,h=c(h,l,r,n,f,t[6],2840853838,8),l,r=i(r,10),n,t[15],2840853838,5),h,l=i(l,10),r,t[13],2840853838,6),h=i(h,10);var d=this._a,p=this._b,m=this._c,b=this._d,v=this._e;v=c(v,d=c(d,p,m,b,v,t[5],1352829926,8),p,m=i(m,10),b,t[14],1352829926,9),p=c(p=i(p,10),m=c(m,b=c(b,v,d,p,m,t[7],1352829926,9),v,d=i(d,10),p,t[0],1352829926,11),b,v=i(v,10),d,t[9],1352829926,13),b=c(b=i(b,10),v=c(v,d=c(d,p,m,b,v,t[2],1352829926,15),p,m=i(m,10),b,t[11],1352829926,15),d,p=i(p,10),m,t[4],1352829926,5),d=c(d=i(d,10),p=c(p,m=c(m,b,v,d,p,t[13],1352829926,7),b,v=i(v,10),d,t[6],1352829926,7),m,b=i(b,10),v,t[15],1352829926,8),m=c(m=i(m,10),b=c(b,v=c(v,d,p,m,b,t[8],1352829926,11),d,p=i(p,10),m,t[1],1352829926,14),v,d=i(d,10),p,t[10],1352829926,14),v=u(v=i(v,10),d=c(d,p=c(p,m,b,v,d,t[3],1352829926,12),m,b=i(b,10),v,t[12],1352829926,6),p,m=i(m,10),b,t[6],1548603684,9),p=u(p=i(p,10),m=u(m,b=u(b,v,d,p,m,t[11],1548603684,13),v,d=i(d,10),p,t[3],1548603684,15),b,v=i(v,10),d,t[7],1548603684,7),b=u(b=i(b,10),v=u(v,d=u(d,p,m,b,v,t[0],1548603684,12),p,m=i(m,10),b,t[13],1548603684,8),d,p=i(p,10),m,t[5],1548603684,9),d=u(d=i(d,10),p=u(p,m=u(m,b,v,d,p,t[10],1548603684,11),b,v=i(v,10),d,t[14],1548603684,7),m,b=i(b,10),v,t[15],1548603684,7),m=u(m=i(m,10),b=u(b,v=u(v,d,p,m,b,t[8],1548603684,12),d,p=i(p,10),m,t[12],1548603684,7),v,d=i(d,10),p,t[4],1548603684,6),v=u(v=i(v,10),d=u(d,p=u(p,m,b,v,d,t[9],1548603684,15),m,b=i(b,10),v,t[1],1548603684,13),p,m=i(m,10),b,t[2],1548603684,11),p=a(p=i(p,10),m=a(m,b=a(b,v,d,p,m,t[15],1836072691,9),v,d=i(d,10),p,t[5],1836072691,7),b,v=i(v,10),d,t[1],1836072691,15),b=a(b=i(b,10),v=a(v,d=a(d,p,m,b,v,t[3],1836072691,11),p,m=i(m,10),b,t[7],1836072691,8),d,p=i(p,10),m,t[14],1836072691,6),d=a(d=i(d,10),p=a(p,m=a(m,b,v,d,p,t[6],1836072691,6),b,v=i(v,10),d,t[9],1836072691,14),m,b=i(b,10),v,t[11],1836072691,12),m=a(m=i(m,10),b=a(b,v=a(v,d,p,m,b,t[8],1836072691,13),d,p=i(p,10),m,t[12],1836072691,5),v,d=i(d,10),p,t[2],1836072691,14),v=a(v=i(v,10),d=a(d,p=a(p,m,b,v,d,t[10],1836072691,13),m,b=i(b,10),v,t[0],1836072691,13),p,m=i(m,10),b,t[4],1836072691,7),p=s(p=i(p,10),m=s(m,b=a(b,v,d,p,m,t[13],1836072691,5),v,d=i(d,10),p,t[8],2053994217,15),b,v=i(v,10),d,t[6],2053994217,5),b=s(b=i(b,10),v=s(v,d=s(d,p,m,b,v,t[4],2053994217,8),p,m=i(m,10),b,t[1],2053994217,11),d,p=i(p,10),m,t[3],2053994217,14),d=s(d=i(d,10),p=s(p,m=s(m,b,v,d,p,t[11],2053994217,14),b,v=i(v,10),d,t[15],2053994217,6),m,b=i(b,10),v,t[0],2053994217,14),m=s(m=i(m,10),b=s(b,v=s(v,d,p,m,b,t[5],2053994217,6),d,p=i(p,10),m,t[12],2053994217,9),v,d=i(d,10),p,t[2],2053994217,12),v=s(v=i(v,10),d=s(d,p=s(p,m,b,v,d,t[13],2053994217,9),m,b=i(b,10),v,t[9],2053994217,12),p,m=i(m,10),b,t[7],2053994217,5),p=o(p=i(p,10),m=s(m,b=s(b,v,d,p,m,t[10],2053994217,15),v,d=i(d,10),p,t[14],2053994217,8),b,v=i(v,10),d,t[12],0,8),b=o(b=i(b,10),v=o(v,d=o(d,p,m,b,v,t[15],0,5),p,m=i(m,10),b,t[10],0,12),d,p=i(p,10),m,t[4],0,9),d=o(d=i(d,10),p=o(p,m=o(m,b,v,d,p,t[1],0,12),b,v=i(v,10),d,t[5],0,5),m,b=i(b,10),v,t[8],0,14),m=o(m=i(m,10),b=o(b,v=o(v,d,p,m,b,t[7],0,6),d,p=i(p,10),m,t[6],0,8),v,d=i(d,10),p,t[2],0,13),v=o(v=i(v,10),d=o(d,p=o(p,m,b,v,d,t[13],0,6),m,b=i(b,10),v,t[14],0,5),p,m=i(m,10),b,t[0],0,15),p=o(p=i(p,10),m=o(m,b=o(b,v,d,p,m,t[3],0,13),v,d=i(d,10),p,t[9],0,11),b,v=i(v,10),d,t[11],0,11),b=i(b,10);var y=this._b+f+b|0;this._b=this._c+h+v|0,this._c=this._d+l+d|0,this._d=this._e+r+p|0,this._e=this._a+n+m|0,this._a=y},n.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=new r(20);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t.writeInt32LE(this._e,16),t},e.exports=n}).call(this,t("buffer").Buffer)},{buffer:47,"hash-base":306,inherits:320}],347:[function(t,e,r){arguments[4][143][0].apply(r,arguments)},{buffer:47,dup:143}],348:[function(t,e,r){e.exports=t("scryptsy")},{scryptsy:349}],349:[function(t,e,r){(function(r){function n(t,e,n,i,o){if(r.isBuffer(t)&&r.isBuffer(n))t.copy(n,i,e,e+o);else for(;o--;)n[i++]=t[e++]}var i=t("pbkdf2").pbkdf2Sync,o=2147483647;e.exports=function(t,e,s,a,u,c,f){function h(t,e,r,i){var o;for(n(t,e+64*(2*i-1),g,0,64),o=0;o<2*i;o++)d(t,64*o,g,0,64),function(t){var e;for(e=0;e<16;e++)v[e]=(255&t[4*e+0])<<0,v[e]|=(255&t[4*e+1])<<8,v[e]|=(255&t[4*e+2])<<16,v[e]|=(255&t[4*e+3])<<24;for(n(v,0,y,0,16),e=8;e>0;e-=2)y[4]^=l(y[0]+y[12],7),y[8]^=l(y[4]+y[0],9),y[12]^=l(y[8]+y[4],13),y[0]^=l(y[12]+y[8],18),y[9]^=l(y[5]+y[1],7),y[13]^=l(y[9]+y[5],9),y[1]^=l(y[13]+y[9],13),y[5]^=l(y[1]+y[13],18),y[14]^=l(y[10]+y[6],7),y[2]^=l(y[14]+y[10],9),y[6]^=l(y[2]+y[14],13),y[10]^=l(y[6]+y[2],18),y[3]^=l(y[15]+y[11],7),y[7]^=l(y[3]+y[15],9),y[11]^=l(y[7]+y[3],13),y[15]^=l(y[11]+y[7],18),y[1]^=l(y[0]+y[3],7),y[2]^=l(y[1]+y[0],9),y[3]^=l(y[2]+y[1],13),y[0]^=l(y[3]+y[2],18),y[6]^=l(y[5]+y[4],7),y[7]^=l(y[6]+y[5],9),y[4]^=l(y[7]+y[6],13),y[5]^=l(y[4]+y[7],18),y[11]^=l(y[10]+y[9],7),y[8]^=l(y[11]+y[10],9),y[9]^=l(y[8]+y[11],13),y[10]^=l(y[9]+y[8],18),y[12]^=l(y[15]+y[14],7),y[13]^=l(y[12]+y[15],9),y[14]^=l(y[13]+y[12],13),y[15]^=l(y[14]+y[13],18);for(e=0;e<16;++e)v[e]=y[e]+v[e];for(e=0;e<16;e++){var r=4*e;t[r+0]=v[e]>>0&255,t[r+1]=v[e]>>8&255,t[r+2]=v[e]>>16&255,t[r+3]=v[e]>>24&255}}(g),n(g,0,t,r+64*o,64);for(o=0;o>>32-e}function d(t,e,r,n,i){for(var o=0;o 0 and a power of 2");if(s>o/128/a)throw Error("Parameter N is too large");if(a>o/128/u)throw Error("Parameter r is too large");var p,m=new r(256*a),b=new r(128*a*s),v=new Int32Array(16),y=new Int32Array(16),g=new r(64),_=i(t,e,1,128*u*a,"sha256");if(f){var w=u*s*2,M=0;p=function(){++M%1e3==0&&f({current:M,total:w,percent:M/w*100})}}for(var k=0;k>>((3&e)<<3)&255;return i}}e.exports=r}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],360:[function(t,e,r){function n(t,e){var r=e||0,n=s;return n[t[r++]]+n[t[r++]]+n[t[r++]]+n[t[r++]]+"-"+n[t[r++]]+n[t[r++]]+"-"+n[t[r++]]+n[t[r++]]+"-"+n[t[r++]]+n[t[r++]]+"-"+n[t[r++]]+n[t[r++]]+n[t[r++]]+n[t[r++]]+n[t[r++]]+n[t[r++]]}function i(t,e,r){var i=e&&r||0;"string"==typeof t&&(e="binary"==t?new Array(16):null,t=null);var s=(t=t||{}).random||(t.rng||o)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,e)for(var a=0;a<16;a++)e[i+a]=s[a];return e||n(s)}for(var o=t("./rng"),s=[],a={},u=0;u<256;u++)s[u]=(u+256).toString(16).substr(1),a[s[u]]=u;var c=o(),f=[1|c[0],c[1],c[2],c[3],c[4],c[5]],h=16383&(c[6]<<8|c[7]),l=0,d=0,p=i;p.v1=function(t,e,r){var i=e&&r||0,o=e||[],s=void 0!==(t=t||{}).clockseq?t.clockseq:h,a=void 0!==t.msecs?t.msecs:(new Date).getTime(),u=void 0!==t.nsecs?t.nsecs:d+1,c=a-l+(u-d)/1e4;if(c<0&&void 0===t.clockseq&&(s=s+1&16383),(c<0||a>l)&&void 0===t.nsecs&&(u=0),u>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");l=a,d=u,h=s;var p=(1e4*(268435455&(a+=122192928e5))+u)%4294967296;o[i++]=p>>>24&255,o[i++]=p>>>16&255,o[i++]=p>>>8&255,o[i++]=255&p;var m=a/4294967296*1e4&268435455;o[i++]=m>>>8&255,o[i++]=255&m,o[i++]=m>>>24&15|16,o[i++]=m>>>16&255,o[i++]=s>>>8|128,o[i++]=255&s;for(var b=t.node||f,v=0;v<6;v++)o[i+v]=b[v];return e||n(o)},p.v4=i,p.parse=function(t,e,r){var n=e&&r||0,i=0;for(e=e||[],t.toLowerCase().replace(/[0-9a-f]{2}/g,function(t){i<16&&(e[n+i++]=a[t])});i<16;)e[n+i++]=0;return e},p.unparse=n,e.exports=p},{"./rng":359}],361:[function(t,e,r){(function(r,n){function i(t){this._accounts=t,this.length=0,this.defaultKeyName="web3js_wallet"}var o=t("underscore"),s=t("web3-core"),a=t("web3-core-method"),u=t("bluebird"),c=t("eth-lib/lib/account"),f=t("eth-lib/lib/hash"),h=t("eth-lib/lib/rlp"),l=t("eth-lib/lib/nat"),d=t("eth-lib/lib/bytes"),p=t(void 0===r?"crypto-browserify":"crypto"),m=t("scrypt.js"),b=t("uuid"),v=t("web3-utils"),y=t("web3-core-helpers"),g=function(t){return o.isUndefined(t)||o.isNull(t)},_=function(t){for(;t&&t.startsWith("0x0");)t="0x"+t.slice(3);return t},w=function(t){return t.length%2==1&&(t=t.replace("0x","0x0")),t},M=function(){var t=this;s.packageInit(this,arguments),delete this.BatchRequest,delete this.extend;var e=[new a({name:"getId",call:"net_version",params:0,outputFormatter:v.hexToNumber}),new a({name:"getGasPrice",call:"eth_gasPrice",params:0}),new a({name:"getTransactionCount",call:"eth_getTransactionCount",params:2,inputFormatter:[function(t){if(v.isAddress(t))return t;throw new Error("Address "+t+' is not a valid address to get the "transactionCount".')},function(){return"latest"}]})];this._ethereumCall={},o.each(e,function(e){e.attachToObject(t._ethereumCall),e.setRequestManager(t._requestManager)}),this.wallet=new i(this)};M.prototype._addAccountFunctions=function(t){var e=this;return t.signTransaction=function(r,n){return e.signTransaction(r,t.privateKey,n)},t.sign=function(r){return e.sign(r,t.privateKey)},t.encrypt=function(r,n){return e.encrypt(t.privateKey,r,n)},t},M.prototype.create=function(t){return this._addAccountFunctions(c.create(t||v.randomHex(32)))},M.prototype.privateKeyToAccount=function(t){return this._addAccountFunctions(c.fromPrivate(t))},M.prototype.signTransaction=function(t,e,r){function n(t){if(!t.gas&&!t.gasLimit)throw new Error('"gas" is missing');var n={nonce:v.numberToHex(t.nonce),to:t.to?y.formatters.inputAddressFormatter(t.to):"0x",data:t.data||"0x",value:t.value?v.numberToHex(t.value):"0x",gas:v.numberToHex(t.gasLimit||t.gas),gasPrice:v.numberToHex(t.gasPrice),chainId:v.numberToHex(t.chainId)},i=h.encode([d.fromNat(n.nonce),d.fromNat(n.gasPrice),d.fromNat(n.gas),n.to.toLowerCase(),d.fromNat(n.value),n.data,d.fromNat(n.chainId||"0x1"),"0x","0x"]),s=f.keccak256(i),a=c.makeSigner(2*l.toNumber(n.chainId||"0x1")+35)(f.keccak256(i),e),u=h.decode(i).slice(0,6).concat(c.decodeSignature(a));u[7]=w(_(u[7])),u[8]=w(_(u[8]));var p=h.encode(u),m=h.decode(p),b={messageHash:s,v:_(m[6]),r:_(m[7]),s:_(m[8]),rawTransaction:p};return o.isFunction(r)&&r(null,b),b}return void 0!==t.nonce&&void 0!==t.chainId&&void 0!==t.gasPrice?u.resolve(n(t)):u.all([g(t.chainId)?this._ethereumCall.getId():t.chainId,g(t.gasPrice)?this._ethereumCall.getGasPrice():t.gasPrice,g(t.nonce)?this._ethereumCall.getTransactionCount(this.privateKeyToAccount(e).address):t.nonce]).then(function(e){if(g(e[0])||g(e[1])||g(e[2]))throw new Error('One of the values "chainId", "gasPrice", or "nonce" couldn\'t be fetched: '+JSON.stringify(e));return n(o.extend(t,{chainId:e[0],gasPrice:e[1],nonce:e[2]}))})},M.prototype.recoverTransaction=function(t){var e=h.decode(t),r=c.encodeSignature(e.slice(6,9)),n=d.toNumber(e[6]),i=n<35?[]:[d.fromNumber(n-35>>1),"0x","0x"],o=e.slice(0,6).concat(i),s=h.encode(o);return c.recover(f.keccak256(s),r)},M.prototype.hashMessage=function(t){var e=v.isHexStrict(t)?v.hexToUtf8(t):t,r="Ethereum Signed Message:\n"+e.length+e;return f.keccak256s(r)},M.prototype.sign=function(t,e){var r=this.hashMessage(t),n=c.sign(r,e),i=c.decodeSignature(n);return{message:t,messageHash:r,v:i[0],r:i[1],s:i[2],signature:n}},M.prototype.recover=function(t,e){return o.isObject(t)?this.recover(t.messageHash,c.encodeSignature([t.v,t.r,t.s])):(v.isHexStrict(t)||(t=this.hashMessage(t)),4===arguments.length?this.recover(t,c.encodeSignature([].slice.call(arguments,1,4))):c.recover(t,e))},M.prototype.decrypt=function(t,e,r){if(!o.isString(e))throw new Error("No password given.");var i=o.isObject(t)?t:JSON.parse(r?t.toLowerCase():t);if(3!==i.version)throw new Error("Not a valid V3 wallet");var s,a;if("scrypt"===i.crypto.kdf)a=i.crypto.kdfparams,s=m(new n(e),new n(a.salt,"hex"),a.n,a.r,a.p,a.dklen);else{if("pbkdf2"!==i.crypto.kdf)throw new Error("Unsupported key derivation scheme");if("hmac-sha256"!==(a=i.crypto.kdfparams).prf)throw new Error("Unsupported parameters to PBKDF2");s=p.pbkdf2Sync(new n(e),new n(a.salt,"hex"),a.c,a.dklen,"sha256")}var u=new n(i.crypto.ciphertext,"hex");if(v.sha3(n.concat([s.slice(16,32),u])).replace("0x","")!==i.crypto.mac)throw new Error("Key derivation failed - possibly wrong password");var c=p.createDecipheriv(i.crypto.cipher,s.slice(0,16),new n(i.crypto.cipherparams.iv,"hex")),f="0x"+n.concat([c.update(u),c.final()]).toString("hex");return this.privateKeyToAccount(f)},M.prototype.encrypt=function(t,e,r){var i,o=this.privateKeyToAccount(t),s=(r=r||{}).salt||p.randomBytes(32),a=r.iv||p.randomBytes(16),u=r.kdf||"scrypt",c={dklen:r.dklen||32,salt:s.toString("hex")};if("pbkdf2"===u)c.c=r.c||262144,c.prf="hmac-sha256",i=p.pbkdf2Sync(new n(e),s,c.c,c.dklen,"sha256");else{if("scrypt"!==u)throw new Error("Unsupported kdf");c.n=r.n||8192,c.r=r.r||8,c.p=r.p||1,i=m(new n(e),s,c.n,c.r,c.p,c.dklen)}var f=p.createCipheriv(r.cipher||"aes-128-ctr",i.slice(0,16),a);if(!f)throw new Error("Unsupported cipher");var h=n.concat([f.update(new n(o.privateKey.replace("0x",""),"hex")),f.final()]),l=v.sha3(n.concat([i.slice(16,32),new n(h,"hex")])).replace("0x","");return{version:3,id:b.v4({random:r.uuid||p.randomBytes(16)}),address:o.address.toLowerCase().replace("0x",""),crypto:{ciphertext:h.toString("hex"),cipherparams:{iv:a.toString("hex")},cipher:r.cipher||"aes-128-ctr",kdf:u,kdfparams:c,mac:l.toString("hex")}}},i.prototype._findSafeIndex=function(t){return t=t||0,o.has(this,t)?this._findSafeIndex(t+1):t},i.prototype._currentIndexes=function(){return Object.keys(this).map(function(t){return parseInt(t)}).filter(function(t){return t<9e20})},i.prototype.create=function(t,e){for(var r=0;r=2?e.slice(2):e;var r=h.decodeParameters(t,e);return 1===r.__length__?r[0]:(delete r.__length__,r)},l.prototype.deploy=function(t,e){if(t=t||{},t.arguments=t.arguments||[],!(t=this._getOrSetDefaultOptions(t)).data)return s._fireError(new Error('No "data" specified in neither the given options, nor the default options.'),null,null,e);var r=n.find(this.options.jsonInterface,function(t){return"constructor"===t.type})||{};return r.signature="constructor",this._createTxObject.apply({method:r,parent:this,deployData:t.data,_ethAccounts:this.constructor._ethAccounts},t.arguments)},l.prototype._generateEventOptions=function(){var t=Array.prototype.slice.call(arguments),e=this._getCallback(t),r=n.isObject(t[t.length-1])?t.pop():{},i=n.isString(t[0])?t[0]:"allevents";if(!(i="allevents"===i.toLowerCase()?{name:"ALLEVENTS",jsonInterface:this.options.jsonInterface}:this.options.jsonInterface.find(function(t){return"event"===t.type&&(t.name===i||t.signature==="0x"+i.replace("0x",""))})))throw new Error('Event "'+i.name+"\" doesn't exist in this contract.");if(!s.isAddress(this.options.address))throw new Error("This contract object doesn't have address set yet, please set an address first.");return{params:this._encodeEventABI(i,r),event:i,callback:e}},l.prototype.clone=function(){return new l(this.options.jsonInterface,this.options.address,this.options)},l.prototype.once=function(t,e,r){var i=Array.prototype.slice.call(arguments);if(!(r=this._getCallback(i)))throw new Error("Once requires a callback as the second parameter.");e&&delete e.fromBlock,this._on(t,e,function(t,e,i){i.unsubscribe(),n.isFunction(r)&&r(t,e,i)})},l.prototype._on=function(){var t=this._generateEventOptions.apply(this,arguments);this._checkListener("newListener",t.event.name,t.callback),this._checkListener("removeListener",t.event.name,t.callback);var e=new a({subscription:{params:1,inputFormatter:[u.inputLogFormatter],outputFormatter:this._decodeEventABI.bind(t.event),subscriptionHandler:function(t){t.removed?this.emit("changed",t):this.emit("data",t),n.isFunction(this.callback)&&this.callback(null,t,this)}},type:"eth",requestManager:this._requestManager});return e.subscribe("logs",t.params,t.callback||function(){}),e},l.prototype.getPastEvents=function(){var t=this._generateEventOptions.apply(this,arguments),e=new o({name:"getPastLogs",call:"eth_getLogs",params:1,inputFormatter:[u.inputLogFormatter],outputFormatter:this._decodeEventABI.bind(t.event)});e.setRequestManager(this._requestManager);var r=e.buildCall();return e=null,r(t.params,t.callback)},l.prototype._createTxObject=function(){var t=Array.prototype.slice.call(arguments),e={};if("function"===this.method.type&&(e.call=this.parent._executeMethod.bind(e,"call"),e.call.request=this.parent._executeMethod.bind(e,"call",!0)),e.send=this.parent._executeMethod.bind(e,"send"),e.send.request=this.parent._executeMethod.bind(e,"send",!0),e.encodeABI=this.parent._encodeMethodABI.bind(e),e.estimateGas=this.parent._executeMethod.bind(e,"estimate"),t&&this.method.inputs&&t.length!==this.method.inputs.length){if(this.nextMethod)return this.nextMethod.apply(null,t);throw c.InvalidNumberOfParams(t.length,this.method.inputs.length,this.method.name)}return e.arguments=t||[],e._method=this.method,e._parent=this.parent,e._ethAccounts=this.parent.constructor._ethAccounts||this._ethAccounts,this.deployData&&(e._deployData=this.deployData),e},l.prototype._processExecuteArguments=function(t,e){var r={};if(r.type=t.shift(),r.callback=this._parent._getCallback(t),"call"===r.type&&!0!==t[t.length-1]&&(n.isString(t[t.length-1])||isFinite(t[t.length-1]))&&(r.defaultBlock=t.pop()),r.options=n.isObject(t[t.length-1])?t.pop():{},r.generateRequest=!0===t[t.length-1]&&t.pop(),r.options=this._parent._getOrSetDefaultOptions(r.options),r.options.data=this.encodeABI(),!this._deployData&&!s.isAddress(this._parent.options.address))throw new Error("This contract object doesn't have address set yet, please set an address first.");return this._deployData||(r.options.to=this._parent.options.address),r.options.data?r:s._fireError(new Error("Couldn't find a matching contract method, or the number of parameters is wrong."),e.eventEmitter,e.reject,r.callback)},l.prototype._executeMethod=function(){var t=this,e=this._parent._processExecuteArguments.call(this,Array.prototype.slice.call(arguments),r),r=f("send"!==e.type),i=t.constructor._ethAccounts||t._ethAccounts;if(e.generateRequest){var a={params:[u.inputCallFormatter.call(this._parent,e.options),u.inputDefaultBlockNumberFormatter.call(this._parent,e.defaultBlock)],callback:e.callback};return"call"===e.type?(a.method="eth_call",a.format=this._parent._decodeMethodReturn.bind(null,this._method.outputs)):a.method="eth_sendTransaction",a}switch(e.type){case"estimate":return new o({name:"estimateGas",call:"eth_estimateGas",params:1,inputFormatter:[u.inputCallFormatter],outputFormatter:s.hexToNumber,requestManager:t._parent._requestManager,accounts:i,defaultAccount:t._parent.defaultAccount,defaultBlock:t._parent.defaultBlock}).createFunction()(e.options,e.callback);case"call":return new o({name:"call",call:"eth_call",params:2,inputFormatter:[u.inputCallFormatter,u.inputDefaultBlockNumberFormatter],outputFormatter:function(e){return t._parent._decodeMethodReturn(t._method.outputs,e)},requestManager:t._parent._requestManager,accounts:i,defaultAccount:t._parent.defaultAccount,defaultBlock:t._parent.defaultBlock}).createFunction()(e.options,e.defaultBlock,e.callback);case"send":if(!s.isAddress(e.options.from))return s._fireError(new Error('No "from" address specified in neither the given options, nor the default options.'),r.eventEmitter,r.reject,e.callback);if(n.isBoolean(this._method.payable)&&!this._method.payable&&e.options.value&&e.options.value>0)return s._fireError(new Error("Can not send value to non-payable contract method or constructor"),r.eventEmitter,r.reject,e.callback);var c={receiptFormatter:function(e){if(n.isArray(e.logs)){var r=n.map(e.logs,function(e){return t._parent._decodeEventABI.call({name:"ALLEVENTS",jsonInterface:t._parent.options.jsonInterface},e)});e.events={};var i=0;r.forEach(function(t){t.event?e.events[t.event]?Array.isArray(e.events[t.event])?e.events[t.event].push(t):e.events[t.event]=[e.events[t.event],t]:e.events[t.event]=t:(e.events[i]=t,i++)}),delete e.logs}return e},contractDeployFormatter:function(e){var r=t._parent.clone();return r.options.address=e.contractAddress,r}};return new o({name:"sendTransaction",call:"eth_sendTransaction",params:1,inputFormatter:[u.inputTransactionFormatter],requestManager:t._parent._requestManager,accounts:t.constructor._ethAccounts||t._ethAccounts,defaultAccount:t._parent.defaultAccount,defaultBlock:t._parent.defaultBlock,extraFormatters:c}).createFunction()(e.options,e.callback)}},e.exports=l},{underscore:362,"web3-core":200,"web3-core-helpers":184,"web3-core-method":186,"web3-core-promievent":189,"web3-core-subscriptions":197,"web3-eth-abi":204,"web3-utils":390}],364:[function(t,e,r){!function(e,r){function n(t,e){if(!t)throw new Error(e||"Assertion failed")}function i(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function o(t,e,r){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}function s(t,e,r){for(var n=0,i=Math.min(t.length,r),o=e;o=49&&s<=54?s-49+10:s>=17&&s<=22?s-17+10:15&s}return n}function a(t,e,r,n){for(var i=0,o=Math.min(t.length,r),s=e;s=49?a-49+10:a>=17?a-17+10:a}return i}function u(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],s=i*o,a=67108863&s,u=s/67108864|0;r.words[0]=a;for(var c=1;c>>26,h=67108863&u,l=Math.min(c,e.length-1),d=Math.max(0,c-t.length+1);d<=l;d++){var p=c-d|0;f+=(s=(i=0|t.words[p])*(o=0|e.words[d])+h)/67108864|0,h=67108863&s}r.words[c]=0|h,u=0|f}return 0!==u?r.words[c]=0|u:r.length--,r.strip()}function c(t,e,r){return(new f).mulp(t,e,r)}function f(t,e){this.x=t,this.y=e}function h(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function l(){h.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function d(){h.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function p(){h.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function m(){h.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function b(t){if("string"==typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function v(t){b.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}"object"===(void 0===e?"undefined":_typeof(e))?e.exports=o:r.BN=o,o.BN=o,o.wordSize=26;var y;try{y=t("buffer").Buffer}catch(t){}o.isBN=function(t){return t instanceof o||null!==t&&"object"===(void 0===t?"undefined":_typeof(t))&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"==typeof t)return this._initNumber(t,e,r);if("object"===(void 0===t?"undefined":_typeof(t)))return this._initArray(t,e,r);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36);var i=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&i++,16===e?this._parseHex(t,i):this._parseBase(t,e,i),"-"===t[0]&&(this.negative=1),this.strip(),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(n("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i=0;i-=3)s=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[o]|=s<>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);else if("le"===r)for(i=0,o=0;i>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)i=s(t,r,r+6),this.words[n]|=i<>>26-o&4194303,(o+=24)>=26&&(o-=26,n++);r+6!==e&&(i=s(t,e,r+6),this.words[n]|=i<>>26-o&4194303),this.strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,s=o%n,u=Math.min(o,o-s)+r,c=0,f=r;f1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var g=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],_=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],w=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];o.prototype.toString=function(t,e){t=t||10,e=0|e||1;var r;if(16===t||"hex"===t){r="";for(var i=0,o=0,s=0;s>>24-i&16777215)||s!==this.length-1?g[6-u.length]+u+r:u+r,(i+=2)>=26&&(i-=26,s--)}for(0!==o&&(r=o.toString(16)+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var c=_[t],f=w[t];r="";var h=this.clone();for(h.negative=0;!h.isZero();){var l=h.modn(f).toString(t);r=(h=h.idivn(f)).isZero()?l+r:g[c-l.length]+l+r}for(this.isZero()&&(r="0"+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return n(void 0!==y),this.toArrayLike(y,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,r){var i=this.byteLength(),o=r||Math.max(1,i);n(i<=o,"byte array longer than desired length"),n(o>0,"Requested array length <= 0"),this.strip();var s,a,u="le"===e,c=new t(o),f=this.clone();if(u){for(a=0;!f.isZero();a++)s=f.andln(255),f.iushrn(8),c[a]=s;for(;a=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0==(8191&e)&&(r+=13,e>>>=13),0==(127&e)&&(r+=7,e>>>=7),0==(15&e)&&(r+=4,e>>>=4),0==(3&e)&&(r+=2,e>>>=2),0==(1&e)&&r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){n("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){n("number"==typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o>>26;for(;0!==i&&o>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r=this.cmp(t);if(0===r)return this.negative=0,this.length=1,this.words[0]=0,this;var n,i;r>0?(n=this,i=t):(n=t,i=this);for(var o=0,s=0;s>26,this.words[s]=67108863&e;for(;0!==o&&s>26,this.words[s]=67108863&e;if(0===o&&s>>13,d=0|s[1],p=8191&d,m=d>>>13,b=0|s[2],v=8191&b,y=b>>>13,g=0|s[3],_=8191&g,w=g>>>13,M=0|s[4],k=8191&M,x=M>>>13,E=0|s[5],S=8191&E,A=E>>>13,j=0|s[6],C=8191&j,T=j>>>13,P=0|s[7],I=8191&P,B=P>>>13,R=0|s[8],F=8191&R,O=R>>>13,N=0|s[9],L=8191&N,D=N>>>13,q=0|a[0],U=8191&q,z=q>>>13,H=0|a[1],K=8191&H,V=H>>>13,W=0|a[2],X=8191&W,G=W>>>13,$=0|a[3],Z=8191&$,J=$>>>13,Q=0|a[4],Y=8191&Q,tt=Q>>>13,et=0|a[5],rt=8191&et,nt=et>>>13,it=0|a[6],ot=8191&it,st=it>>>13,at=0|a[7],ut=8191&at,ct=at>>>13,ft=0|a[8],ht=8191&ft,lt=ft>>>13,dt=0|a[9],pt=8191&dt,mt=dt>>>13;r.negative=t.negative^e.negative,r.length=19;var bt=(c+(n=Math.imul(h,U))|0)+((8191&(i=(i=Math.imul(h,z))+Math.imul(l,U)|0))<<13)|0;c=((o=Math.imul(l,z))+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(p,U),i=(i=Math.imul(p,z))+Math.imul(m,U)|0,o=Math.imul(m,z);var vt=(c+(n=n+Math.imul(h,K)|0)|0)+((8191&(i=(i=i+Math.imul(h,V)|0)+Math.imul(l,K)|0))<<13)|0;c=((o=o+Math.imul(l,V)|0)+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(v,U),i=(i=Math.imul(v,z))+Math.imul(y,U)|0,o=Math.imul(y,z),n=n+Math.imul(p,K)|0,i=(i=i+Math.imul(p,V)|0)+Math.imul(m,K)|0,o=o+Math.imul(m,V)|0;var yt=(c+(n=n+Math.imul(h,X)|0)|0)+((8191&(i=(i=i+Math.imul(h,G)|0)+Math.imul(l,X)|0))<<13)|0;c=((o=o+Math.imul(l,G)|0)+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(_,U),i=(i=Math.imul(_,z))+Math.imul(w,U)|0,o=Math.imul(w,z),n=n+Math.imul(v,K)|0,i=(i=i+Math.imul(v,V)|0)+Math.imul(y,K)|0,o=o+Math.imul(y,V)|0,n=n+Math.imul(p,X)|0,i=(i=i+Math.imul(p,G)|0)+Math.imul(m,X)|0,o=o+Math.imul(m,G)|0;var gt=(c+(n=n+Math.imul(h,Z)|0)|0)+((8191&(i=(i=i+Math.imul(h,J)|0)+Math.imul(l,Z)|0))<<13)|0;c=((o=o+Math.imul(l,J)|0)+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(k,U),i=(i=Math.imul(k,z))+Math.imul(x,U)|0,o=Math.imul(x,z),n=n+Math.imul(_,K)|0,i=(i=i+Math.imul(_,V)|0)+Math.imul(w,K)|0,o=o+Math.imul(w,V)|0,n=n+Math.imul(v,X)|0,i=(i=i+Math.imul(v,G)|0)+Math.imul(y,X)|0,o=o+Math.imul(y,G)|0,n=n+Math.imul(p,Z)|0,i=(i=i+Math.imul(p,J)|0)+Math.imul(m,Z)|0,o=o+Math.imul(m,J)|0;var _t=(c+(n=n+Math.imul(h,Y)|0)|0)+((8191&(i=(i=i+Math.imul(h,tt)|0)+Math.imul(l,Y)|0))<<13)|0;c=((o=o+Math.imul(l,tt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(S,U),i=(i=Math.imul(S,z))+Math.imul(A,U)|0,o=Math.imul(A,z),n=n+Math.imul(k,K)|0,i=(i=i+Math.imul(k,V)|0)+Math.imul(x,K)|0,o=o+Math.imul(x,V)|0,n=n+Math.imul(_,X)|0,i=(i=i+Math.imul(_,G)|0)+Math.imul(w,X)|0,o=o+Math.imul(w,G)|0,n=n+Math.imul(v,Z)|0,i=(i=i+Math.imul(v,J)|0)+Math.imul(y,Z)|0,o=o+Math.imul(y,J)|0,n=n+Math.imul(p,Y)|0,i=(i=i+Math.imul(p,tt)|0)+Math.imul(m,Y)|0,o=o+Math.imul(m,tt)|0;var wt=(c+(n=n+Math.imul(h,rt)|0)|0)+((8191&(i=(i=i+Math.imul(h,nt)|0)+Math.imul(l,rt)|0))<<13)|0;c=((o=o+Math.imul(l,nt)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(C,U),i=(i=Math.imul(C,z))+Math.imul(T,U)|0,o=Math.imul(T,z),n=n+Math.imul(S,K)|0,i=(i=i+Math.imul(S,V)|0)+Math.imul(A,K)|0,o=o+Math.imul(A,V)|0,n=n+Math.imul(k,X)|0,i=(i=i+Math.imul(k,G)|0)+Math.imul(x,X)|0,o=o+Math.imul(x,G)|0,n=n+Math.imul(_,Z)|0,i=(i=i+Math.imul(_,J)|0)+Math.imul(w,Z)|0,o=o+Math.imul(w,J)|0,n=n+Math.imul(v,Y)|0,i=(i=i+Math.imul(v,tt)|0)+Math.imul(y,Y)|0,o=o+Math.imul(y,tt)|0,n=n+Math.imul(p,rt)|0,i=(i=i+Math.imul(p,nt)|0)+Math.imul(m,rt)|0,o=o+Math.imul(m,nt)|0;var Mt=(c+(n=n+Math.imul(h,ot)|0)|0)+((8191&(i=(i=i+Math.imul(h,st)|0)+Math.imul(l,ot)|0))<<13)|0;c=((o=o+Math.imul(l,st)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(I,U),i=(i=Math.imul(I,z))+Math.imul(B,U)|0,o=Math.imul(B,z),n=n+Math.imul(C,K)|0,i=(i=i+Math.imul(C,V)|0)+Math.imul(T,K)|0,o=o+Math.imul(T,V)|0,n=n+Math.imul(S,X)|0,i=(i=i+Math.imul(S,G)|0)+Math.imul(A,X)|0,o=o+Math.imul(A,G)|0,n=n+Math.imul(k,Z)|0,i=(i=i+Math.imul(k,J)|0)+Math.imul(x,Z)|0,o=o+Math.imul(x,J)|0,n=n+Math.imul(_,Y)|0,i=(i=i+Math.imul(_,tt)|0)+Math.imul(w,Y)|0,o=o+Math.imul(w,tt)|0,n=n+Math.imul(v,rt)|0,i=(i=i+Math.imul(v,nt)|0)+Math.imul(y,rt)|0,o=o+Math.imul(y,nt)|0,n=n+Math.imul(p,ot)|0,i=(i=i+Math.imul(p,st)|0)+Math.imul(m,ot)|0,o=o+Math.imul(m,st)|0;var kt=(c+(n=n+Math.imul(h,ut)|0)|0)+((8191&(i=(i=i+Math.imul(h,ct)|0)+Math.imul(l,ut)|0))<<13)|0;c=((o=o+Math.imul(l,ct)|0)+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(F,U),i=(i=Math.imul(F,z))+Math.imul(O,U)|0,o=Math.imul(O,z),n=n+Math.imul(I,K)|0,i=(i=i+Math.imul(I,V)|0)+Math.imul(B,K)|0,o=o+Math.imul(B,V)|0,n=n+Math.imul(C,X)|0,i=(i=i+Math.imul(C,G)|0)+Math.imul(T,X)|0,o=o+Math.imul(T,G)|0,n=n+Math.imul(S,Z)|0,i=(i=i+Math.imul(S,J)|0)+Math.imul(A,Z)|0,o=o+Math.imul(A,J)|0,n=n+Math.imul(k,Y)|0,i=(i=i+Math.imul(k,tt)|0)+Math.imul(x,Y)|0,o=o+Math.imul(x,tt)|0,n=n+Math.imul(_,rt)|0,i=(i=i+Math.imul(_,nt)|0)+Math.imul(w,rt)|0,o=o+Math.imul(w,nt)|0,n=n+Math.imul(v,ot)|0,i=(i=i+Math.imul(v,st)|0)+Math.imul(y,ot)|0,o=o+Math.imul(y,st)|0,n=n+Math.imul(p,ut)|0,i=(i=i+Math.imul(p,ct)|0)+Math.imul(m,ut)|0,o=o+Math.imul(m,ct)|0;var xt=(c+(n=n+Math.imul(h,ht)|0)|0)+((8191&(i=(i=i+Math.imul(h,lt)|0)+Math.imul(l,ht)|0))<<13)|0;c=((o=o+Math.imul(l,lt)|0)+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(L,U),i=(i=Math.imul(L,z))+Math.imul(D,U)|0,o=Math.imul(D,z),n=n+Math.imul(F,K)|0,i=(i=i+Math.imul(F,V)|0)+Math.imul(O,K)|0,o=o+Math.imul(O,V)|0,n=n+Math.imul(I,X)|0,i=(i=i+Math.imul(I,G)|0)+Math.imul(B,X)|0,o=o+Math.imul(B,G)|0,n=n+Math.imul(C,Z)|0,i=(i=i+Math.imul(C,J)|0)+Math.imul(T,Z)|0,o=o+Math.imul(T,J)|0,n=n+Math.imul(S,Y)|0,i=(i=i+Math.imul(S,tt)|0)+Math.imul(A,Y)|0,o=o+Math.imul(A,tt)|0,n=n+Math.imul(k,rt)|0,i=(i=i+Math.imul(k,nt)|0)+Math.imul(x,rt)|0,o=o+Math.imul(x,nt)|0,n=n+Math.imul(_,ot)|0,i=(i=i+Math.imul(_,st)|0)+Math.imul(w,ot)|0,o=o+Math.imul(w,st)|0,n=n+Math.imul(v,ut)|0,i=(i=i+Math.imul(v,ct)|0)+Math.imul(y,ut)|0,o=o+Math.imul(y,ct)|0,n=n+Math.imul(p,ht)|0,i=(i=i+Math.imul(p,lt)|0)+Math.imul(m,ht)|0,o=o+Math.imul(m,lt)|0;var Et=(c+(n=n+Math.imul(h,pt)|0)|0)+((8191&(i=(i=i+Math.imul(h,mt)|0)+Math.imul(l,pt)|0))<<13)|0;c=((o=o+Math.imul(l,mt)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(L,K),i=(i=Math.imul(L,V))+Math.imul(D,K)|0,o=Math.imul(D,V),n=n+Math.imul(F,X)|0,i=(i=i+Math.imul(F,G)|0)+Math.imul(O,X)|0,o=o+Math.imul(O,G)|0,n=n+Math.imul(I,Z)|0,i=(i=i+Math.imul(I,J)|0)+Math.imul(B,Z)|0,o=o+Math.imul(B,J)|0,n=n+Math.imul(C,Y)|0,i=(i=i+Math.imul(C,tt)|0)+Math.imul(T,Y)|0,o=o+Math.imul(T,tt)|0,n=n+Math.imul(S,rt)|0,i=(i=i+Math.imul(S,nt)|0)+Math.imul(A,rt)|0,o=o+Math.imul(A,nt)|0,n=n+Math.imul(k,ot)|0,i=(i=i+Math.imul(k,st)|0)+Math.imul(x,ot)|0,o=o+Math.imul(x,st)|0,n=n+Math.imul(_,ut)|0,i=(i=i+Math.imul(_,ct)|0)+Math.imul(w,ut)|0,o=o+Math.imul(w,ct)|0,n=n+Math.imul(v,ht)|0,i=(i=i+Math.imul(v,lt)|0)+Math.imul(y,ht)|0,o=o+Math.imul(y,lt)|0;var St=(c+(n=n+Math.imul(p,pt)|0)|0)+((8191&(i=(i=i+Math.imul(p,mt)|0)+Math.imul(m,pt)|0))<<13)|0;c=((o=o+Math.imul(m,mt)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(L,X),i=(i=Math.imul(L,G))+Math.imul(D,X)|0,o=Math.imul(D,G),n=n+Math.imul(F,Z)|0,i=(i=i+Math.imul(F,J)|0)+Math.imul(O,Z)|0,o=o+Math.imul(O,J)|0,n=n+Math.imul(I,Y)|0,i=(i=i+Math.imul(I,tt)|0)+Math.imul(B,Y)|0,o=o+Math.imul(B,tt)|0,n=n+Math.imul(C,rt)|0,i=(i=i+Math.imul(C,nt)|0)+Math.imul(T,rt)|0,o=o+Math.imul(T,nt)|0,n=n+Math.imul(S,ot)|0,i=(i=i+Math.imul(S,st)|0)+Math.imul(A,ot)|0,o=o+Math.imul(A,st)|0,n=n+Math.imul(k,ut)|0,i=(i=i+Math.imul(k,ct)|0)+Math.imul(x,ut)|0,o=o+Math.imul(x,ct)|0,n=n+Math.imul(_,ht)|0,i=(i=i+Math.imul(_,lt)|0)+Math.imul(w,ht)|0,o=o+Math.imul(w,lt)|0;var At=(c+(n=n+Math.imul(v,pt)|0)|0)+((8191&(i=(i=i+Math.imul(v,mt)|0)+Math.imul(y,pt)|0))<<13)|0;c=((o=o+Math.imul(y,mt)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(L,Z),i=(i=Math.imul(L,J))+Math.imul(D,Z)|0,o=Math.imul(D,J),n=n+Math.imul(F,Y)|0,i=(i=i+Math.imul(F,tt)|0)+Math.imul(O,Y)|0,o=o+Math.imul(O,tt)|0,n=n+Math.imul(I,rt)|0,i=(i=i+Math.imul(I,nt)|0)+Math.imul(B,rt)|0,o=o+Math.imul(B,nt)|0,n=n+Math.imul(C,ot)|0,i=(i=i+Math.imul(C,st)|0)+Math.imul(T,ot)|0,o=o+Math.imul(T,st)|0,n=n+Math.imul(S,ut)|0,i=(i=i+Math.imul(S,ct)|0)+Math.imul(A,ut)|0,o=o+Math.imul(A,ct)|0,n=n+Math.imul(k,ht)|0,i=(i=i+Math.imul(k,lt)|0)+Math.imul(x,ht)|0,o=o+Math.imul(x,lt)|0;var jt=(c+(n=n+Math.imul(_,pt)|0)|0)+((8191&(i=(i=i+Math.imul(_,mt)|0)+Math.imul(w,pt)|0))<<13)|0;c=((o=o+Math.imul(w,mt)|0)+(i>>>13)|0)+(jt>>>26)|0,jt&=67108863,n=Math.imul(L,Y),i=(i=Math.imul(L,tt))+Math.imul(D,Y)|0,o=Math.imul(D,tt),n=n+Math.imul(F,rt)|0,i=(i=i+Math.imul(F,nt)|0)+Math.imul(O,rt)|0,o=o+Math.imul(O,nt)|0,n=n+Math.imul(I,ot)|0,i=(i=i+Math.imul(I,st)|0)+Math.imul(B,ot)|0,o=o+Math.imul(B,st)|0,n=n+Math.imul(C,ut)|0,i=(i=i+Math.imul(C,ct)|0)+Math.imul(T,ut)|0,o=o+Math.imul(T,ct)|0,n=n+Math.imul(S,ht)|0,i=(i=i+Math.imul(S,lt)|0)+Math.imul(A,ht)|0,o=o+Math.imul(A,lt)|0;var Ct=(c+(n=n+Math.imul(k,pt)|0)|0)+((8191&(i=(i=i+Math.imul(k,mt)|0)+Math.imul(x,pt)|0))<<13)|0;c=((o=o+Math.imul(x,mt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(L,rt),i=(i=Math.imul(L,nt))+Math.imul(D,rt)|0,o=Math.imul(D,nt),n=n+Math.imul(F,ot)|0,i=(i=i+Math.imul(F,st)|0)+Math.imul(O,ot)|0,o=o+Math.imul(O,st)|0,n=n+Math.imul(I,ut)|0,i=(i=i+Math.imul(I,ct)|0)+Math.imul(B,ut)|0,o=o+Math.imul(B,ct)|0,n=n+Math.imul(C,ht)|0,i=(i=i+Math.imul(C,lt)|0)+Math.imul(T,ht)|0,o=o+Math.imul(T,lt)|0;var Tt=(c+(n=n+Math.imul(S,pt)|0)|0)+((8191&(i=(i=i+Math.imul(S,mt)|0)+Math.imul(A,pt)|0))<<13)|0;c=((o=o+Math.imul(A,mt)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(L,ot),i=(i=Math.imul(L,st))+Math.imul(D,ot)|0,o=Math.imul(D,st),n=n+Math.imul(F,ut)|0,i=(i=i+Math.imul(F,ct)|0)+Math.imul(O,ut)|0,o=o+Math.imul(O,ct)|0,n=n+Math.imul(I,ht)|0,i=(i=i+Math.imul(I,lt)|0)+Math.imul(B,ht)|0,o=o+Math.imul(B,lt)|0;var Pt=(c+(n=n+Math.imul(C,pt)|0)|0)+((8191&(i=(i=i+Math.imul(C,mt)|0)+Math.imul(T,pt)|0))<<13)|0;c=((o=o+Math.imul(T,mt)|0)+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,n=Math.imul(L,ut),i=(i=Math.imul(L,ct))+Math.imul(D,ut)|0,o=Math.imul(D,ct),n=n+Math.imul(F,ht)|0,i=(i=i+Math.imul(F,lt)|0)+Math.imul(O,ht)|0,o=o+Math.imul(O,lt)|0;var It=(c+(n=n+Math.imul(I,pt)|0)|0)+((8191&(i=(i=i+Math.imul(I,mt)|0)+Math.imul(B,pt)|0))<<13)|0;c=((o=o+Math.imul(B,mt)|0)+(i>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(L,ht),i=(i=Math.imul(L,lt))+Math.imul(D,ht)|0,o=Math.imul(D,lt);var Bt=(c+(n=n+Math.imul(F,pt)|0)|0)+((8191&(i=(i=i+Math.imul(F,mt)|0)+Math.imul(O,pt)|0))<<13)|0;c=((o=o+Math.imul(O,mt)|0)+(i>>>13)|0)+(Bt>>>26)|0,Bt&=67108863;var Rt=(c+(n=Math.imul(L,pt))|0)+((8191&(i=(i=Math.imul(L,mt))+Math.imul(D,pt)|0))<<13)|0;return c=((o=Math.imul(D,mt))+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,u[0]=bt,u[1]=vt,u[2]=yt,u[3]=gt,u[4]=_t,u[5]=wt,u[6]=Mt,u[7]=kt,u[8]=xt,u[9]=Et,u[10]=St,u[11]=At,u[12]=jt,u[13]=Ct,u[14]=Tt,u[15]=Pt,u[16]=It,u[17]=Bt,u[18]=Rt,0!==c&&(u[19]=c,r.length++),r};Math.imul||(M=u),o.prototype.mulTo=function(t,e){var r=this.length+t.length;return 10===this.length&&10===t.length?M(this,t,e):r<63?u(this,t,e):r<1024?function(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o>>26)|0)>>>26,s&=67108863}r.words[o]=a,n=s,s=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}(this,t,e):c(this,t,e)},f.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,n=0;n>=1;return n},f.prototype.permute=function(t,e,r,n,i,o){for(var s=0;s>>=1)i++;return 1<>>=13,r[2*s+1]=8191&o,o>>>=13;for(s=2*e;s>=26,e+=i/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r>>i}return e}(t);if(0===e.length)return new o(1);for(var r=this,n=0;n=0);var e,r=t%26,i=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var s=0;for(e=0;e>>26-r}s&&(this.words[e]=s,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e=0);var i;i=e?(e-e%26)/26:0;var o=t%26,s=Math.min((t-o)/26,this.length),a=67108863^67108863>>>o<s)for(this.length-=s,c=0;c=0&&(0!==f||c>=i);c--){var h=0|this.words[c];this.words[c]=f<<26-o|h>>>o,f=h&a}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){n("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(n("number"==typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[i+r]=67108863&s}for(;i>26,this.words[i+r]=67108863&s;if(0===a)return this.strip();for(n(-1===a),a=0,i=0;i>26,this.words[i]=67108863&s;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var r=this.length-t.length,n=this.clone(),i=t,s=0|i.words[i.length-1];0!==(r=26-this._countBits(s))&&(i=i.ushln(r),n.iushln(r),s=0|i.words[i.length-1]);var a,u=n.length-i.length;if("mod"!==e){(a=new o(null)).length=u+1,a.words=new Array(a.length);for(var c=0;c=0;h--){var l=67108864*(0|n.words[i.length+h])+(0|n.words[i.length+h-1]);for(l=Math.min(l/s|0,67108863),n._ishlnsubmul(i,l,h);0!==n.negative;)l--,n.negative=0,n._ishlnsubmul(i,1,h),n.isZero()||(n.negative^=1);a&&(a.words[h]=l)}return a&&a.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},o.prototype.divmod=function(t,e,r){if(n(!t.isZero()),this.isZero())return{div:new o(0),mod:new o(0)};var i,s,a;return 0!==this.negative&&0===t.negative?(a=this.neg().divmod(t,e),"mod"!==e&&(i=a.div.neg()),"div"!==e&&(s=a.mod.neg(),r&&0!==s.negative&&s.iadd(t)),{div:i,mod:s}):0===this.negative&&0!==t.negative?(a=this.divmod(t.neg(),e),"mod"!==e&&(i=a.div.neg()),{div:i,mod:a.mod}):0!=(this.negative&t.negative)?(a=this.neg().divmod(t.neg(),e),"div"!==e&&(s=a.mod.neg(),r&&0!==s.negative&&s.isub(t)),{div:a.div,mod:s}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e)},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,r=0,i=this.length-1;i>=0;i--)r=(e*r+(0|this.words[i]))%t;return r},o.prototype.idivn=function(t){n(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*e;this.words[r]=i/t|0,e=i%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i=new o(1),s=new o(0),a=new o(0),u=new o(1),c=0;e.isEven()&&r.isEven();)e.iushrn(1),r.iushrn(1),++c;for(var f=r.clone(),h=e.clone();!e.isZero();){for(var l=0,d=1;0==(e.words[0]&d)&&l<26;++l,d<<=1);if(l>0)for(e.iushrn(l);l-- >0;)(i.isOdd()||s.isOdd())&&(i.iadd(f),s.isub(h)),i.iushrn(1),s.iushrn(1);for(var p=0,m=1;0==(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(a.isOdd()||u.isOdd())&&(a.iadd(f),u.isub(h)),a.iushrn(1),u.iushrn(1);e.cmp(r)>=0?(e.isub(r),i.isub(a),s.isub(u)):(r.isub(e),a.isub(i),u.isub(s))}return{a:a,b:u,gcd:r.iushln(c)}},o.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i=new o(1),s=new o(0),a=r.clone();e.cmpn(1)>0&&r.cmpn(1)>0;){for(var u=0,c=1;0==(e.words[0]&c)&&u<26;++u,c<<=1);if(u>0)for(e.iushrn(u);u-- >0;)i.isOdd()&&i.iadd(a),i.iushrn(1);for(var f=0,h=1;0==(r.words[0]&h)&&f<26;++f,h<<=1);if(f>0)for(r.iushrn(f);f-- >0;)s.isOdd()&&s.iadd(a),s.iushrn(1);e.cmp(r)>=0?(e.isub(r),i.isub(s)):(r.isub(e),s.isub(i))}var l;return(l=0===e.cmpn(1)?i:s).cmpn(0)<0&&l.iadd(t),l},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0==(1&this.words[0])},o.prototype.isOdd=function(){return 1==(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){n("number"==typeof t);var e=t%26,r=(t-e)/26,i=1<>>26,a&=67108863,this.words[s]=a}return 0!==o&&(this.words[s]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e=t<0;if(0!==this.negative&&!e)return-1;if(0===this.negative&&e)return 1;this.strip();var r;if(this.length>1)r=1;else{e&&(t=-t),n(t<=67108863,"Number is too big");var i=0|this.words[0];r=i===t?0:it.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){ni&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new b(t)},o.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var k={k256:null,p224:null,p192:null,p25519:null};h.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},h.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e0?r.isub(this.p):r.strip(),r},h.prototype.split=function(t,e){t.iushrn(this.n,0,e)},h.prototype.imulK=function(t){return t.imul(this.k)},i(l,h),l.prototype.split=function(t,e){for(var r=Math.min(t.length,9),n=0;n>>22,i=o}i>>>=22,t.words[n-10]=i,0===i&&t.length>10?t.length-=10:t.length-=9},l.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(k[t])return k[t];var e;if("k256"===t)e=new l;else if("p224"===t)e=new d;else if("p192"===t)e=new p;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new m}return k[t]=e,e},b.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},b.prototype._verify2=function(t,e){n(0==(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},b.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},b.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},b.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},b.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},b.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},b.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},b.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},b.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},b.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},b.prototype.isqr=function(t){return this.imul(t,t.clone())},b.prototype.sqr=function(t){return this.mul(t,t)},b.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2==1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);n(!i.isZero());var a=new o(1).toRed(this),u=a.redNeg(),c=this.m.subn(1).iushrn(1),f=this.m.bitLength();for(f=new o(2*f*f).toRed(this);0!==this.pow(f,c).cmp(u);)f.redIAdd(u);for(var h=this.pow(f,i),l=this.pow(t,i.addn(1).iushrn(1)),d=this.pow(t,i),p=s;0!==d.cmp(a);){for(var m=d,b=0;0!==m.cmp(a);b++)m=m.redSqr();n(b=0;n--){for(var c=e.words[n],f=u-1;f>=0;f--){var h=c>>f&1;i!==r[0]&&(i=this.sqr(i)),0!==h||0!==s?(s<<=1,s|=h,(4===++a||0===n&&0===f)&&(i=this.mul(i,r[s]),a=0,s=0)):a=0}u=26}return i},b.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},b.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new v(t)},i(v,b),v.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},v.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},v.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},v.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},v.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(void 0===e||e,this)},{}],365:[function(t,e,r){var n=t("web3-utils"),i=t("bn.js"),o=function(t){var e="A".charCodeAt(0),r="Z".charCodeAt(0);return t=t.toUpperCase(),(t=t.substr(4)+t.substr(0,4)).split("").map(function(t){var n=t.charCodeAt(0);return n>=e&&n<=r?n-e+10:t}).join("")},s=function(t){for(var e,r=t;r.length>2;)e=r.slice(0,9),r=parseInt(e,10)%97+r.slice(e.length);return parseInt(r,10)%97},a=function(t){this._iban=t};a.toAddress=function(t){if(!(t=new a(t)).isDirect())throw new Error("IBAN is indirect and can't be converted");return t.toAddress()},a.toIban=function(t){return a.fromAddress(t).toString()},a.fromAddress=function(t){if(!n.isAddress(t))throw new Error("Provided address is not a valid address: "+t);t=t.replace("0x","").replace("0X","");var e=function(t,e){for(var r=t;r.length<2*e;)r="0"+r;return r}(new i(t,16).toString(36),15);return a.fromBban(e.toUpperCase())},a.fromBban=function(t){var e=("0"+(98-s(o("XE00"+t)))).slice(-2);return new a("XE"+e+t)},a.createIndirect=function(t){return a.fromBban("ETH"+t.institution+t.identifier)},a.isValid=function(t){return new a(t).isValid()},a.prototype.isValid=function(){return/^XE[0-9]{2}(ETH[0-9A-Z]{13}|[0-9A-Z]{30,31})$/.test(this._iban)&&1===s(o(this._iban))},a.prototype.isDirect=function(){return 34===this._iban.length||35===this._iban.length},a.prototype.isIndirect=function(){return 20===this._iban.length},a.prototype.checksum=function(){return this._iban.substr(2,2)},a.prototype.institution=function(){return this.isIndirect()?this._iban.substr(7,4):""},a.prototype.client=function(){return this.isIndirect()?this._iban.substr(11):""},a.prototype.toAddress=function(){if(this.isDirect()){var t=this._iban.substr(4),e=new i(t,36);return n.toChecksumAddress(e.toString(16,20))}return""},a.prototype.toString=function(){return this._iban},e.exports=a},{"bn.js":364,"web3-utils":390}],366:[function(t,e,r){var n=t("web3-core"),i=t("web3-core-method"),o=t("web3-utils"),s=t("web3-net"),a=t("web3-core-helpers").formatters,u=function(){var t=this;n.packageInit(this,arguments),this.net=new s(this.currentProvider);var e=null,r="latest";Object.defineProperty(this,"defaultAccount",{get:function(){return e},set:function(t){return t&&(e=o.toChecksumAddress(a.inputAddressFormatter(t))),u.forEach(function(t){t.defaultAccount=e}),t},enumerable:!0}),Object.defineProperty(this,"defaultBlock",{get:function(){return r},set:function(t){return r=t,u.forEach(function(t){t.defaultBlock=r}),t},enumerable:!0});var u=[new i({name:"getAccounts",call:"personal_listAccounts",params:0,outputFormatter:o.toChecksumAddress}),new i({name:"newAccount",call:"personal_newAccount",params:1,inputFormatter:[null],outputFormatter:o.toChecksumAddress}),new i({name:"unlockAccount",call:"personal_unlockAccount",params:3,inputFormatter:[a.inputAddressFormatter,null,null]}),new i({name:"lockAccount",call:"personal_lockAccount",params:1,inputFormatter:[a.inputAddressFormatter]}),new i({name:"importRawKey",call:"personal_importRawKey",params:2}),new i({name:"sendTransaction",call:"personal_sendTransaction",params:2,inputFormatter:[a.inputTransactionFormatter,null]}),new i({name:"sign",call:"personal_sign",params:3,inputFormatter:[a.inputSignFormatter,a.inputAddressFormatter,null]}),new i({name:"ecRecover",call:"personal_ecRecover",params:2,inputFormatter:[a.inputSignFormatter,null]})];u.forEach(function(e){e.attachToObject(t),e.setRequestManager(t._requestManager),e.defaultBlock=t.defaultBlock,e.defaultAccount=t.defaultAccount})};n.addProviders(u),e.exports=u},{"web3-core":200,"web3-core-helpers":184,"web3-core-method":186,"web3-net":370,"web3-utils":390}],367:[function(t,e,r){arguments[4][170][0].apply(r,arguments)},{dup:170}],368:[function(t,e,r){var n=t("underscore");e.exports=function(t){var e,r=this;return this.net.getId().then(function(t){return e=t,r.getBlock(0)}).then(function(r){var i="private";return"0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3"===r.hash&&1===e&&(i="main"),"0cd786a2425d16f152c658316c423e6ce1181e15c3295826d7c9904cba9ce303"===r.hash&&2===e&&(i="morden"),"0x41941023680923e0fe4d74a34bdac8141f2540e3ae90623718e47d66d1ca4a2d"===r.hash&&3===e&&(i="ropsten"),"0x6341fd3daf94b748c72ced5a5b26028f2474f5f00d824504e4fa37a75767e177"===r.hash&&4===e&&(i="rinkeby"),"0xa3c565fc15c7478862d50ccd6561e3c06b24cc509bf388941c25ea985ce32cb9"===r.hash&&42===e&&(i="kovan"),n.isFunction(t)&&t(null,i),i}).catch(function(e){if(!n.isFunction(t))throw e;t(e)})}},{underscore:367}],369:[function(t,e,r){var n=t("underscore"),i=t("web3-core"),o=t("web3-core-helpers"),s=t("web3-core-subscriptions").subscriptions,a=t("web3-core-method"),u=t("web3-utils"),c=t("web3-net"),f=t("web3-eth-personal"),h=t("web3-eth-contract"),l=t("web3-eth-iban"),d=t("web3-eth-accounts"),p=t("web3-eth-abi"),m=t("./getNetworkType.js"),b=o.formatters,v=function(t){return n.isString(t[0])&&0===t[0].indexOf("0x")?"eth_getBlockByHash":"eth_getBlockByNumber"},y=function(t){return n.isString(t[0])&&0===t[0].indexOf("0x")?"eth_getTransactionByBlockHashAndIndex":"eth_getTransactionByBlockNumberAndIndex"},g=function(t){return n.isString(t[0])&&0===t[0].indexOf("0x")?"eth_getUncleByBlockHashAndIndex":"eth_getUncleByBlockNumberAndIndex"},_=function(t){return n.isString(t[0])&&0===t[0].indexOf("0x")?"eth_getBlockTransactionCountByHash":"eth_getBlockTransactionCountByNumber"},w=function(t){return n.isString(t[0])&&0===t[0].indexOf("0x")?"eth_getUncleCountByBlockHash":"eth_getUncleCountByBlockNumber"},M=function(){var t=this;i.packageInit(this,arguments);var e=this.setProvider;this.setProvider=function(){e.apply(t,arguments),t.net.setProvider.apply(t,arguments),t.personal.setProvider.apply(t,arguments),t.accounts.setProvider.apply(t,arguments),t.Contract.setProvider(t.currentProvider,t.accounts)};var r=null,o="latest";Object.defineProperty(this,"defaultAccount",{get:function(){return r},set:function(e){return e&&(r=u.toChecksumAddress(b.inputAddressFormatter(e))),t.Contract.defaultAccount=r,t.personal.defaultAccount=r,k.forEach(function(t){t.defaultAccount=r}),e},enumerable:!0}),Object.defineProperty(this,"defaultBlock",{get:function(){return o},set:function(e){return o=e,t.Contract.defaultBlock=o,t.personal.defaultBlock=o,k.forEach(function(t){t.defaultBlock=o}),e},enumerable:!0}),this.clearSubscriptions=t._requestManager.clearSubscriptions,this.net=new c(this.currentProvider),this.net.getNetworkType=m.bind(this),this.accounts=new d(this.currentProvider),this.personal=new f(this.currentProvider),this.personal.defaultAccount=this.defaultAccount;var M=function(){h.apply(this,arguments)};M.setProvider=function(){h.setProvider.apply(this,arguments)},(M.prototype=Object.create(h.prototype)).constructor=M,this.Contract=M,this.Contract.defaultAccount=this.defaultAccount,this.Contract.defaultBlock=this.defaultBlock,this.Contract.setProvider(this.currentProvider,this.accounts),this.Iban=l,this.abi=p;var k=[new a({name:"getProtocolVersion",call:"eth_protocolVersion",params:0}),new a({name:"getCoinbase",call:"eth_coinbase",params:0}),new a({name:"isMining",call:"eth_mining",params:0}),new a({name:"getHashrate",call:"eth_hashrate",params:0,outputFormatter:u.hexToNumber}),new a({name:"isSyncing",call:"eth_syncing",params:0,outputFormatter:b.outputSyncingFormatter}),new a({name:"getGasPrice",call:"eth_gasPrice",params:0,outputFormatter:b.outputBigNumberFormatter}),new a({name:"getAccounts",call:"eth_accounts",params:0,outputFormatter:u.toChecksumAddress}),new a({name:"getBlockNumber",call:"eth_blockNumber",params:0,outputFormatter:u.hexToNumber}),new a({name:"getBalance",call:"eth_getBalance",params:2,inputFormatter:[b.inputAddressFormatter,b.inputDefaultBlockNumberFormatter],outputFormatter:b.outputBigNumberFormatter}),new a({name:"getStorageAt",call:"eth_getStorageAt",params:3,inputFormatter:[b.inputAddressFormatter,u.numberToHex,b.inputDefaultBlockNumberFormatter]}),new a({name:"getCode",call:"eth_getCode",params:2,inputFormatter:[b.inputAddressFormatter,b.inputDefaultBlockNumberFormatter]}),new a({name:"getBlock",call:v,params:2,inputFormatter:[b.inputBlockNumberFormatter,function(t){return!!t}],outputFormatter:b.outputBlockFormatter}),new a({name:"getUncle",call:g,params:2,inputFormatter:[b.inputBlockNumberFormatter,u.numberToHex],outputFormatter:b.outputBlockFormatter}),new a({name:"getBlockTransactionCount",call:_,params:1,inputFormatter:[b.inputBlockNumberFormatter],outputFormatter:u.hexToNumber}),new a({name:"getBlockUncleCount",call:w,params:1,inputFormatter:[b.inputBlockNumberFormatter],outputFormatter:u.hexToNumber}),new a({name:"getTransaction",call:"eth_getTransactionByHash",params:1,inputFormatter:[null],outputFormatter:b.outputTransactionFormatter}),new a({name:"getTransactionFromBlock",call:y,params:2,inputFormatter:[b.inputBlockNumberFormatter,u.numberToHex],outputFormatter:b.outputTransactionFormatter}),new a({name:"getTransactionReceipt",call:"eth_getTransactionReceipt",params:1,inputFormatter:[null],outputFormatter:b.outputTransactionReceiptFormatter}),new a({name:"getTransactionCount",call:"eth_getTransactionCount",params:2,inputFormatter:[b.inputAddressFormatter,b.inputDefaultBlockNumberFormatter],outputFormatter:u.hexToNumber}),new a({name:"sendSignedTransaction",call:"eth_sendRawTransaction",params:1,inputFormatter:[null]}),new a({name:"signTransaction",call:"eth_signTransaction",params:1,inputFormatter:[b.inputTransactionFormatter]}),new a({name:"sendTransaction",call:"eth_sendTransaction",params:1,inputFormatter:[b.inputTransactionFormatter]}),new a({name:"sign",call:"eth_sign",params:2,inputFormatter:[b.inputSignFormatter,b.inputAddressFormatter],transformPayload:function(t){return t.params.reverse(),t}}),new a({name:"call",call:"eth_call",params:2,inputFormatter:[b.inputCallFormatter,b.inputDefaultBlockNumberFormatter]}),new a({name:"estimateGas",call:"eth_estimateGas",params:1,inputFormatter:[b.inputCallFormatter],outputFormatter:u.hexToNumber}),new a({name:"getCompilers",call:"eth_getCompilers",params:0}),new a({name:"compile.solidity",call:"eth_compileSolidity",params:1}),new a({name:"compile.lll",call:"eth_compileLLL",params:1}),new a({name:"compile.serpent",call:"eth_compileSerpent",params:1}),new a({name:"submitWork",call:"eth_submitWork",params:3}),new a({name:"getWork",call:"eth_getWork",params:0}),new a({name:"getPastLogs",call:"eth_getLogs",params:1,inputFormatter:[b.inputLogFormatter],outputFormatter:b.outputLogFormatter}),new s({name:"subscribe",type:"eth",subscriptions:{newBlockHeaders:{subscriptionName:"newHeads",params:0,outputFormatter:b.outputBlockFormatter},pendingTransactions:{subscriptionName:"newPendingTransactions",params:0},logs:{params:1,inputFormatter:[b.inputLogFormatter],outputFormatter:b.outputLogFormatter,subscriptionHandler:function(t){t.removed?this.emit("changed",t):this.emit("data",t),n.isFunction(this.callback)&&this.callback(null,t,this)}},syncing:{params:0,outputFormatter:b.outputSyncingFormatter,subscriptionHandler:function(t){var e=this;!0!==this._isSyncing?(this._isSyncing=!0,this.emit("changed",e._isSyncing),n.isFunction(this.callback)&&this.callback(null,e._isSyncing,this),setTimeout(function(){e.emit("data",t),n.isFunction(e.callback)&&e.callback(null,t,e)},0)):(this.emit("data",t),n.isFunction(e.callback)&&this.callback(null,t,this),clearTimeout(this._isSyncingTimeout),this._isSyncingTimeout=setTimeout(function(){t.currentBlock>t.highestBlock-200&&(e._isSyncing=!1,e.emit("changed",e._isSyncing),n.isFunction(e.callback)&&e.callback(null,e._isSyncing,e))},500))}}}})];k.forEach(function(e){e.attachToObject(t),e.setRequestManager(t._requestManager,t.accounts),e.defaultBlock=t.defaultBlock,e.defaultAccount=t.defaultAccount})};i.addProviders(M),e.exports=M},{"./getNetworkType.js":368,underscore:367,"web3-core":200,"web3-core-helpers":184,"web3-core-method":186,"web3-core-subscriptions":197,"web3-eth-abi":204,"web3-eth-accounts":361,"web3-eth-contract":363,"web3-eth-iban":365,"web3-eth-personal":366,"web3-net":370,"web3-utils":390}],370:[function(t,e,r){var n=t("web3-core"),i=t("web3-core-method"),o=t("web3-utils"),s=function(){var t=this;n.packageInit(this,arguments),[new i({name:"getId",call:"net_version",params:0,outputFormatter:o.hexToNumber}),new i({name:"isListening",call:"net_listening",params:0}),new i({name:"getPeerCount",call:"net_peerCount",params:0,outputFormatter:o.hexToNumber})].forEach(function(e){e.attachToObject(t),e.setRequestManager(t._requestManager)})};n.addProviders(s),e.exports=s},{"web3-core":200,"web3-core-method":186,"web3-utils":390}],371:[function(t,e,r){e.exports=XMLHttpRequest},{}],372:[function(t,e,r){var n=t("web3-core-helpers").errors,i=t("xhr2"),o=function(t,e,r){this.host=t||"http://localhost:8545",this.timeout=e||0,this.connected=!1,this.headers=r};o.prototype._prepareRequest=function(){var t=new i;return t.open("POST",this.host,!0),t.setRequestHeader("Content-Type","application/json"),this.headers&&this.headers.forEach(function(e){t.setRequestHeader(e.name,e.value)}),t},o.prototype.send=function(t,e){var r=this,i=this._prepareRequest();i.onreadystatechange=function(){if(4===i.readyState&&1!==i.timeout){var t=i.responseText,o=null;try{t=JSON.parse(t)}catch(t){o=n.InvalidResponse(i.responseText)}r.connected=!0,e(o,t)}},i.ontimeout=function(){r.connected=!1,e(n.ConnectionTimeout(this.timeout))};try{i.send(JSON.stringify(t))}catch(t){this.connected=!1,e(n.InvalidConnection(this.host))}},e.exports=o},{"web3-core-helpers":184,xhr2:371}],373:[function(t,e,r){!function(t,n,i,o,s,a){function u(t,e){return function(){return t.call(this,e.apply(this,arguments))}}function c(t){return function(e){return e[t]}}function f(t,e){return e.apply(a,t)}function h(t){var e=t.length-1,r=i.prototype.slice;if(0==e)return function(){return t.call(this,r.call(arguments))};if(1==e)return function(){return t.call(this,arguments[0],r.call(arguments,1))};var n=i(t.length);return function(){for(var i=0;i0;)if(K+=i,i=t.charAt(o++),4===V?(L+=String.fromCharCode(parseInt(K,16)),V=0,h=o-1):V++,!i)break t;if('"'===i&&!q){z=H.pop()||b,L+=t.substring(h,o-1);break}if(!("\\"!==i||q||(q=!0,L+=t.substring(h,o-1),i=t.charAt(o++))))break;if(q){if(q=!1,"n"===i?L+="\n":"r"===i?L+="\r":"t"===i?L+="\t":"f"===i?L+="\f":"b"===i?L+="\b":"u"===i?(V=1,K=""):L+=i,i=t.charAt(o++),h=o-1,i)continue;break}d.lastIndex=o;var p=d.exec(t);if(!p){o=t.length+1,L+=t.substring(h,o-1);break}if(o=p.index+1,!(i=t.charAt(p.index))){L+=t.substring(h,o-1);break}}continue;case x:if(!i)continue;if("r"!==i)return e("Invalid true started with t"+i);z=E;continue;case E:if(!i)continue;if("u"!==i)return e("Invalid true started with tr"+i);z=S;continue;case S:if(!i)continue;if("e"!==i)return e("Invalid true started with tru"+i);c(!0),f(),z=H.pop()||b;continue;case A:if(!i)continue;if("a"!==i)return e("Invalid false started with f"+i);z=j;continue;case j:if(!i)continue;if("l"!==i)return e("Invalid false started with fa"+i);z=C;continue;case C:if(!i)continue;if("s"!==i)return e("Invalid false started with fal"+i);z=T;continue;case T:if(!i)continue;if("e"!==i)return e("Invalid false started with fals"+i);c(!1),f(),z=H.pop()||b;continue;case P:if(!i)continue;if("u"!==i)return e("Invalid null started with n"+i);z=B;continue;case B:if(!i)continue;if("l"!==i)return e("Invalid null started with nu"+i);z=R;continue;case R:if(!i)continue;if("l"!==i)return e("Invalid null started with nul"+i);c(null),f(),z=H.pop()||b;continue;case F:if("."!==i)return e("Leading zero not followed by .");D+=i,z=O;continue;case O:if(-1!=="0123456789".indexOf(i))D+=i;else if("."===i){if(-1!==D.indexOf("."))return e("Invalid number has two dots");D+=i}else if("e"===i||"E"===i){if(-1!==D.indexOf("e")||-1!==D.indexOf("E"))return e("Invalid number has two exponential");D+=i}else if("+"===i||"-"===i){if("e"!==s&&"E"!==s)return e("Invalid symbol in number");D+=i}else D&&(c(parseFloat(D)),f(),D=""),o--,z=H.pop()||b;continue;default:return e("Unknown state: "+z)}X>=N&&function(){var t=0;L!==a&&L.length>l&&(e("Max buffer length exceeded: textNode"),t=Math.max(t,L.length)),D.length>l&&(e("Max buffer length exceeded: numberNode"),t=Math.max(t,D.length)),N=l-t+X}()}}),t(at).on(function(){if(z==m)return c({}),f(),void(U=!0);z===b&&0===W||e("Unexpected end"),L!==a&&(c(L),f(),L=a),U=!0})}function C(t,e){return{key:t,node:e}}function T(t){function e(t,e,r){G(H(t))[e]=r}function r(t,r,i){t&&e(t,r,i);var o=y(C(r,i),t);return n(o),o}var n=t(Q).emit,o=t(Y).emit,s=t(it).emit,a=t(nt).emit,u={};return u[ft]=function(t,n){if(!t)return s(n),r(t,$,n);var o=function(t,e){var n=G(H(t));return m(i,n)?r(t,q(n),e):t}(t,n),a=K(o),u=X(H(o));return e(a,u,n),y(C(u,n),a)},u[ht]=function(t){return o(t),K(t)||a(G(H(t)))},u[ct]=r,u}function P(){function t(t){return r[t]=function(t,e,r){function n(t){return function(e){return e.id==t}}var i,o;return{on:function(r,n){var s={listener:r,id:n||r};return e&&e.emit(t,r,s.id),i=y(s,i),o=y(r,o),this},emit:function(){E(o,arguments)},un:function(e){var s;i=k(i,n(e),function(t){s=t}),s&&(o=k(o,function(t){return t==s.listener}),r&&r.emit(t,s.listener,s.id))},listeners:function(){return o},hasListener:function(t){return b(A(t?n(t):p,i))}}}(t,n,i)}function e(e){return r[e]||t(e)}var r={},n=t("newListener"),i=t("removeListener");return["emit","on","un"].forEach(function(t){e[t]=h(function(r,n){f(n,e(r)[t])})}),e}function I(t,e,r){try{var n=s.parse(e)}catch(t){}return{statusCode:t,body:e,jsonBody:n,thrown:r}}function B(t,e){function r(e,r,n){var i=t(e).emit;r.on(function(t){var e=n(t);!1!==e&&function(t,e,r){var n=S(r);t(e,_(K(w(X,n))),_(w(G,n)))}(i,G(e),t)},e),t("removeListener").on(function(n){n==e&&(t(n).listeners()||r.un(e))})}var n={node:t(Y),path:t(Q)};t("newListener").on(function(t){var i=/(node|path):(.*)/.exec(t);if(i){var o=n[i[1]];o.hasListener(t)||r(t,o,e(i[2]))}})}function R(t,e){function r(t,e,r){r=r||e;var i=n(e);return t.on(function(){var e=!1;s.forget=function(){e=!0},f(arguments,i),delete s.forget,e&&t.un(r)},r),s}function n(t){return function(){try{return t.apply(s,arguments)}catch(t){setTimeout(function(){throw t})}}}function i(e,n,i){var o;o="node"==e?function(t){return function(){var e=t.apply(this,arguments);b(e)&&(e==N.drop?c():l(e))}}(i):i,r(function(e,r){return t(e+":"+r)}(e,n),o,i)}function o(t,e,r){return U(e)?i(t,e,r):function(t,e){for(var r in e)i(t,r,e[r])}(t,e),s}var s,a=/^(node|path):./,u=t(nt),c=t(et).emit,l=t(tt).emit,p=h(function(e,n){if(s[e])f(n,s[e]);else{var i=t(e),o=n[0];a.test(e)?r(i,o):i.on(o)}return s});return t(it).on(function(t){s.root=function(t){return function(){return t}}(t)}),t(ot).on(function(t,e){s.header=function(t){return t?e[t]:e}}),s={on:p,addListener:p,removeListener:function(e,r,n){if("done"==e)u.un(r);else if("node"==e||"path"==e)t.un(e+":"+r,n);else{var i=r;t(e).un(i)}return s},emit:t.emit,node:L(o,"node"),path:L(o,"path"),done:L(r,u),start:L(function(e,r){return t(e).on(n(r),r),s},ot),fail:t(rt).on,abort:t(ut).emit,header:d,root:d,source:e}}function F(e,r,n,i,o){var s=P();return r&&function(e,r,n,i,o,s,u){function c(){var t=r.responseText,e=t.substr(l);e&&f(e),l=q(t)}var f=e(st).emit,h=e(rt).emit,l=0,d=!0;e(ut).on(function(){r.onreadystatechange=null,r.abort()}),"onprogress"in r&&(r.onprogress=c),r.onreadystatechange=function(){function t(){try{d&&e(ot).emit(r.status,function(t){var e={};return t&&t.split("\r\n").forEach(function(t){var r=t.indexOf(": ");e[t.substring(0,r)]=t.substring(r+2)}),e}(r.getAllResponseHeaders())),d=!1}catch(t){}}switch(r.readyState){case 2:case 3:return t();case 4:t(),2==String(r.status)[0]?(c(),e(at).emit()):h(I(r.status,r.responseText))}};try{r.open(n,i,!0);for(var p in s)r.setRequestHeader(p,s[p]);(function(t,e){function r(e){return e.port||function(t){return{"http:":80,"https:":443}[t]}(e.protocol||t.protocol)}return!!(e.protocol&&e.protocol!=t.protocol||e.host&&e.host!=t.host||e.host&&r(e)!=r(t))})(t.location,function(t){var e=/(\w+:)?(?:\/\/)([\w.-]+)?(?::(\d+))?\/?/.exec(t)||[];return{protocol:e[1]||"",host:e[2]||"",port:e[3]||""}}(i))||r.setRequestHeader("X-Requested-With","XMLHttpRequest"),r.withCredentials=u,r.send(o)}catch(e){t.setTimeout(L(h,I(a,a,e)),0)}}(s,new XMLHttpRequest,e,r,n,i,o),j(s),function(t,e){function r(t){return function(e){n=t(n,e)}}var n,i={};for(var o in e)t(o).on(r(e[o]),i);t(tt).on(function(t){var e=H(n),r=X(e),i=K(n);i&&(G(H(i))[r]=t)}),t(et).on(function(){var t=H(n),e=X(t),r=K(n);r&&delete G(H(r))[e]}),t(ut).on(function(){for(var r in e)t(r).un(i)})}(s,T(s)),B(s,Z),R(s,r)}function O(t,e,r,n,i,o,a){return i=i?s.parse(s.stringify(i)):{},n?U(n)||(n=s.stringify(n),i["Content-Type"]=i["Content-Type"]||"application/json"):n=null,t(r||"GET",function(t,e){return!1===e&&(-1==t.indexOf("?")?t+="?":t+="&",t+="_="+(new Date).getTime()),t}(e,a),n,i,o||!1)}function N(t){var e=V("resume","pause","pipe"),r=L(v,e);return t?r(t)||U(t)?O(F,t):O(F,t.url,t.method,t.body,t.headers,t.withCredentials,t.cached):F()}var L=h(function(t,e){var r=e.length;return h(function(n){for(var i=0;i2)throw new Error("[ethjs-unit] while converting number "+t+" to wei, too many decimal points");var l=h[0],d=h[1];if(l||(l="0"),d||(d="0"),d.length>a)throw new Error("[ethjs-unit] while converting number "+t+" to wei, too many decimal places");for(;d.length65536){if(!i)throw new Error("Requested too many random bytes.");r(new Error("Requested too many random bytes."))}if(void 0!==n&&n.randomBytes){if(!i)return"0x"+n.randomBytes(e).toString("hex");n.randomBytes(e,function(t,e){t?r(u):r(null,"0x"+e.toString("hex"))})}else{var o;if(void 0!==n?o=n:"undefined"!=typeof msCrypto&&(o=msCrypto),o&&o.getRandomValues){var s=o.getRandomValues(new Uint8Array(e)),a="0x"+Array.from(s).map(function(t){return t.toString(16)}).join("");if(!i)return a;r(null,a)}else{var u=new Error('No "crypto" object available. This Browser doesn\'t support generating secure random bytes.');if(!i)throw u;r(u)}}}},{"./crypto.js":385}],387:[function(t,e,r){var n=t("is-hex-prefixed");e.exports=function(t){return"string"!=typeof t?t:n(t)?t.slice(2):t}},{"is-hex-prefixed":382}],388:[function(t,e,r){arguments[4][170][0].apply(r,arguments)},{dup:170}],389:[function(t,e,r){(function(t){!function(n){function i(t){for(var e,r,n=[],i=0,o=t.length;i=55296&&e<=56319&&i=55296&&t<=57343)throw Error("Lone surrogate U+"+t.toString(16).toUpperCase()+" is not a scalar value")}function s(t,e){return b(t>>e&63|128)}function a(t){if(0==(4294967168&t))return b(t);var e="";return 0==(4294965248&t)?e=b(t>>6&31|192):0==(4294901760&t)?(o(t),e=b(t>>12&15|224),e+=s(t,6)):0==(4292870144&t)&&(e=b(t>>18&7|240),e+=s(t,12),e+=s(t,6)),e+=b(63&t|128)}function u(){if(m>=p)throw Error("Invalid byte index");var t=255&d[m];if(m++,128==(192&t))return 63&t;throw Error("Invalid continuation byte")}function c(){var t,e,r,n;if(m>p)throw Error("Invalid byte index");if(m==p)return!1;if(t=255&d[m],m++,0==(128&t))return t;if(192==(224&t)){var i;if((n=(31&t)<<6|(i=u()))>=128)return n;throw Error("Invalid continuation byte")}if(224==(240&t)){if(i=u(),e=u(),(n=(15&t)<<12|i<<6|e)>=2048)return o(n),n;throw Error("Invalid continuation byte")}if(240==(248&t)&&(i=u(),e=u(),r=u(),(n=(15&t)<<18|i<<12|e<<6|r)>=65536&&n<=1114111))return n;throw Error("Invalid UTF-8 detected")}var f="object"==(void 0===r?"undefined":_typeof(r))&&r,h="object"==(void 0===e?"undefined":_typeof(e))&&e&&e.exports==f&&e,l="object"==(void 0===t?"undefined":_typeof(t))&&t;l.global!==l&&l.window!==l||(n=l);var d,p,m,b=String.fromCharCode,v={version:"2.0.0",encode:function(t){for(var e=i(t),r=e.length,n=-1,o="";++n65535&&(i+=b((e-=65536)>>>10&1023|55296),e=56320|1023&e),i+=b(e);return i}(r)}};if("function"==typeof define&&"object"==_typeof(define.amd)&&define.amd)define(function(){return v});else if(f&&!f.nodeType)if(h)h.exports=v;else{var y={}.hasOwnProperty;for(var g in v)y.call(v,g)&&(f[g]=v[g])}else n.utf8=v}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],390:[function(t,e,r){var n=t("underscore"),i=t("ethjs-unit"),o=t("./utils.js"),s=t("./soliditySha3.js"),a=t("randomhex"),u=function(t){if(!o.isHexStrict(t))throw new Error("The parameter must be a valid HEX string.");var e="",r=0,n=t.length;for("0x"===t.substring(0,2)&&(r=2);r7?r+=t[n].toUpperCase():r+=t[n];return r},toHex:o.toHex,toBN:o.toBN,bytesToHex:o.bytesToHex,hexToBytes:o.hexToBytes,hexToNumberString:o.hexToNumberString,hexToNumber:o.hexToNumber,toDecimal:o.hexToNumber,numberToHex:o.numberToHex,fromDecimal:o.numberToHex,hexToUtf8:o.hexToUtf8,hexToString:o.hexToUtf8,toUtf8:o.hexToUtf8,utf8ToHex:o.utf8ToHex,stringToHex:o.utf8ToHex,fromUtf8:o.utf8ToHex,hexToAscii:u,toAscii:u,asciiToHex:c,fromAscii:c,unitMap:i.unitMap,toWei:function(t,e){if(e=f(e),!o.isBN(t)&&!n.isString(t))throw new Error("Please pass numbers as strings or BigNumber objects to avoid precision errors.");return o.isBN(t)?i.toWei(t,e):i.toWei(t,e).toString(10)},fromWei:function(t,e){if(e=f(e),!o.isBN(t)&&!n.isString(t))throw new Error("Please pass numbers as strings or BigNumber objects to avoid precision errors.");return o.isBN(t)?i.fromWei(t,e):i.fromWei(t,e).toString(10)},padLeft:o.leftPad,leftPad:o.leftPad,padRight:o.rightPad,rightPad:o.rightPad,toTwosComplement:o.toTwosComplement}},{"./soliditySha3.js":391,"./utils.js":392,"ethjs-unit":381,randomhex:386,underscore:388}],391:[function(t,e,r){var n=t("underscore"),i=t("bn.js"),o=t("./utils.js"),s=function(t){var e=void 0===t?"undefined":_typeof(t);if("string"===e)return o.isHexStrict(t)?new i(t.replace(/0x/i,""),16):new i(t,10);if("number"===e)return new i(t);if(o.isBigNumber(t))return new i(t.toString(10));if(o.isBN(t))return t;throw new Error(t+" is not a number")},a=function(t,e,r){var n,a;if("bytes"===(t=function(t){return t.startsWith("int[")?"int256"+t.slice(3):"int"===t?"int256":t.startsWith("uint[")?"uint256"+t.slice(4):"uint"===t?"uint256":t.startsWith("fixed[")?"fixed128x128"+t.slice(5):"fixed"===t?"fixed128x128":t.startsWith("ufixed[")?"ufixed128x128"+t.slice(6):"ufixed"===t?"ufixed128x128":t}(t))){if(e.replace(/^0x/i,"").length%2!=0)throw new Error("Invalid bytes characters "+e.length);return e}if("string"===t)return o.utf8ToHex(e);if("bool"===t)return e?"01":"00";if(t.startsWith("address")){if(n=r?64:40,!o.isAddress(e))throw new Error(e+" is not a valid address, or the checksum is invalid.");return o.leftPad(e.toLowerCase(),n)}if(n=function(t){var e=/^\D+(\d+).*$/.exec(t);return e?parseInt(e[1],10):null}(t),t.startsWith("bytes")){if(!n)throw new Error("bytes[] not yet supported in solidity");if(r&&(n=32),n<1||n>32||n256)throw new Error("Invalid uint"+n+" size");if((a=s(e)).bitLength()>n)throw new Error("Supplied uint exceeds width: "+n+" vs "+a.bitLength());if(a.lt(new i(0)))throw new Error("Supplied uint "+a.toString()+" is negative");return n?o.leftPad(a.toString("hex"),n/8*2):a}if(t.startsWith("int")){if(n%8||n<8||n>256)throw new Error("Invalid int"+n+" size");if((a=s(e)).bitLength()>n)throw new Error("Supplied int exceeds width: "+n+" vs "+a.bitLength());return a.lt(new i(0))?a.toTwos(n).toString("hex"):n?o.leftPad(a.toString("hex"),n/8*2):a}throw new Error("Unsupported or invalid type: "+t)},u=function(t){if(n.isArray(t))throw new Error("Autodetection of array types is not supported.");var e,r,s="";if(n.isObject(t)&&(t.hasOwnProperty("v")||t.hasOwnProperty("t")||t.hasOwnProperty("value")||t.hasOwnProperty("type"))?(e=t.t||t.type,s=t.v||t.value):(e=o.toHex(t,!0),s=o.toHex(t),e.startsWith("int")||e.startsWith("uint")||(e="bytes")),!e.startsWith("int")&&!e.startsWith("uint")||"string"!=typeof s||/^(-)?0x/i.test(s)||(s=new i(s)),n.isArray(s)){if((r=function(t){var e=/^\D+\d*\[(\d+)\]$/.exec(t);return e?parseInt(e[1],10):null}(e))&&s.length!==r)throw new Error(e+" is not matching the given array "+JSON.stringify(s));r=s.length}return n.isArray(s)?s.map(function(t){return a(e,t,r).toString("hex").replace("0x","")}).join(""):a(e,s,r).toString("hex").replace("0x","")};e.exports=function(){var t=Array.prototype.slice.call(arguments),e=n.map(t,u);return o.sha3("0x"+e.join(""))}},{"./utils.js":392,"bn.js":379,underscore:388}],392:[function(t,e,r){var n=t("underscore"),i=t("bn.js"),o=t("number-to-bn"),s=t("utf8"),a=t("eth-lib/lib/hash"),u=function(t){return t instanceof i||t&&t.constructor&&"BN"===t.constructor.name},c=function(t){return t&&t.constructor&&"BigNumber"===t.constructor.name},f=function(t){try{return o.apply(null,arguments)}catch(e){throw new Error(e+' Given value: "'+t+'"')}},h=function(t){return!!/^(0x)?[0-9a-f]{40}$/i.test(t)&&(!(!/^(0x|0X)?[0-9a-f]{40}$/.test(t)&&!/^(0x|0X)?[0-9A-F]{40}$/.test(t))||l(t))},l=function(t){t=t.replace(/^0x/i,"");for(var e=v(t.toLowerCase()).replace(/^0x/i,""),r=0;r<40;r++)if(parseInt(e[r],16)>7&&t[r].toUpperCase()!==t[r]||parseInt(e[r],16)<=7&&t[r].toLowerCase()!==t[r])return!1;return!0},d=function(t){var e="";t=(t=(t=(t=(t=s.encode(t)).replace(/^(?:\u0000)*/,"")).split("").reverse().join("")).replace(/^(?:\u0000)*/,"")).split("").reverse().join("");for(var r=0;r>>4).toString(16)),e.push((15&t[r]).toString(16));return"0x"+e.join("")},isHex:function(t){return(n.isString(t)||n.isNumber(t))&&/^(-0x)?(0x)?[0-9a-f]*$/i.test(t)},isHexStrict:b,leftPad:function(t,e,r){var n=/^0x/i.test(t)||"number"==typeof t,i=e-(t=t.toString(16).replace(/^0x/i,"")).length+1>=0?e-t.length+1:0;return(n?"0x":"")+new Array(i).join(r||"0")+t},rightPad:function(t,e,r){var n=/^0x/i.test(t)||"number"==typeof t,i=e-(t=t.toString(16).replace(/^0x/i,"")).length+1>=0?e-t.length+1:0;return(n?"0x":"")+t+new Array(i).join(r||"0")},toTwosComplement:function(t){return"0x"+f(t).toTwos(256).toString(16,64)},sha3:v}},{"bn.js":379,"eth-lib/lib/hash":380,"number-to-bn":383,underscore:388,utf8:389}],393:[function(t,e,r){e.exports={name:"web3",namespace:"ethereum",version:"1.0.0-beta.29",description:"Ethereum JavaScript API",repository:"https://github.com/ethereum/web3.js/tree/master/packages/web3",license:"LGPL-3.0",main:"src/index.js",types:"index.d.ts",bugs:{url:"https://github.com/ethereum/web3.js/issues"},keywords:["Ethereum","JavaScript","API"],author:"ethereum.org",authors:[{name:"Fabian Vogelsteller",email:"fabian@ethereum.org",homepage:"http://frozeman.de"},{name:"Marek Kotewicz",email:"marek@parity.io",url:"https://github.com/debris"},{name:"Marian Oancea",url:"https://github.com/cubedro"},{name:"Gav Wood",email:"g@parity.io",homepage:"http://gavwood.com"},{name:"Jeffery Wilcke",email:"jeffrey.wilcke@ethereum.org",url:"https://github.com/obscuren"}],dependencies:{"web3-bzz":"1.0.0-beta.29","web3-core":"1.0.0-beta.29","web3-eth":"1.0.0-beta.29","web3-eth-personal":"1.0.0-beta.29","web3-net":"1.0.0-beta.29","web3-shh":"1.0.0-beta.29","web3-utils":"1.0.0-beta.29"}}},{}],BN:[function(t,e,r){arguments[4][228][0].apply(r,arguments)},{buffer:17,dup:228}],Web3:[function(t,e,r){var n=t("../package.json").version,i=t("web3-core"),o=t("web3-eth"),s=t("web3-net"),a=t("web3-eth-personal"),u=t("web3-shh"),c=t("web3-bzz"),f=t("web3-utils"),h=function(){var t=this;i.packageInit(this,arguments),this.version=n,this.utils=f,this.eth=new o(this),this.shh=new u(this),this.bzz=new c(this);var e=this.setProvider;this.setProvider=function(r,n){return e.apply(t,arguments),this.eth.setProvider(r,n),this.shh.setProvider(r,n),this.bzz.setProvider(r),!0}};h.version=n,h.utils=f,h.modules={Eth:o,Net:s,Personal:a,Shh:u,Bzz:c},i.addProviders(h),e.exports=h},{"../package.json":393,"web3-bzz":180,"web3-core":200,"web3-eth":369,"web3-eth-personal":366,"web3-net":370,"web3-shh":378,"web3-utils":390}]},{},["Web3"])("Web3")}); \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js index 577f616c58a..83263fef062 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -18,7 +18,7 @@ var bower = require('bower'); var streamify = require('gulp-streamify'); var replace = require('gulp-replace'); -var DEST = path.join(__dirname, 'dist/'); +var DEST = path.join(__dirname, 'packages', 'web3', 'dist/'); var packages = [{ fileName: 'web3', diff --git a/packages/web3/README.md b/packages/web3/README.md index 1a1be9c7ed1..f6dc3869166 100644 --- a/packages/web3/README.md +++ b/packages/web3/README.md @@ -11,3 +11,6 @@ Please read the [documentation][docs] for more. ```bash npm install web3 ``` + +[docs]: http://web3js.readthedocs.io/en/1.0/ +[repo]: https://github.com/ethereum/web3.js diff --git a/dist/web3.js b/packages/web3/dist/web3.js similarity index 93% rename from dist/web3.js rename to packages/web3/dist/web3.js index 214956d7a04..1f9a1d5c2ef 100644 --- a/dist/web3.js +++ b/packages/web3/dist/web3.js @@ -97,7 +97,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol Entity.prototype.encode = function encode(data, enc, /* internal */reporter) { return this._getEncoder(enc).encode(data, reporter); }; - }, { "../asn1": 1, "inherits": 101, "vm": 155 }], 3: [function (require, module, exports) { + }, { "../asn1": 1, "inherits": 102, "vm": 156 }], 3: [function (require, module, exports) { var inherits = require('inherits'); var Reporter = require('../base').Reporter; var Buffer = require('buffer').Buffer; @@ -200,7 +200,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return out; }; - }, { "../base": 4, "buffer": 47, "inherits": 101 }], 4: [function (require, module, exports) { + }, { "../base": 4, "buffer": 48, "inherits": 102 }], 4: [function (require, module, exports) { var base = exports; base.Reporter = require('./reporter').Reporter; @@ -848,7 +848,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol } return this; }; - }, { "inherits": 101 }], 7: [function (require, module, exports) { + }, { "inherits": 102 }], 7: [function (require, module, exports) { var constants = require('../constants'); exports.tagClass = { @@ -1185,7 +1185,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return len; } - }, { "../../asn1": 1, "inherits": 101 }], 10: [function (require, module, exports) { + }, { "../../asn1": 1, "inherits": 102 }], 10: [function (require, module, exports) { var decoders = exports; decoders.der = require('./der'); @@ -1235,7 +1235,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol var input = new Buffer(base64, 'base64'); return DERDecoder.prototype.decode.call(this, input, options); }; - }, { "./der": 9, "buffer": 47, "inherits": 101 }], 12: [function (require, module, exports) { + }, { "./der": 9, "buffer": 48, "inherits": 102 }], 12: [function (require, module, exports) { var inherits = require('inherits'); var Buffer = require('buffer').Buffer; @@ -1477,7 +1477,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return res; } - }, { "../../asn1": 1, "buffer": 47, "inherits": 101 }], 13: [function (require, module, exports) { + }, { "../../asn1": 1, "buffer": 48, "inherits": 102 }], 13: [function (require, module, exports) { var encoders = exports; encoders.der = require('./der'); @@ -1504,7 +1504,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }out.push('-----END ' + options.label + '-----'); return out.join('\n'); }; - }, { "./der": 12, "inherits": 101 }], 15: [function (require, module, exports) { + }, { "./der": 12, "inherits": 102 }], 15: [function (require, module, exports) { 'use strict'; exports.byteLength = byteLength; @@ -1898,7 +1898,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; module.exports.AES = AES; - }, { "safe-buffer": 143 }], 19: [function (require, module, exports) { + }, { "safe-buffer": 130 }], 19: [function (require, module, exports) { var aes = require('./aes'); var Buffer = require('safe-buffer').Buffer; var Transform = require('cipher-base'); @@ -2016,7 +2016,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; module.exports = StreamCipher; - }, { "./aes": 18, "./ghash": 23, "./incr32": 24, "buffer-xor": 46, "cipher-base": 48, "inherits": 101, "safe-buffer": 143 }], 20: [function (require, module, exports) { + }, { "./aes": 18, "./ghash": 23, "./incr32": 24, "buffer-xor": 47, "cipher-base": 49, "inherits": 102, "safe-buffer": 130 }], 20: [function (require, module, exports) { var ciphers = require('./encrypter'); var deciphers = require('./decrypter'); var modes = require('./modes/list.json'); @@ -2152,7 +2152,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol exports.createDecipher = createDecipher; exports.createDecipheriv = createDecipheriv; - }, { "./aes": 18, "./authCipher": 19, "./modes": 31, "./streamCipher": 34, "cipher-base": 48, "evp_bytestokey": 84, "inherits": 101, "safe-buffer": 143 }], 22: [function (require, module, exports) { + }, { "./aes": 18, "./authCipher": 19, "./modes": 31, "./streamCipher": 34, "cipher-base": 49, "evp_bytestokey": 85, "inherits": 102, "safe-buffer": 130 }], 22: [function (require, module, exports) { var MODES = require('./modes'); var AuthCipher = require('./authCipher'); var Buffer = require('safe-buffer').Buffer; @@ -2267,7 +2267,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol exports.createCipheriv = createCipheriv; exports.createCipher = createCipher; - }, { "./aes": 18, "./authCipher": 19, "./modes": 31, "./streamCipher": 34, "cipher-base": 48, "evp_bytestokey": 84, "inherits": 101, "safe-buffer": 143 }], 23: [function (require, module, exports) { + }, { "./aes": 18, "./authCipher": 19, "./modes": 31, "./streamCipher": 34, "cipher-base": 49, "evp_bytestokey": 85, "inherits": 102, "safe-buffer": 130 }], 23: [function (require, module, exports) { var Buffer = require('safe-buffer').Buffer; var ZEROES = Buffer.alloc(16, 0); @@ -2352,7 +2352,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; module.exports = GHASH; - }, { "safe-buffer": 143 }], 24: [function (require, module, exports) { + }, { "safe-buffer": 130 }], 24: [function (require, module, exports) { function incr32(iv) { var len = iv.length; var item; @@ -2386,7 +2386,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return xor(out, pad); }; - }, { "buffer-xor": 46 }], 26: [function (require, module, exports) { + }, { "buffer-xor": 47 }], 26: [function (require, module, exports) { var Buffer = require('safe-buffer').Buffer; var xor = require('buffer-xor'); @@ -2420,7 +2420,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return out; }; - }, { "buffer-xor": 46, "safe-buffer": 143 }], 27: [function (require, module, exports) { + }, { "buffer-xor": 47, "safe-buffer": 130 }], 27: [function (require, module, exports) { var Buffer = require('safe-buffer').Buffer; function encryptByte(self, byteParam, decrypt) { @@ -2463,7 +2463,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return out; }; - }, { "safe-buffer": 143 }], 28: [function (require, module, exports) { + }, { "safe-buffer": 130 }], 28: [function (require, module, exports) { var Buffer = require('safe-buffer').Buffer; function encryptByte(self, byteParam, decrypt) { @@ -2486,7 +2486,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return out; }; - }, { "safe-buffer": 143 }], 29: [function (require, module, exports) { + }, { "safe-buffer": 130 }], 29: [function (require, module, exports) { var xor = require('buffer-xor'); var Buffer = require('safe-buffer').Buffer; var incr32 = require('../incr32'); @@ -2514,7 +2514,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol self._cache = self._cache.slice(chunk.length); return xor(chunk, pad); }; - }, { "../incr32": 24, "buffer-xor": 46, "safe-buffer": 143 }], 30: [function (require, module, exports) { + }, { "../incr32": 24, "buffer-xor": 47, "safe-buffer": 130 }], 30: [function (require, module, exports) { exports.encrypt = function (self, block) { return self._cipher.encryptBlock(block); }; @@ -2752,7 +2752,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return xor(chunk, pad); }; }).call(this, require("buffer").Buffer); - }, { "buffer": 47, "buffer-xor": 46 }], 34: [function (require, module, exports) { + }, { "buffer": 48, "buffer-xor": 47 }], 34: [function (require, module, exports) { var aes = require('./aes'); var Buffer = require('safe-buffer').Buffer; var Transform = require('cipher-base'); @@ -2780,7 +2780,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; module.exports = StreamCipher; - }, { "./aes": 18, "cipher-base": 48, "inherits": 101, "safe-buffer": 143 }], 35: [function (require, module, exports) { + }, { "./aes": 18, "cipher-base": 49, "inherits": 102, "safe-buffer": 130 }], 35: [function (require, module, exports) { var ebtk = require('evp_bytestokey'); var aes = require('browserify-aes/browser'); var DES = require('browserify-des'); @@ -2854,7 +2854,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return Object.keys(desModes).concat(aes.getCiphers()); } exports.listCiphers = exports.getCiphers = getCiphers; - }, { "browserify-aes/browser": 20, "browserify-aes/modes": 31, "browserify-des": 36, "browserify-des/modes": 37, "evp_bytestokey": 84 }], 36: [function (require, module, exports) { + }, { "browserify-aes/browser": 20, "browserify-aes/modes": 31, "browserify-des": 36, "browserify-des/modes": 37, "evp_bytestokey": 85 }], 36: [function (require, module, exports) { (function (Buffer) { var CipherBase = require('cipher-base'); var des = require('des.js'); @@ -2900,7 +2900,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return new Buffer(this._des.final()); }; }).call(this, require("buffer").Buffer); - }, { "buffer": 47, "cipher-base": 48, "des.js": 57, "inherits": 101 }], 37: [function (require, module, exports) { + }, { "buffer": 48, "cipher-base": 49, "des.js": 58, "inherits": 102 }], 37: [function (require, module, exports) { exports['des-ecb'] = { key: 8, iv: 0 @@ -2967,7 +2967,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return r; } }).call(this, require("buffer").Buffer); - }, { "bn.js": "BN", "buffer": 47, "randombytes": 127 }], 39: [function (require, module, exports) { + }, { "bn.js": "BN", "buffer": 48, "randombytes": 127 }], 39: [function (require, module, exports) { module.exports = require('./browser/algorithms.json'); }, { "./browser/algorithms.json": 40 }], 40: [function (require, module, exports) { module.exports = { @@ -3225,7 +3225,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol createVerify: createVerify }; }).call(this, require("buffer").Buffer); - }, { "./algorithms.json": 40, "./sign": 43, "./verify": 44, "buffer": 47, "create-hash": 51, "inherits": 101, "stream": 152 }], 43: [function (require, module, exports) { + }, { "./algorithms.json": 40, "./sign": 43, "./verify": 44, "buffer": 48, "create-hash": 52, "inherits": 102, "stream": 139 }], 43: [function (require, module, exports) { (function (Buffer) { // much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js var createHmac = require('create-hmac'); @@ -3374,7 +3374,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol module.exports.getKey = getKey; module.exports.makeKey = makeKey; }).call(this, require("buffer").Buffer); - }, { "./curves.json": 41, "bn.js": "BN", "browserify-rsa": 38, "buffer": 47, "create-hmac": 54, "elliptic": 67, "parse-asn1": 113 }], 44: [function (require, module, exports) { + }, { "./curves.json": 41, "bn.js": "BN", "browserify-rsa": 38, "buffer": 48, "create-hmac": 55, "elliptic": 68, "parse-asn1": 113 }], 44: [function (require, module, exports) { (function (Buffer) { // much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js var BN = require('bn.js'); @@ -3456,9 +3456,282 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol module.exports = verify; }).call(this, require("buffer").Buffer); - }, { "./curves.json": 41, "bn.js": "BN", "buffer": 47, "elliptic": 67, "parse-asn1": 113 }], 45: [function (require, module, exports) { + }, { "./curves.json": 41, "bn.js": "BN", "buffer": 48, "elliptic": 68, "parse-asn1": 113 }], 45: [function (require, module, exports) { arguments[4][17][0].apply(exports, arguments); }, { "dup": 17 }], 46: [function (require, module, exports) { + 'use strict'; + + var Buffer = require('safe-buffer').Buffer; + + var isEncoding = Buffer.isEncoding || function (encoding) { + encoding = '' + encoding; + switch (encoding && encoding.toLowerCase()) { + 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': + return true; + default: + return false; + } + }; + + function _normalizeEncoding(enc) { + if (!enc) return 'utf8'; + var retried; + while (true) { + switch (enc) { + case 'utf8': + case 'utf-8': + return 'utf8'; + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return 'utf16le'; + case 'latin1': + case 'binary': + return 'latin1'; + case 'base64': + case 'ascii': + case 'hex': + return enc; + default: + if (retried) return; // undefined + enc = ('' + enc).toLowerCase(); + retried = true; + } + } + }; + + // Do not cache `Buffer.isEncoding` when checking encoding names as some + // modules monkey-patch it to support additional encodings + function normalizeEncoding(enc) { + var nenc = _normalizeEncoding(enc); + if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc); + return nenc || enc; + } + + // StringDecoder provides an interface for efficiently splitting a series of + // buffers into a series of JS strings without breaking apart multi-byte + // characters. + exports.StringDecoder = StringDecoder; + function StringDecoder(encoding) { + this.encoding = normalizeEncoding(encoding); + var nb; + switch (this.encoding) { + case 'utf16le': + this.text = utf16Text; + this.end = utf16End; + nb = 4; + break; + case 'utf8': + this.fillLast = utf8FillLast; + nb = 4; + break; + case 'base64': + this.text = base64Text; + this.end = base64End; + nb = 3; + break; + default: + this.write = simpleWrite; + this.end = simpleEnd; + return; + } + this.lastNeed = 0; + this.lastTotal = 0; + this.lastChar = Buffer.allocUnsafe(nb); + } + + StringDecoder.prototype.write = function (buf) { + if (buf.length === 0) return ''; + var r; + var i; + if (this.lastNeed) { + r = this.fillLast(buf); + if (r === undefined) return ''; + i = this.lastNeed; + this.lastNeed = 0; + } else { + i = 0; + } + if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i); + return r || ''; + }; + + StringDecoder.prototype.end = utf8End; + + // Returns only complete characters in a Buffer + StringDecoder.prototype.text = utf8Text; + + // Attempts to complete a partial non-UTF-8 character using bytes from a Buffer + StringDecoder.prototype.fillLast = function (buf) { + if (this.lastNeed <= buf.length) { + buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed); + return this.lastChar.toString(this.encoding, 0, this.lastTotal); + } + buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length); + this.lastNeed -= buf.length; + }; + + // Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a + // continuation byte. + function utf8CheckByte(byte) { + 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; + return -1; + } + + // Checks at most 3 bytes at the end of a Buffer in order to detect an + // incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4) + // needed to complete the UTF-8 character (if applicable) are returned. + function utf8CheckIncomplete(self, buf, i) { + var j = buf.length - 1; + if (j < i) return 0; + var nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) self.lastNeed = nb - 1; + return nb; + } + if (--j < i) return 0; + nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) self.lastNeed = nb - 2; + return nb; + } + if (--j < i) return 0; + nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) { + if (nb === 2) nb = 0;else self.lastNeed = nb - 3; + } + return nb; + } + return 0; + } + + // Validates as many continuation bytes for a multi-byte UTF-8 character as + // needed or are available. If we see a non-continuation byte where we expect + // one, we "replace" the validated continuation bytes we've seen so far with + // UTF-8 replacement characters ('\ufffd'), to match v8's UTF-8 decoding + // behavior. The continuation byte check is included three times in the case + // where all of the continuation bytes for a character exist in the same buffer. + // It is also done this way as a slight performance increase instead of using a + // loop. + function utf8CheckExtraBytes(self, buf, p) { + if ((buf[0] & 0xC0) !== 0x80) { + self.lastNeed = 0; + return "\uFFFD".repeat(p); + } + if (self.lastNeed > 1 && buf.length > 1) { + if ((buf[1] & 0xC0) !== 0x80) { + self.lastNeed = 1; + return "\uFFFD".repeat(p + 1); + } + if (self.lastNeed > 2 && buf.length > 2) { + if ((buf[2] & 0xC0) !== 0x80) { + self.lastNeed = 2; + return "\uFFFD".repeat(p + 2); + } + } + } + } + + // Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer. + function utf8FillLast(buf) { + var p = this.lastTotal - this.lastNeed; + var r = utf8CheckExtraBytes(this, buf, p); + if (r !== undefined) return r; + if (this.lastNeed <= buf.length) { + buf.copy(this.lastChar, p, 0, this.lastNeed); + return this.lastChar.toString(this.encoding, 0, this.lastTotal); + } + buf.copy(this.lastChar, p, 0, buf.length); + this.lastNeed -= buf.length; + } + + // Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a + // partial character, the character's bytes are buffered until the required + // number of bytes are available. + function utf8Text(buf, i) { + var total = utf8CheckIncomplete(this, buf, i); + if (!this.lastNeed) return buf.toString('utf8', i); + this.lastTotal = total; + var end = buf.length - (total - this.lastNeed); + buf.copy(this.lastChar, 0, end); + return buf.toString('utf8', i, end); + } + + // For UTF-8, a replacement character for each buffered byte of a (partial) + // character needs to be added to the output. + function utf8End(buf) { + var r = buf && buf.length ? this.write(buf) : ''; + if (this.lastNeed) return r + "\uFFFD".repeat(this.lastTotal - this.lastNeed); + return r; + } + + // UTF-16LE typically needs two bytes per character, but even if we have an even + // number of bytes available, we need to check if we end on a leading/high + // surrogate. In that case, we need to wait for the next two bytes in order to + // decode the last character properly. + function utf16Text(buf, i) { + if ((buf.length - i) % 2 === 0) { + var r = buf.toString('utf16le', i); + if (r) { + var c = r.charCodeAt(r.length - 1); + if (c >= 0xD800 && c <= 0xDBFF) { + this.lastNeed = 2; + this.lastTotal = 4; + this.lastChar[0] = buf[buf.length - 2]; + this.lastChar[1] = buf[buf.length - 1]; + return r.slice(0, -1); + } + } + return r; + } + this.lastNeed = 1; + this.lastTotal = 2; + this.lastChar[0] = buf[buf.length - 1]; + return buf.toString('utf16le', i, buf.length - 1); + } + + // For UTF-16LE we do not explicitly append special replacement characters if we + // end on a partial character, we simply let v8 handle that. + function utf16End(buf) { + var r = buf && buf.length ? this.write(buf) : ''; + if (this.lastNeed) { + var end = this.lastTotal - this.lastNeed; + return r + this.lastChar.toString('utf16le', 0, end); + } + return r; + } + + function base64Text(buf, i) { + var n = (buf.length - i) % 3; + if (n === 0) return buf.toString('base64', i); + this.lastNeed = 3 - n; + this.lastTotal = 3; + if (n === 1) { + this.lastChar[0] = buf[buf.length - 1]; + } else { + this.lastChar[0] = buf[buf.length - 2]; + this.lastChar[1] = buf[buf.length - 1]; + } + return buf.toString('base64', i, buf.length - n); + } + + function base64End(buf) { + var r = buf && buf.length ? this.write(buf) : ''; + if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed); + return r; + } + + // Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex) + function simpleWrite(buf) { + return buf.toString(this.encoding); + } + + function simpleEnd(buf) { + return buf && buf.length ? this.write(buf) : ''; + } + }, { "safe-buffer": 130 }], 47: [function (require, module, exports) { (function (Buffer) { module.exports = function xor(a, b) { var length = Math.min(a.length, b.length); @@ -3471,7 +3744,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return buffer; }; }).call(this, require("buffer").Buffer); - }, { "buffer": 47 }], 47: [function (require, module, exports) { + }, { "buffer": 48 }], 48: [function (require, module, exports) { /*! * The buffer module from node.js, for the browser. * @@ -5136,7 +5409,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol function numberIsNaN(obj) { return obj !== obj; // eslint-disable-line no-self-compare } - }, { "base64-js": 15, "ieee754": 99 }], 48: [function (require, module, exports) { + }, { "base64-js": 15, "ieee754": 100 }], 49: [function (require, module, exports) { var Buffer = require('safe-buffer').Buffer; var Transform = require('stream').Transform; var StringDecoder = require('string_decoder').StringDecoder; @@ -5236,7 +5509,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; module.exports = CipherBase; - }, { "inherits": 101, "safe-buffer": 143, "stream": 152, "string_decoder": 153 }], 49: [function (require, module, exports) { + }, { "inherits": 102, "safe-buffer": 130, "stream": 139, "string_decoder": 46 }], 50: [function (require, module, exports) { (function (Buffer) { // Copyright Joyent, Inc. and other Node contributors. // @@ -5342,7 +5615,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return Object.prototype.toString.call(o); } }).call(this, { "isBuffer": require("../../is-buffer/index.js") }); - }, { "../../is-buffer/index.js": 102 }], 50: [function (require, module, exports) { + }, { "../../is-buffer/index.js": 103 }], 51: [function (require, module, exports) { (function (Buffer) { var elliptic = require('elliptic'); var BN = require('bn.js'); @@ -5467,7 +5740,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol } } }).call(this, require("buffer").Buffer); - }, { "bn.js": "BN", "buffer": 47, "elliptic": 67 }], 51: [function (require, module, exports) { + }, { "bn.js": "BN", "buffer": 48, "elliptic": 68 }], 52: [function (require, module, exports) { (function (Buffer) { 'use strict'; @@ -5523,7 +5796,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return new Hash(sha(alg)); }; }).call(this, require("buffer").Buffer); - }, { "./md5": 53, "buffer": 47, "cipher-base": 48, "inherits": 101, "ripemd160": 142, "sha.js": 145 }], 52: [function (require, module, exports) { + }, { "./md5": 54, "buffer": 48, "cipher-base": 49, "inherits": 102, "ripemd160": 129, "sha.js": 132 }], 53: [function (require, module, exports) { (function (Buffer) { 'use strict'; @@ -5557,7 +5830,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return buf; }; }).call(this, require("buffer").Buffer); - }, { "buffer": 47 }], 53: [function (require, module, exports) { + }, { "buffer": 48 }], 54: [function (require, module, exports) { 'use strict'; /* * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message @@ -5709,7 +5982,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol module.exports = function md5(buf) { return makeHash(buf, core_md5); }; - }, { "./make-hash": 52 }], 54: [function (require, module, exports) { + }, { "./make-hash": 53 }], 55: [function (require, module, exports) { 'use strict'; var inherits = require('inherits'); @@ -5773,7 +6046,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol } return new Hmac(alg, key); }; - }, { "./legacy": 55, "cipher-base": 48, "create-hash/md5": 53, "inherits": 101, "ripemd160": 142, "safe-buffer": 143, "sha.js": 145 }], 55: [function (require, module, exports) { + }, { "./legacy": 56, "cipher-base": 49, "create-hash/md5": 54, "inherits": 102, "ripemd160": 129, "safe-buffer": 130, "sha.js": 132 }], 56: [function (require, module, exports) { 'use strict'; var inherits = require('inherits'); @@ -5821,7 +6094,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return this._alg(Buffer.concat([this._opad, h])); }; module.exports = Hmac; - }, { "cipher-base": 48, "inherits": 101, "safe-buffer": 143 }], 56: [function (require, module, exports) { + }, { "cipher-base": 49, "inherits": 102, "safe-buffer": 130 }], 57: [function (require, module, exports) { 'use strict'; exports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes'); @@ -5915,7 +6188,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol 'POINT_CONVERSION_UNCOMPRESSED': 4, 'POINT_CONVERSION_HYBRID': 6 }; - }, { "browserify-cipher": 35, "browserify-sign": 42, "browserify-sign/algos": 39, "create-ecdh": 50, "create-hash": 51, "create-hmac": 54, "diffie-hellman": 63, "pbkdf2": 114, "public-encrypt": 121, "randombytes": 127, "randomfill": 128 }], 57: [function (require, module, exports) { + }, { "browserify-cipher": 35, "browserify-sign": 42, "browserify-sign/algos": 39, "create-ecdh": 51, "create-hash": 52, "create-hmac": 55, "diffie-hellman": 64, "pbkdf2": 114, "public-encrypt": 121, "randombytes": 127, "randomfill": 128 }], 58: [function (require, module, exports) { 'use strict'; exports.utils = require('./des/utils'); @@ -5923,7 +6196,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol exports.DES = require('./des/des'); exports.CBC = require('./des/cbc'); exports.EDE = require('./des/ede'); - }, { "./des/cbc": 58, "./des/cipher": 59, "./des/des": 60, "./des/ede": 61, "./des/utils": 62 }], 58: [function (require, module, exports) { + }, { "./des/cbc": 59, "./des/cipher": 60, "./des/des": 61, "./des/ede": 62, "./des/utils": 63 }], 59: [function (require, module, exports) { 'use strict'; var assert = require('minimalistic-assert'); @@ -5990,7 +6263,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol } } }; - }, { "inherits": 101, "minimalistic-assert": 107 }], 59: [function (require, module, exports) { + }, { "inherits": 102, "minimalistic-assert": 107 }], 60: [function (require, module, exports) { 'use strict'; var assert = require('minimalistic-assert'); @@ -6116,7 +6389,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return this._unpad(out); }; - }, { "minimalistic-assert": 107 }], 60: [function (require, module, exports) { + }, { "minimalistic-assert": 107 }], 61: [function (require, module, exports) { 'use strict'; var assert = require('minimalistic-assert'); @@ -6252,7 +6525,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol // Reverse Initial Permutation utils.rip(l, r, out, off); }; - }, { "../des": 57, "inherits": 101, "minimalistic-assert": 107 }], 61: [function (require, module, exports) { + }, { "../des": 58, "inherits": 102, "minimalistic-assert": 107 }], 62: [function (require, module, exports) { 'use strict'; var assert = require('minimalistic-assert'); @@ -6300,7 +6573,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol EDE.prototype._pad = DES.prototype._pad; EDE.prototype._unpad = DES.prototype._unpad; - }, { "../des": 57, "inherits": 101, "minimalistic-assert": 107 }], 62: [function (require, module, exports) { + }, { "../des": 58, "inherits": 102, "minimalistic-assert": 107 }], 63: [function (require, module, exports) { 'use strict'; exports.readUInt32BE = function readUInt32BE(bytes, off) { @@ -6505,7 +6778,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol out.push(str.slice(i, i + group)); }return out.join(' '); }; - }, {}], 63: [function (require, module, exports) { + }, {}], 64: [function (require, module, exports) { (function (Buffer) { var generatePrime = require('./lib/generatePrime'); var primes = require('./lib/primes.json'); @@ -6550,7 +6823,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol exports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman; exports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman; }).call(this, require("buffer").Buffer); - }, { "./lib/dh": 64, "./lib/generatePrime": 65, "./lib/primes.json": 66, "buffer": 47 }], 64: [function (require, module, exports) { + }, { "./lib/dh": 65, "./lib/generatePrime": 66, "./lib/primes.json": 67, "buffer": 48 }], 65: [function (require, module, exports) { (function (Buffer) { var BN = require('bn.js'); var MillerRabin = require('miller-rabin'); @@ -6714,7 +6987,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol } } }).call(this, require("buffer").Buffer); - }, { "./generatePrime": 65, "bn.js": "BN", "buffer": 47, "miller-rabin": 106, "randombytes": 127 }], 65: [function (require, module, exports) { + }, { "./generatePrime": 66, "bn.js": "BN", "buffer": 48, "miller-rabin": 106, "randombytes": 127 }], 66: [function (require, module, exports) { var randomBytes = require('randombytes'); module.exports = findPrime; findPrime.simpleSieve = simpleSieve; @@ -6812,7 +7085,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol } } } - }, { "bn.js": "BN", "miller-rabin": 106, "randombytes": 127 }], 66: [function (require, module, exports) { + }, { "bn.js": "BN", "miller-rabin": 106, "randombytes": 127 }], 67: [function (require, module, exports) { module.exports = { "modp1": { "gen": "02", @@ -6847,7 +7120,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol "prime": "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff" } }; - }, {}], 67: [function (require, module, exports) { + }, {}], 68: [function (require, module, exports) { 'use strict'; var elliptic = exports; @@ -6861,7 +7134,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol // Protocols elliptic.ec = require('./elliptic/ec'); elliptic.eddsa = require('./elliptic/eddsa'); - }, { "../package.json": 82, "./elliptic/curve": 70, "./elliptic/curves": 73, "./elliptic/ec": 74, "./elliptic/eddsa": 77, "./elliptic/utils": 81, "brorand": 16 }], 68: [function (require, module, exports) { + }, { "../package.json": 83, "./elliptic/curve": 71, "./elliptic/curves": 74, "./elliptic/ec": 75, "./elliptic/eddsa": 78, "./elliptic/utils": 82, "brorand": 16 }], 69: [function (require, module, exports) { 'use strict'; var BN = require('bn.js'); @@ -7192,7 +7465,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol r = r.dbl(); }return r; }; - }, { "../../elliptic": 67, "bn.js": "BN" }], 69: [function (require, module, exports) { + }, { "../../elliptic": 68, "bn.js": "BN" }], 70: [function (require, module, exports) { 'use strict'; var curve = require('../curve'); @@ -7579,7 +7852,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol // Compatibility with BaseCurve Point.prototype.toP = Point.prototype.normalize; Point.prototype.mixedAdd = Point.prototype.add; - }, { "../../elliptic": 67, "../curve": 70, "bn.js": "BN", "inherits": 101 }], 70: [function (require, module, exports) { + }, { "../../elliptic": 68, "../curve": 71, "bn.js": "BN", "inherits": 102 }], 71: [function (require, module, exports) { 'use strict'; var curve = exports; @@ -7588,7 +7861,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol curve.short = require('./short'); curve.mont = require('./mont'); curve.edwards = require('./edwards'); - }, { "./base": 68, "./edwards": 69, "./mont": 71, "./short": 72 }], 71: [function (require, module, exports) { + }, { "./base": 69, "./edwards": 70, "./mont": 72, "./short": 73 }], 72: [function (require, module, exports) { 'use strict'; var curve = require('../curve'); @@ -7764,7 +8037,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return this.x.fromRed(); }; - }, { "../../elliptic": 67, "../curve": 70, "bn.js": "BN", "inherits": 101 }], 72: [function (require, module, exports) { + }, { "../../elliptic": 68, "../curve": 71, "bn.js": "BN", "inherits": 102 }], 73: [function (require, module, exports) { 'use strict'; var curve = require('../curve'); @@ -8628,7 +8901,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol // XXX This code assumes that zero is always zero in red return this.z.cmpn(0) === 0; }; - }, { "../../elliptic": 67, "../curve": 70, "bn.js": "BN", "inherits": 101 }], 73: [function (require, module, exports) { + }, { "../../elliptic": 68, "../curve": 71, "bn.js": "BN", "inherits": 102 }], 74: [function (require, module, exports) { 'use strict'; var curves = exports; @@ -8785,7 +9058,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol gRed: false, g: ['79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798', '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8', pre] }); - }, { "../elliptic": 67, "./precomputed/secp256k1": 80, "hash.js": 86 }], 74: [function (require, module, exports) { + }, { "../elliptic": 68, "./precomputed/secp256k1": 81, "hash.js": 87 }], 75: [function (require, module, exports) { 'use strict'; var BN = require('bn.js'); @@ -9000,7 +9273,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol } throw new Error('Unable to find valid recovery factor'); }; - }, { "../../elliptic": 67, "./key": 75, "./signature": 76, "bn.js": "BN", "hmac-drbg": 98 }], 75: [function (require, module, exports) { + }, { "../../elliptic": 68, "./key": 76, "./signature": 77, "bn.js": "BN", "hmac-drbg": 99 }], 76: [function (require, module, exports) { 'use strict'; var BN = require('bn.js'); @@ -9106,7 +9379,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol KeyPair.prototype.inspect = function inspect() { return ''; }; - }, { "../../elliptic": 67, "bn.js": "BN" }], 76: [function (require, module, exports) { + }, { "../../elliptic": 68, "bn.js": "BN" }], 77: [function (require, module, exports) { 'use strict'; var BN = require('bn.js'); @@ -9235,7 +9508,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol res = res.concat(backHalf); return utils.encode(res, enc); }; - }, { "../../elliptic": 67, "bn.js": "BN" }], 77: [function (require, module, exports) { + }, { "../../elliptic": 68, "bn.js": "BN" }], 78: [function (require, module, exports) { 'use strict'; var hash = require('hash.js'); @@ -9351,7 +9624,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol EDDSA.prototype.isPoint = function isPoint(val) { return val instanceof this.pointClass; }; - }, { "../../elliptic": 67, "./key": 78, "./signature": 79, "hash.js": 86 }], 78: [function (require, module, exports) { + }, { "../../elliptic": 68, "./key": 79, "./signature": 80, "hash.js": 87 }], 79: [function (require, module, exports) { 'use strict'; var elliptic = require('../../elliptic'); @@ -9442,7 +9715,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; module.exports = KeyPair; - }, { "../../elliptic": 67 }], 79: [function (require, module, exports) { + }, { "../../elliptic": 68 }], 80: [function (require, module, exports) { 'use strict'; var BN = require('bn.js'); @@ -9506,7 +9779,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; module.exports = Signature; - }, { "../../elliptic": 67, "bn.js": "BN" }], 80: [function (require, module, exports) { + }, { "../../elliptic": 68, "bn.js": "BN" }], 81: [function (require, module, exports) { module.exports = { doubles: { step: 4, @@ -9517,7 +9790,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol points: [['f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9', '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672'], ['2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4', 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6'], ['5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc', '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da'], ['acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe', 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37'], ['774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb', 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b'], ['f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8', 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81'], ['d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e', '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58'], ['defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34', '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77'], ['2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c', '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a'], ['352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5', '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c'], ['2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f', '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67'], ['9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714', '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402'], ['daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729', 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55'], ['c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db', '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482'], ['6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4', 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82'], ['1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5', 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396'], ['605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479', '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49'], ['62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d', '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf'], ['80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f', '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a'], ['7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb', 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7'], ['d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9', 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933'], ['49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963', '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a'], ['77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74', '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6'], ['f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530', 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37'], ['463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b', '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e'], ['f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247', 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6'], ['caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1', 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476'], ['2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120', '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40'], ['7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435', '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61'], ['754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18', '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683'], ['e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8', '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5'], ['186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb', '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b'], ['df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f', '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417'], ['5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143', 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868'], ['290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba', 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a'], ['af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45', 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6'], ['766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a', '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996'], ['59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e', 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e'], ['f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8', 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d'], ['7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c', '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2'], ['948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519', 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e'], ['7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab', '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437'], ['3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca', 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311'], ['d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf', '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4'], ['1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610', '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575'], ['733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4', 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d'], ['15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c', 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d'], ['a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940', 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629'], ['e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980', 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06'], ['311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3', '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374'], ['34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf', '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee'], ['f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63', '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1'], ['d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448', 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b'], ['32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf', '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661'], ['7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5', '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6'], ['ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6', '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e'], ['16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5', '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d'], ['eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99', 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc'], ['78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51', 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4'], ['494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5', '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c'], ['a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5', '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b'], ['c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997', '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913'], ['841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881', '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154'], ['5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5', '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865'], ['36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66', 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc'], ['336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726', 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224'], ['8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede', '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e'], ['1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94', '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6'], ['85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31', '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511'], ['29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51', 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b'], ['a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252', 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2'], ['4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5', 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c'], ['d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b', '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3'], ['ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4', '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d'], ['af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f', '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700'], ['e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889', '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4'], ['591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246', 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196'], ['11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984', '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4'], ['3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a', 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257'], ['cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030', 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13'], ['c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197', '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096'], ['c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593', 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38'], ['a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef', '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f'], ['347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38', '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448'], ['da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a', '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a'], ['c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111', '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4'], ['4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502', '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437'], ['3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea', 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7'], ['cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26', '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d'], ['b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986', '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a'], ['d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e', '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54'], ['48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4', '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77'], ['dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda', 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517'], ['6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859', 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10'], ['e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f', 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125'], ['eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c', '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e'], ['13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942', 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1'], ['ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a', '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2'], ['b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80', '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423'], ['ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d', '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8'], ['8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1', 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758'], ['52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63', 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375'], ['e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352', '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d'], ['7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193', 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec'], ['5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00', '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0'], ['32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58', 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c'], ['e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7', 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4'], ['8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8', 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f'], ['4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e', '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649'], ['3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d', 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826'], ['674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b', '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5'], ['d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f', 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87'], ['30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6', '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b'], ['be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297', '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc'], ['93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a', '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c'], ['b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c', 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f'], ['d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52', '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a'], ['d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb', 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46'], ['463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065', 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f'], ['7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917', '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03'], ['74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9', 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08'], ['30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3', '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8'], ['9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57', '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373'], ['176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66', 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3'], ['75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8', '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8'], ['809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721', '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1'], ['1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180', '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9']] } }; - }, {}], 81: [function (require, module, exports) { + }, {}], 82: [function (require, module, exports) { 'use strict'; var utils = exports; @@ -9619,47 +9892,29 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return new BN(bytes, 'hex', 'le'); } utils.intFromLE = intFromLE; - }, { "bn.js": "BN", "minimalistic-assert": 107, "minimalistic-crypto-utils": 108 }], 82: [function (require, module, exports) { + }, { "bn.js": "BN", "minimalistic-assert": 107, "minimalistic-crypto-utils": 108 }], 83: [function (require, module, exports) { module.exports = { - "_args": [[{ - "raw": "elliptic@^6.2.3", - "scope": null, - "escapedName": "elliptic", - "name": "elliptic", - "rawSpec": "^6.2.3", - "spec": ">=6.2.3 <7.0.0", - "type": "range" - }, "/Users/frozeman/Sites/_ethereum/web3/node_modules/secp256k1"]], - "_from": "elliptic@>=6.2.3 <7.0.0", + "_from": "elliptic@^6.0.0", "_id": "elliptic@6.4.0", - "_inCache": true, + "_inBundle": false, + "_integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", "_location": "/elliptic", - "_nodeVersion": "7.0.0", - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/elliptic-6.4.0.tgz_1487798866428_0.30510620190761983" - }, - "_npmUser": { - "name": "indutny", - "email": "fedor@indutny.com" - }, - "_npmVersion": "3.10.8", "_phantomChildren": {}, "_requested": { - "raw": "elliptic@^6.2.3", - "scope": null, - "escapedName": "elliptic", + "type": "range", + "registry": true, + "raw": "elliptic@^6.0.0", "name": "elliptic", - "rawSpec": "^6.2.3", - "spec": ">=6.2.3 <7.0.0", - "type": "range" + "escapedName": "elliptic", + "rawSpec": "^6.0.0", + "saveSpec": null, + "fetchSpec": "^6.0.0" }, "_requiredBy": ["/browserify-sign", "/create-ecdh", "/secp256k1"], "_resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", "_shasum": "cac9af8762c85836187003c8dfe193e5e2eae5df", - "_shrinkwrap": null, - "_spec": "elliptic@^6.2.3", - "_where": "/Users/frozeman/Sites/_ethereum/web3/node_modules/secp256k1", + "_spec": "elliptic@^6.0.0", + "_where": "/Users/gasolin/Documents/eth/web3.js/node_modules/browserify-sign", "author": { "name": "Fedor Indutny", "email": "fedor@indutny.com" @@ -9667,6 +9922,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol "bugs": { "url": "https://github.com/indutny/elliptic/issues" }, + "bundleDependencies": false, "dependencies": { "bn.js": "^4.4.0", "brorand": "^1.0.1", @@ -9676,6 +9932,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol "minimalistic-assert": "^1.0.0", "minimalistic-crypto-utils": "^1.0.0" }, + "deprecated": false, "description": "EC cryptography", "devDependencies": { "brfs": "^1.4.3", @@ -9693,24 +9950,12 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol "jshint": "^2.6.0", "mocha": "^2.1.0" }, - "directories": {}, - "dist": { - "shasum": "cac9af8762c85836187003c8dfe193e5e2eae5df", - "tarball": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz" - }, "files": ["lib"], - "gitHead": "6b0d2b76caae91471649c8e21f0b1d3ba0f96090", "homepage": "https://github.com/indutny/elliptic", "keywords": ["EC", "Elliptic", "curve", "Cryptography"], "license": "MIT", "main": "lib/elliptic.js", - "maintainers": [{ - "name": "indutny", - "email": "fedor@indutny.com" - }], "name": "elliptic", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+ssh://git@github.com/indutny/elliptic.git" @@ -9725,7 +9970,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }, "version": "6.4.0" }; - }, {}], 83: [function (require, module, exports) { + }, {}], 84: [function (require, module, exports) { // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a @@ -9995,7 +10240,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol function isUndefined(arg) { return arg === void 0; } - }, {}], 84: [function (require, module, exports) { + }, {}], 85: [function (require, module, exports) { var Buffer = require('safe-buffer').Buffer; var MD5 = require('md5.js'); @@ -10041,7 +10286,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol } module.exports = EVP_BytesToKey; - }, { "md5.js": 104, "safe-buffer": 143 }], 85: [function (require, module, exports) { + }, { "md5.js": 104, "safe-buffer": 130 }], 86: [function (require, module, exports) { (function (Buffer) { 'use strict'; @@ -10129,7 +10374,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol module.exports = HashBase; }).call(this, require("buffer").Buffer); - }, { "buffer": 47, "inherits": 101, "stream": 152 }], 86: [function (require, module, exports) { + }, { "buffer": 48, "inherits": 102, "stream": 139 }], 87: [function (require, module, exports) { var hash = exports; hash.utils = require('./hash/utils'); @@ -10145,7 +10390,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol hash.sha384 = hash.sha.sha384; hash.sha512 = hash.sha.sha512; hash.ripemd160 = hash.ripemd.ripemd160; - }, { "./hash/common": 87, "./hash/hmac": 88, "./hash/ripemd": 89, "./hash/sha": 90, "./hash/utils": 97 }], 87: [function (require, module, exports) { + }, { "./hash/common": 88, "./hash/hmac": 89, "./hash/ripemd": 90, "./hash/sha": 91, "./hash/utils": 98 }], 88: [function (require, module, exports) { 'use strict'; var utils = require('./utils'); @@ -10234,7 +10479,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return res; }; - }, { "./utils": 97, "minimalistic-assert": 107 }], 88: [function (require, module, exports) { + }, { "./utils": 98, "minimalistic-assert": 107 }], 89: [function (require, module, exports) { 'use strict'; var utils = require('./utils'); @@ -10279,7 +10524,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol this.outer.update(this.inner.digest()); return this.outer.digest(enc); }; - }, { "./utils": 97, "minimalistic-assert": 107 }], 89: [function (require, module, exports) { + }, { "./utils": 98, "minimalistic-assert": 107 }], 90: [function (require, module, exports) { 'use strict'; var utils = require('./utils'); @@ -10363,7 +10608,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol var s = [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]; var sh = [8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]; - }, { "./common": 87, "./utils": 97 }], 90: [function (require, module, exports) { + }, { "./common": 88, "./utils": 98 }], 91: [function (require, module, exports) { 'use strict'; exports.sha1 = require('./sha/1'); @@ -10371,7 +10616,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol exports.sha256 = require('./sha/256'); exports.sha384 = require('./sha/384'); exports.sha512 = require('./sha/512'); - }, { "./sha/1": 91, "./sha/224": 92, "./sha/256": 93, "./sha/384": 94, "./sha/512": 95 }], 91: [function (require, module, exports) { + }, { "./sha/1": 92, "./sha/224": 93, "./sha/256": 94, "./sha/384": 95, "./sha/512": 96 }], 92: [function (require, module, exports) { 'use strict'; var utils = require('../utils'); @@ -10435,7 +10680,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol SHA1.prototype._digest = function digest(enc) { if (enc === 'hex') return utils.toHex32(this.h, 'big');else return utils.split32(this.h, 'big'); }; - }, { "../common": 87, "../utils": 97, "./common": 96 }], 92: [function (require, module, exports) { + }, { "../common": 88, "../utils": 98, "./common": 97 }], 93: [function (require, module, exports) { 'use strict'; var utils = require('../utils'); @@ -10459,7 +10704,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol // Just truncate output if (enc === 'hex') return utils.toHex32(this.h.slice(0, 7), 'big');else return utils.split32(this.h.slice(0, 7), 'big'); }; - }, { "../utils": 97, "./256": 93 }], 93: [function (require, module, exports) { + }, { "../utils": 98, "./256": 94 }], 94: [function (require, module, exports) { 'use strict'; var utils = require('../utils'); @@ -10540,7 +10785,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol SHA256.prototype._digest = function digest(enc) { if (enc === 'hex') return utils.toHex32(this.h, 'big');else return utils.split32(this.h, 'big'); }; - }, { "../common": 87, "../utils": 97, "./common": 96, "minimalistic-assert": 107 }], 94: [function (require, module, exports) { + }, { "../common": 88, "../utils": 98, "./common": 97, "minimalistic-assert": 107 }], 95: [function (require, module, exports) { 'use strict'; var utils = require('../utils'); @@ -10564,7 +10809,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol SHA384.prototype._digest = function digest(enc) { if (enc === 'hex') return utils.toHex32(this.h.slice(0, 12), 'big');else return utils.split32(this.h.slice(0, 12), 'big'); }; - }, { "../utils": 97, "./512": 95 }], 95: [function (require, module, exports) { + }, { "../utils": 98, "./512": 96 }], 96: [function (require, module, exports) { 'use strict'; var utils = require('../utils'); @@ -10812,7 +11057,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol if (r < 0) r += 0x100000000; return r; } - }, { "../common": 87, "../utils": 97, "minimalistic-assert": 107 }], 96: [function (require, module, exports) { + }, { "../common": 88, "../utils": 98, "minimalistic-assert": 107 }], 97: [function (require, module, exports) { 'use strict'; var utils = require('../utils'); @@ -10859,7 +11104,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return rotr32(x, 17) ^ rotr32(x, 19) ^ x >>> 10; } exports.g1_256 = g1_256; - }, { "../utils": 97 }], 97: [function (require, module, exports) { + }, { "../utils": 98 }], 98: [function (require, module, exports) { 'use strict'; var assert = require('minimalistic-assert'); @@ -11084,7 +11329,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return r >>> 0; } exports.shr64_lo = shr64_lo; - }, { "inherits": 101, "minimalistic-assert": 107 }], 98: [function (require, module, exports) { + }, { "inherits": 102, "minimalistic-assert": 107 }], 99: [function (require, module, exports) { 'use strict'; var hash = require('hash.js'); @@ -11186,7 +11431,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol this._reseed++; return utils.encode(res, enc); }; - }, { "hash.js": 86, "minimalistic-assert": 107, "minimalistic-crypto-utils": 108 }], 99: [function (require, module, exports) { + }, { "hash.js": 87, "minimalistic-assert": 107, "minimalistic-crypto-utils": 108 }], 100: [function (require, module, exports) { exports.read = function (buffer, offset, isLE, mLen, nBytes) { var e, m; var eLen = nBytes * 8 - mLen - 1; @@ -11271,7 +11516,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol buffer[offset + i - d] |= s * 128; }; - }, {}], 100: [function (require, module, exports) { + }, {}], 101: [function (require, module, exports) { var indexOf = [].indexOf; @@ -11282,7 +11527,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol } return -1; }; - }, {}], 101: [function (require, module, exports) { + }, {}], 102: [function (require, module, exports) { if (typeof Object.create === 'function') { // implementation from standard node.js 'util' module module.exports = function inherits(ctor, superCtor) { @@ -11306,7 +11551,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol ctor.prototype.constructor = ctor; }; } - }, {}], 102: [function (require, module, exports) { + }, {}], 103: [function (require, module, exports) { /*! * Determine if an object is a Buffer * @@ -11328,12 +11573,6 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol function isSlowBuffer(obj) { return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0)); } - }, {}], 103: [function (require, module, exports) { - var toString = {}.toString; - - module.exports = Array.isArray || function (arr) { - return toString.call(arr) == '[object Array]'; - }; }, {}], 104: [function (require, module, exports) { (function (Buffer) { 'use strict'; @@ -11483,7 +11722,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol module.exports = MD5; }).call(this, require("buffer").Buffer); - }, { "buffer": 47, "hash-base": 105, "inherits": 101 }], 105: [function (require, module, exports) { + }, { "buffer": 48, "hash-base": 105, "inherits": 102 }], 105: [function (require, module, exports) { 'use strict'; var Buffer = require('safe-buffer').Buffer; @@ -11581,7 +11820,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; module.exports = HashBase; - }, { "inherits": 101, "safe-buffer": 143, "stream": 152 }], 106: [function (require, module, exports) { + }, { "inherits": 102, "safe-buffer": 130, "stream": 139 }], 106: [function (require, module, exports) { var bn = require('bn.js'); var brorand = require('brorand'); @@ -11910,7 +12149,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; }; }).call(this, require("buffer").Buffer); - }, { "browserify-aes": 20, "buffer": 47, "evp_bytestokey": 84 }], 113: [function (require, module, exports) { + }, { "browserify-aes": 20, "buffer": 48, "evp_bytestokey": 85 }], 113: [function (require, module, exports) { (function (Buffer) { var asn1 = require('./asn1'); var aesid = require('./aesid.json'); @@ -12022,7 +12261,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return Buffer.concat(out); } }).call(this, require("buffer").Buffer); - }, { "./aesid.json": 109, "./asn1": 110, "./fixProc": 112, "browserify-aes": 20, "buffer": 47, "pbkdf2": 114 }], 114: [function (require, module, exports) { + }, { "./aesid.json": 109, "./asn1": 110, "./fixProc": 112, "browserify-aes": 20, "buffer": 48, "pbkdf2": 114 }], 114: [function (require, module, exports) { exports.pbkdf2 = require('./lib/async'); @@ -12125,7 +12364,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }), callback); }; }).call(this, require('_process'), typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}); - }, { "./default-encoding": 116, "./precondition": 117, "./sync": 118, "_process": 120, "safe-buffer": 143 }], 116: [function (require, module, exports) { + }, { "./default-encoding": 116, "./precondition": 117, "./sync": 118, "_process": 120, "safe-buffer": 130 }], 116: [function (require, module, exports) { (function (process) { var defaultEncoding; /* istanbul ignore next */ @@ -12262,7 +12501,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol } module.exports = pbkdf2; - }, { "./default-encoding": 116, "./precondition": 117, "create-hash/md5": 53, "ripemd160": 142, "safe-buffer": 143, "sha.js": 145 }], 119: [function (require, module, exports) { + }, { "./default-encoding": 116, "./precondition": 117, "create-hash/md5": 54, "ripemd160": 129, "safe-buffer": 130, "sha.js": 132 }], 119: [function (require, module, exports) { (function (process) { 'use strict'; @@ -12523,7 +12762,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return out; } }).call(this, require("buffer").Buffer); - }, { "buffer": 47, "create-hash": 51 }], 123: [function (require, module, exports) { + }, { "buffer": 48, "create-hash": 52 }], 123: [function (require, module, exports) { (function (Buffer) { var parseKeys = require('parse-asn1'); var mgf = require('./mgf'); @@ -12634,7 +12873,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return dif; } }).call(this, require("buffer").Buffer); - }, { "./mgf": 122, "./withPublic": 125, "./xor": 126, "bn.js": "BN", "browserify-rsa": 38, "buffer": 47, "create-hash": 51, "parse-asn1": 113 }], 124: [function (require, module, exports) { + }, { "./mgf": 122, "./withPublic": 125, "./xor": 126, "bn.js": "BN", "browserify-rsa": 38, "buffer": 48, "create-hash": 52, "parse-asn1": 113 }], 124: [function (require, module, exports) { (function (Buffer) { var parseKeys = require('parse-asn1'); var randomBytes = require('randombytes'); @@ -12732,7 +12971,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return out; } }).call(this, require("buffer").Buffer); - }, { "./mgf": 122, "./withPublic": 125, "./xor": 126, "bn.js": "BN", "browserify-rsa": 38, "buffer": 47, "create-hash": 51, "parse-asn1": 113, "randombytes": 127 }], 125: [function (require, module, exports) { + }, { "./mgf": 122, "./withPublic": 125, "./xor": 126, "bn.js": "BN", "browserify-rsa": 38, "buffer": 48, "create-hash": 52, "parse-asn1": 113, "randombytes": 127 }], 125: [function (require, module, exports) { (function (Buffer) { var bn = require('bn.js'); function withPublic(paddedMsg, key) { @@ -12741,7 +12980,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol module.exports = withPublic; }).call(this, require("buffer").Buffer); - }, { "bn.js": "BN", "buffer": 47 }], 126: [function (require, module, exports) { + }, { "bn.js": "BN", "buffer": 48 }], 126: [function (require, module, exports) { module.exports = function xor(a, b) { var len = a.length; var i = -1; @@ -12755,7 +12994,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol 'use strict'; function oldBrowser() { - throw new Error('secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11'); + throw new Error('Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11'); } var Buffer = require('safe-buffer').Buffer; @@ -12792,7 +13031,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return bytes; } }).call(this, require('_process'), typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}); - }, { "_process": 120, "safe-buffer": 143 }], 128: [function (require, module, exports) { + }, { "_process": 120, "safe-buffer": 130 }], 128: [function (require, module, exports) { (function (process, global) { 'use strict'; @@ -12905,1192 +13144,1108 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return actualFill(buf, offset, size); } }).call(this, require('_process'), typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}); - }, { "_process": 120, "randombytes": 127, "safe-buffer": 143 }], 129: [function (require, module, exports) { - module.exports = require('./lib/_stream_duplex.js'); - }, { "./lib/_stream_duplex.js": 130 }], 130: [function (require, module, exports) { - // Copyright Joyent, Inc. and other Node contributors. - // - // Permission is hereby granted, free of charge, to any person obtaining a - // copy of this software and associated documentation files (the - // "Software"), to deal in the Software without restriction, including - // without limitation the rights to use, copy, modify, merge, publish, - // distribute, sublicense, and/or sell copies of the Software, and to permit - // persons to whom the Software is furnished to do so, subject to the - // following conditions: - // - // The above copyright notice and this permission notice shall be included - // in all copies or substantial portions of the Software. - // - // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN - // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - // USE OR OTHER DEALINGS IN THE SOFTWARE. + }, { "_process": 120, "randombytes": 127, "safe-buffer": 130 }], 129: [function (require, module, exports) { + (function (Buffer) { + 'use strict'; - // a duplex stream is just a stream that is both readable and writable. - // Since JS doesn't have multiple prototypal inheritance, this class - // prototypally inherits from Readable, and then parasitically from - // Writable. + var inherits = require('inherits'); + var HashBase = require('hash-base'); - 'use strict'; + function RIPEMD160() { + HashBase.call(this, 64); - /**/ + // state + this._a = 0x67452301; + this._b = 0xefcdab89; + this._c = 0x98badcfe; + this._d = 0x10325476; + this._e = 0xc3d2e1f0; + } - var processNextTick = require('process-nextick-args'); - /**/ + inherits(RIPEMD160, HashBase); - /**/ - var objectKeys = Object.keys || function (obj) { - var keys = []; - for (var key in obj) { - keys.push(key); - }return keys; - }; - /**/ + RIPEMD160.prototype._update = function () { + var m = new Array(16); + for (var i = 0; i < 16; ++i) { + m[i] = this._block.readInt32LE(i * 4); + }var al = this._a; + var bl = this._b; + var cl = this._c; + var dl = this._d; + var el = this._e; - module.exports = Duplex; + // Mj = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 + // K = 0x00000000 + // Sj = 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8 + al = fn1(al, bl, cl, dl, el, m[0], 0x00000000, 11);cl = rotl(cl, 10); + el = fn1(el, al, bl, cl, dl, m[1], 0x00000000, 14);bl = rotl(bl, 10); + dl = fn1(dl, el, al, bl, cl, m[2], 0x00000000, 15);al = rotl(al, 10); + cl = fn1(cl, dl, el, al, bl, m[3], 0x00000000, 12);el = rotl(el, 10); + bl = fn1(bl, cl, dl, el, al, m[4], 0x00000000, 5);dl = rotl(dl, 10); + al = fn1(al, bl, cl, dl, el, m[5], 0x00000000, 8);cl = rotl(cl, 10); + el = fn1(el, al, bl, cl, dl, m[6], 0x00000000, 7);bl = rotl(bl, 10); + dl = fn1(dl, el, al, bl, cl, m[7], 0x00000000, 9);al = rotl(al, 10); + cl = fn1(cl, dl, el, al, bl, m[8], 0x00000000, 11);el = rotl(el, 10); + bl = fn1(bl, cl, dl, el, al, m[9], 0x00000000, 13);dl = rotl(dl, 10); + al = fn1(al, bl, cl, dl, el, m[10], 0x00000000, 14);cl = rotl(cl, 10); + el = fn1(el, al, bl, cl, dl, m[11], 0x00000000, 15);bl = rotl(bl, 10); + dl = fn1(dl, el, al, bl, cl, m[12], 0x00000000, 6);al = rotl(al, 10); + cl = fn1(cl, dl, el, al, bl, m[13], 0x00000000, 7);el = rotl(el, 10); + bl = fn1(bl, cl, dl, el, al, m[14], 0x00000000, 9);dl = rotl(dl, 10); + al = fn1(al, bl, cl, dl, el, m[15], 0x00000000, 8);cl = rotl(cl, 10); - /**/ - var util = require('core-util-is'); - util.inherits = require('inherits'); - /**/ + // Mj = 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8 + // K = 0x5a827999 + // Sj = 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12 + el = fn2(el, al, bl, cl, dl, m[7], 0x5a827999, 7);bl = rotl(bl, 10); + dl = fn2(dl, el, al, bl, cl, m[4], 0x5a827999, 6);al = rotl(al, 10); + cl = fn2(cl, dl, el, al, bl, m[13], 0x5a827999, 8);el = rotl(el, 10); + bl = fn2(bl, cl, dl, el, al, m[1], 0x5a827999, 13);dl = rotl(dl, 10); + al = fn2(al, bl, cl, dl, el, m[10], 0x5a827999, 11);cl = rotl(cl, 10); + el = fn2(el, al, bl, cl, dl, m[6], 0x5a827999, 9);bl = rotl(bl, 10); + dl = fn2(dl, el, al, bl, cl, m[15], 0x5a827999, 7);al = rotl(al, 10); + cl = fn2(cl, dl, el, al, bl, m[3], 0x5a827999, 15);el = rotl(el, 10); + bl = fn2(bl, cl, dl, el, al, m[12], 0x5a827999, 7);dl = rotl(dl, 10); + al = fn2(al, bl, cl, dl, el, m[0], 0x5a827999, 12);cl = rotl(cl, 10); + el = fn2(el, al, bl, cl, dl, m[9], 0x5a827999, 15);bl = rotl(bl, 10); + dl = fn2(dl, el, al, bl, cl, m[5], 0x5a827999, 9);al = rotl(al, 10); + cl = fn2(cl, dl, el, al, bl, m[2], 0x5a827999, 11);el = rotl(el, 10); + bl = fn2(bl, cl, dl, el, al, m[14], 0x5a827999, 7);dl = rotl(dl, 10); + al = fn2(al, bl, cl, dl, el, m[11], 0x5a827999, 13);cl = rotl(cl, 10); + el = fn2(el, al, bl, cl, dl, m[8], 0x5a827999, 12);bl = rotl(bl, 10); - var Readable = require('./_stream_readable'); - var Writable = require('./_stream_writable'); + // Mj = 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12 + // K = 0x6ed9eba1 + // Sj = 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5 + dl = fn3(dl, el, al, bl, cl, m[3], 0x6ed9eba1, 11);al = rotl(al, 10); + cl = fn3(cl, dl, el, al, bl, m[10], 0x6ed9eba1, 13);el = rotl(el, 10); + bl = fn3(bl, cl, dl, el, al, m[14], 0x6ed9eba1, 6);dl = rotl(dl, 10); + al = fn3(al, bl, cl, dl, el, m[4], 0x6ed9eba1, 7);cl = rotl(cl, 10); + el = fn3(el, al, bl, cl, dl, m[9], 0x6ed9eba1, 14);bl = rotl(bl, 10); + dl = fn3(dl, el, al, bl, cl, m[15], 0x6ed9eba1, 9);al = rotl(al, 10); + cl = fn3(cl, dl, el, al, bl, m[8], 0x6ed9eba1, 13);el = rotl(el, 10); + bl = fn3(bl, cl, dl, el, al, m[1], 0x6ed9eba1, 15);dl = rotl(dl, 10); + al = fn3(al, bl, cl, dl, el, m[2], 0x6ed9eba1, 14);cl = rotl(cl, 10); + el = fn3(el, al, bl, cl, dl, m[7], 0x6ed9eba1, 8);bl = rotl(bl, 10); + dl = fn3(dl, el, al, bl, cl, m[0], 0x6ed9eba1, 13);al = rotl(al, 10); + cl = fn3(cl, dl, el, al, bl, m[6], 0x6ed9eba1, 6);el = rotl(el, 10); + bl = fn3(bl, cl, dl, el, al, m[13], 0x6ed9eba1, 5);dl = rotl(dl, 10); + al = fn3(al, bl, cl, dl, el, m[11], 0x6ed9eba1, 12);cl = rotl(cl, 10); + el = fn3(el, al, bl, cl, dl, m[5], 0x6ed9eba1, 7);bl = rotl(bl, 10); + dl = fn3(dl, el, al, bl, cl, m[12], 0x6ed9eba1, 5);al = rotl(al, 10); - util.inherits(Duplex, Readable); + // Mj = 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2 + // K = 0x8f1bbcdc + // Sj = 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12 + cl = fn4(cl, dl, el, al, bl, m[1], 0x8f1bbcdc, 11);el = rotl(el, 10); + bl = fn4(bl, cl, dl, el, al, m[9], 0x8f1bbcdc, 12);dl = rotl(dl, 10); + al = fn4(al, bl, cl, dl, el, m[11], 0x8f1bbcdc, 14);cl = rotl(cl, 10); + el = fn4(el, al, bl, cl, dl, m[10], 0x8f1bbcdc, 15);bl = rotl(bl, 10); + dl = fn4(dl, el, al, bl, cl, m[0], 0x8f1bbcdc, 14);al = rotl(al, 10); + cl = fn4(cl, dl, el, al, bl, m[8], 0x8f1bbcdc, 15);el = rotl(el, 10); + bl = fn4(bl, cl, dl, el, al, m[12], 0x8f1bbcdc, 9);dl = rotl(dl, 10); + al = fn4(al, bl, cl, dl, el, m[4], 0x8f1bbcdc, 8);cl = rotl(cl, 10); + el = fn4(el, al, bl, cl, dl, m[13], 0x8f1bbcdc, 9);bl = rotl(bl, 10); + dl = fn4(dl, el, al, bl, cl, m[3], 0x8f1bbcdc, 14);al = rotl(al, 10); + cl = fn4(cl, dl, el, al, bl, m[7], 0x8f1bbcdc, 5);el = rotl(el, 10); + bl = fn4(bl, cl, dl, el, al, m[15], 0x8f1bbcdc, 6);dl = rotl(dl, 10); + al = fn4(al, bl, cl, dl, el, m[14], 0x8f1bbcdc, 8);cl = rotl(cl, 10); + el = fn4(el, al, bl, cl, dl, m[5], 0x8f1bbcdc, 6);bl = rotl(bl, 10); + dl = fn4(dl, el, al, bl, cl, m[6], 0x8f1bbcdc, 5);al = rotl(al, 10); + cl = fn4(cl, dl, el, al, bl, m[2], 0x8f1bbcdc, 12);el = rotl(el, 10); - var keys = objectKeys(Writable.prototype); - for (var v = 0; v < keys.length; v++) { - var method = keys[v]; - if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; - } + // Mj = 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13 + // K = 0xa953fd4e + // Sj = 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 + bl = fn5(bl, cl, dl, el, al, m[4], 0xa953fd4e, 9);dl = rotl(dl, 10); + al = fn5(al, bl, cl, dl, el, m[0], 0xa953fd4e, 15);cl = rotl(cl, 10); + el = fn5(el, al, bl, cl, dl, m[5], 0xa953fd4e, 5);bl = rotl(bl, 10); + dl = fn5(dl, el, al, bl, cl, m[9], 0xa953fd4e, 11);al = rotl(al, 10); + cl = fn5(cl, dl, el, al, bl, m[7], 0xa953fd4e, 6);el = rotl(el, 10); + bl = fn5(bl, cl, dl, el, al, m[12], 0xa953fd4e, 8);dl = rotl(dl, 10); + al = fn5(al, bl, cl, dl, el, m[2], 0xa953fd4e, 13);cl = rotl(cl, 10); + el = fn5(el, al, bl, cl, dl, m[10], 0xa953fd4e, 12);bl = rotl(bl, 10); + dl = fn5(dl, el, al, bl, cl, m[14], 0xa953fd4e, 5);al = rotl(al, 10); + cl = fn5(cl, dl, el, al, bl, m[1], 0xa953fd4e, 12);el = rotl(el, 10); + bl = fn5(bl, cl, dl, el, al, m[3], 0xa953fd4e, 13);dl = rotl(dl, 10); + al = fn5(al, bl, cl, dl, el, m[8], 0xa953fd4e, 14);cl = rotl(cl, 10); + el = fn5(el, al, bl, cl, dl, m[11], 0xa953fd4e, 11);bl = rotl(bl, 10); + dl = fn5(dl, el, al, bl, cl, m[6], 0xa953fd4e, 8);al = rotl(al, 10); + cl = fn5(cl, dl, el, al, bl, m[15], 0xa953fd4e, 5);el = rotl(el, 10); + bl = fn5(bl, cl, dl, el, al, m[13], 0xa953fd4e, 6);dl = rotl(dl, 10); - function Duplex(options) { - if (!(this instanceof Duplex)) return new Duplex(options); + var ar = this._a; + var br = this._b; + var cr = this._c; + var dr = this._d; + var er = this._e; - Readable.call(this, options); - Writable.call(this, options); + // M'j = 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12 + // K' = 0x50a28be6 + // S'j = 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6 + ar = fn5(ar, br, cr, dr, er, m[5], 0x50a28be6, 8);cr = rotl(cr, 10); + er = fn5(er, ar, br, cr, dr, m[14], 0x50a28be6, 9);br = rotl(br, 10); + dr = fn5(dr, er, ar, br, cr, m[7], 0x50a28be6, 9);ar = rotl(ar, 10); + cr = fn5(cr, dr, er, ar, br, m[0], 0x50a28be6, 11);er = rotl(er, 10); + br = fn5(br, cr, dr, er, ar, m[9], 0x50a28be6, 13);dr = rotl(dr, 10); + ar = fn5(ar, br, cr, dr, er, m[2], 0x50a28be6, 15);cr = rotl(cr, 10); + er = fn5(er, ar, br, cr, dr, m[11], 0x50a28be6, 15);br = rotl(br, 10); + dr = fn5(dr, er, ar, br, cr, m[4], 0x50a28be6, 5);ar = rotl(ar, 10); + cr = fn5(cr, dr, er, ar, br, m[13], 0x50a28be6, 7);er = rotl(er, 10); + br = fn5(br, cr, dr, er, ar, m[6], 0x50a28be6, 7);dr = rotl(dr, 10); + ar = fn5(ar, br, cr, dr, er, m[15], 0x50a28be6, 8);cr = rotl(cr, 10); + er = fn5(er, ar, br, cr, dr, m[8], 0x50a28be6, 11);br = rotl(br, 10); + dr = fn5(dr, er, ar, br, cr, m[1], 0x50a28be6, 14);ar = rotl(ar, 10); + cr = fn5(cr, dr, er, ar, br, m[10], 0x50a28be6, 14);er = rotl(er, 10); + br = fn5(br, cr, dr, er, ar, m[3], 0x50a28be6, 12);dr = rotl(dr, 10); + ar = fn5(ar, br, cr, dr, er, m[12], 0x50a28be6, 6);cr = rotl(cr, 10); - if (options && options.readable === false) this.readable = false; + // M'j = 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2 + // K' = 0x5c4dd124 + // S'j = 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11 + er = fn4(er, ar, br, cr, dr, m[6], 0x5c4dd124, 9);br = rotl(br, 10); + dr = fn4(dr, er, ar, br, cr, m[11], 0x5c4dd124, 13);ar = rotl(ar, 10); + cr = fn4(cr, dr, er, ar, br, m[3], 0x5c4dd124, 15);er = rotl(er, 10); + br = fn4(br, cr, dr, er, ar, m[7], 0x5c4dd124, 7);dr = rotl(dr, 10); + ar = fn4(ar, br, cr, dr, er, m[0], 0x5c4dd124, 12);cr = rotl(cr, 10); + er = fn4(er, ar, br, cr, dr, m[13], 0x5c4dd124, 8);br = rotl(br, 10); + dr = fn4(dr, er, ar, br, cr, m[5], 0x5c4dd124, 9);ar = rotl(ar, 10); + cr = fn4(cr, dr, er, ar, br, m[10], 0x5c4dd124, 11);er = rotl(er, 10); + br = fn4(br, cr, dr, er, ar, m[14], 0x5c4dd124, 7);dr = rotl(dr, 10); + ar = fn4(ar, br, cr, dr, er, m[15], 0x5c4dd124, 7);cr = rotl(cr, 10); + er = fn4(er, ar, br, cr, dr, m[8], 0x5c4dd124, 12);br = rotl(br, 10); + dr = fn4(dr, er, ar, br, cr, m[12], 0x5c4dd124, 7);ar = rotl(ar, 10); + cr = fn4(cr, dr, er, ar, br, m[4], 0x5c4dd124, 6);er = rotl(er, 10); + br = fn4(br, cr, dr, er, ar, m[9], 0x5c4dd124, 15);dr = rotl(dr, 10); + ar = fn4(ar, br, cr, dr, er, m[1], 0x5c4dd124, 13);cr = rotl(cr, 10); + er = fn4(er, ar, br, cr, dr, m[2], 0x5c4dd124, 11);br = rotl(br, 10); - if (options && options.writable === false) this.writable = false; + // M'j = 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13 + // K' = 0x6d703ef3 + // S'j = 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5 + dr = fn3(dr, er, ar, br, cr, m[15], 0x6d703ef3, 9);ar = rotl(ar, 10); + cr = fn3(cr, dr, er, ar, br, m[5], 0x6d703ef3, 7);er = rotl(er, 10); + br = fn3(br, cr, dr, er, ar, m[1], 0x6d703ef3, 15);dr = rotl(dr, 10); + ar = fn3(ar, br, cr, dr, er, m[3], 0x6d703ef3, 11);cr = rotl(cr, 10); + er = fn3(er, ar, br, cr, dr, m[7], 0x6d703ef3, 8);br = rotl(br, 10); + dr = fn3(dr, er, ar, br, cr, m[14], 0x6d703ef3, 6);ar = rotl(ar, 10); + cr = fn3(cr, dr, er, ar, br, m[6], 0x6d703ef3, 6);er = rotl(er, 10); + br = fn3(br, cr, dr, er, ar, m[9], 0x6d703ef3, 14);dr = rotl(dr, 10); + ar = fn3(ar, br, cr, dr, er, m[11], 0x6d703ef3, 12);cr = rotl(cr, 10); + er = fn3(er, ar, br, cr, dr, m[8], 0x6d703ef3, 13);br = rotl(br, 10); + dr = fn3(dr, er, ar, br, cr, m[12], 0x6d703ef3, 5);ar = rotl(ar, 10); + cr = fn3(cr, dr, er, ar, br, m[2], 0x6d703ef3, 14);er = rotl(er, 10); + br = fn3(br, cr, dr, er, ar, m[10], 0x6d703ef3, 13);dr = rotl(dr, 10); + ar = fn3(ar, br, cr, dr, er, m[0], 0x6d703ef3, 13);cr = rotl(cr, 10); + er = fn3(er, ar, br, cr, dr, m[4], 0x6d703ef3, 7);br = rotl(br, 10); + dr = fn3(dr, er, ar, br, cr, m[13], 0x6d703ef3, 5);ar = rotl(ar, 10); - this.allowHalfOpen = true; - if (options && options.allowHalfOpen === false) this.allowHalfOpen = false; + // M'j = 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14 + // K' = 0x7a6d76e9 + // S'j = 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8 + cr = fn2(cr, dr, er, ar, br, m[8], 0x7a6d76e9, 15);er = rotl(er, 10); + br = fn2(br, cr, dr, er, ar, m[6], 0x7a6d76e9, 5);dr = rotl(dr, 10); + ar = fn2(ar, br, cr, dr, er, m[4], 0x7a6d76e9, 8);cr = rotl(cr, 10); + er = fn2(er, ar, br, cr, dr, m[1], 0x7a6d76e9, 11);br = rotl(br, 10); + dr = fn2(dr, er, ar, br, cr, m[3], 0x7a6d76e9, 14);ar = rotl(ar, 10); + cr = fn2(cr, dr, er, ar, br, m[11], 0x7a6d76e9, 14);er = rotl(er, 10); + br = fn2(br, cr, dr, er, ar, m[15], 0x7a6d76e9, 6);dr = rotl(dr, 10); + ar = fn2(ar, br, cr, dr, er, m[0], 0x7a6d76e9, 14);cr = rotl(cr, 10); + er = fn2(er, ar, br, cr, dr, m[5], 0x7a6d76e9, 6);br = rotl(br, 10); + dr = fn2(dr, er, ar, br, cr, m[12], 0x7a6d76e9, 9);ar = rotl(ar, 10); + cr = fn2(cr, dr, er, ar, br, m[2], 0x7a6d76e9, 12);er = rotl(er, 10); + br = fn2(br, cr, dr, er, ar, m[13], 0x7a6d76e9, 9);dr = rotl(dr, 10); + ar = fn2(ar, br, cr, dr, er, m[9], 0x7a6d76e9, 12);cr = rotl(cr, 10); + er = fn2(er, ar, br, cr, dr, m[7], 0x7a6d76e9, 5);br = rotl(br, 10); + dr = fn2(dr, er, ar, br, cr, m[10], 0x7a6d76e9, 15);ar = rotl(ar, 10); + cr = fn2(cr, dr, er, ar, br, m[14], 0x7a6d76e9, 8);er = rotl(er, 10); - this.once('end', onend); - } + // M'j = 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11 + // K' = 0x00000000 + // S'j = 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 + br = fn1(br, cr, dr, er, ar, m[12], 0x00000000, 8);dr = rotl(dr, 10); + ar = fn1(ar, br, cr, dr, er, m[15], 0x00000000, 5);cr = rotl(cr, 10); + er = fn1(er, ar, br, cr, dr, m[10], 0x00000000, 12);br = rotl(br, 10); + dr = fn1(dr, er, ar, br, cr, m[4], 0x00000000, 9);ar = rotl(ar, 10); + cr = fn1(cr, dr, er, ar, br, m[1], 0x00000000, 12);er = rotl(er, 10); + br = fn1(br, cr, dr, er, ar, m[5], 0x00000000, 5);dr = rotl(dr, 10); + ar = fn1(ar, br, cr, dr, er, m[8], 0x00000000, 14);cr = rotl(cr, 10); + er = fn1(er, ar, br, cr, dr, m[7], 0x00000000, 6);br = rotl(br, 10); + dr = fn1(dr, er, ar, br, cr, m[6], 0x00000000, 8);ar = rotl(ar, 10); + cr = fn1(cr, dr, er, ar, br, m[2], 0x00000000, 13);er = rotl(er, 10); + br = fn1(br, cr, dr, er, ar, m[13], 0x00000000, 6);dr = rotl(dr, 10); + ar = fn1(ar, br, cr, dr, er, m[14], 0x00000000, 5);cr = rotl(cr, 10); + er = fn1(er, ar, br, cr, dr, m[0], 0x00000000, 15);br = rotl(br, 10); + dr = fn1(dr, er, ar, br, cr, m[3], 0x00000000, 13);ar = rotl(ar, 10); + cr = fn1(cr, dr, er, ar, br, m[9], 0x00000000, 11);er = rotl(er, 10); + br = fn1(br, cr, dr, er, ar, m[11], 0x00000000, 11);dr = rotl(dr, 10); - // the no-half-open enforcer - function onend() { - // if we allow half-open state, or if the writable side ended, - // then we're ok. - if (this.allowHalfOpen || this._writableState.ended) return; + // change state + var t = this._b + cl + dr | 0; + this._b = this._c + dl + er | 0; + this._c = this._d + el + ar | 0; + this._d = this._e + al + br | 0; + this._e = this._a + bl + cr | 0; + this._a = t; + }; - // no more data can be written. - // But allow more writes to happen in this tick. - processNextTick(onEndNT, this); - } + RIPEMD160.prototype._digest = function () { + // create padding and handle blocks + this._block[this._blockOffset++] = 0x80; + if (this._blockOffset > 56) { + this._block.fill(0, this._blockOffset, 64); + this._update(); + this._blockOffset = 0; + } - function onEndNT(self) { - self.end(); - } + this._block.fill(0, this._blockOffset, 56); + this._block.writeUInt32LE(this._length[0], 56); + this._block.writeUInt32LE(this._length[1], 60); + this._update(); - Object.defineProperty(Duplex.prototype, 'destroyed', { - get: function get() { - if (this._readableState === undefined || this._writableState === undefined) { - return false; - } - return this._readableState.destroyed && this._writableState.destroyed; - }, - set: function set(value) { - // we ignore the value if the stream - // has not been initialized yet - if (this._readableState === undefined || this._writableState === undefined) { - return; - } + // produce result + var buffer = new Buffer(20); + buffer.writeInt32LE(this._a, 0); + buffer.writeInt32LE(this._b, 4); + buffer.writeInt32LE(this._c, 8); + buffer.writeInt32LE(this._d, 12); + buffer.writeInt32LE(this._e, 16); + return buffer; + }; - // backward compatibility, the user is explicitly - // managing destroyed - this._readableState.destroyed = value; - this._writableState.destroyed = value; + function rotl(x, n) { + return x << n | x >>> 32 - n; } - }); - Duplex.prototype._destroy = function (err, cb) { - this.push(null); - this.end(); + function fn1(a, b, c, d, e, m, k, s) { + return rotl(a + (b ^ c ^ d) + m + k | 0, s) + e | 0; + } - processNextTick(cb, err); - }; + function fn2(a, b, c, d, e, m, k, s) { + return rotl(a + (b & c | ~b & d) + m + k | 0, s) + e | 0; + } - function forEach(xs, f) { - for (var i = 0, l = xs.length; i < l; i++) { - f(xs[i], i); + function fn3(a, b, c, d, e, m, k, s) { + return rotl(a + ((b | ~c) ^ d) + m + k | 0, s) + e | 0; } - } - }, { "./_stream_readable": 132, "./_stream_writable": 134, "core-util-is": 49, "inherits": 101, "process-nextick-args": 119 }], 131: [function (require, module, exports) { - // Copyright Joyent, Inc. and other Node contributors. - // - // Permission is hereby granted, free of charge, to any person obtaining a - // copy of this software and associated documentation files (the - // "Software"), to deal in the Software without restriction, including - // without limitation the rights to use, copy, modify, merge, publish, - // distribute, sublicense, and/or sell copies of the Software, and to permit - // persons to whom the Software is furnished to do so, subject to the - // following conditions: - // - // The above copyright notice and this permission notice shall be included - // in all copies or substantial portions of the Software. - // - // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN - // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - // USE OR OTHER DEALINGS IN THE SOFTWARE. - // a passthrough stream. - // basically just the most minimal sort of Transform stream. - // Every written chunk gets output as-is. + function fn4(a, b, c, d, e, m, k, s) { + return rotl(a + (b & d | c & ~d) + m + k | 0, s) + e | 0; + } - 'use strict'; + function fn5(a, b, c, d, e, m, k, s) { + return rotl(a + (b ^ (c | ~d)) + m + k | 0, s) + e | 0; + } - module.exports = PassThrough; + module.exports = RIPEMD160; + }).call(this, require("buffer").Buffer); + }, { "buffer": 48, "hash-base": 86, "inherits": 102 }], 130: [function (require, module, exports) { + /* eslint-disable node/no-deprecated-api */ + var buffer = require('buffer'); + var Buffer = buffer.Buffer; - var Transform = require('./_stream_transform'); + // alternative to using Object.keys for old browsers + function copyProps(src, dst) { + for (var key in src) { + dst[key] = src[key]; + } + } + if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { + module.exports = buffer; + } else { + // Copy properties from require('buffer') + copyProps(buffer, exports); + exports.Buffer = SafeBuffer; + } - /**/ - var util = require('core-util-is'); - util.inherits = require('inherits'); - /**/ + function SafeBuffer(arg, encodingOrOffset, length) { + return Buffer(arg, encodingOrOffset, length); + } - util.inherits(PassThrough, Transform); + // Copy static methods from Buffer + copyProps(Buffer, SafeBuffer); - function PassThrough(options) { - if (!(this instanceof PassThrough)) return new PassThrough(options); + SafeBuffer.from = function (arg, encodingOrOffset, length) { + if (typeof arg === 'number') { + throw new TypeError('Argument must not be a number'); + } + return Buffer(arg, encodingOrOffset, length); + }; - Transform.call(this, options); - } + SafeBuffer.alloc = function (size, fill, encoding) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number'); + } + var buf = Buffer(size); + if (fill !== undefined) { + if (typeof encoding === 'string') { + buf.fill(fill, encoding); + } else { + buf.fill(fill); + } + } else { + buf.fill(0); + } + return buf; + }; - PassThrough.prototype._transform = function (chunk, encoding, cb) { - cb(null, chunk); + SafeBuffer.allocUnsafe = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number'); + } + return Buffer(size); }; - }, { "./_stream_transform": 133, "core-util-is": 49, "inherits": 101 }], 132: [function (require, module, exports) { - (function (process, global) { - // Copyright Joyent, Inc. and other Node contributors. - // - // Permission is hereby granted, free of charge, to any person obtaining a - // copy of this software and associated documentation files (the - // "Software"), to deal in the Software without restriction, including - // without limitation the rights to use, copy, modify, merge, publish, - // distribute, sublicense, and/or sell copies of the Software, and to permit - // persons to whom the Software is furnished to do so, subject to the - // following conditions: - // - // The above copyright notice and this permission notice shall be included - // in all copies or substantial portions of the Software. - // - // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN - // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - // USE OR OTHER DEALINGS IN THE SOFTWARE. - 'use strict'; + SafeBuffer.allocUnsafeSlow = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number'); + } + return buffer.SlowBuffer(size); + }; + }, { "buffer": 48 }], 131: [function (require, module, exports) { + var Buffer = require('safe-buffer').Buffer; - /**/ + // prototype class for hash functions + function Hash(blockSize, finalSize) { + this._block = Buffer.alloc(blockSize); + this._finalSize = finalSize; + this._blockSize = blockSize; + this._len = 0; + } - var processNextTick = require('process-nextick-args'); - /**/ + Hash.prototype.update = function (data, enc) { + if (typeof data === 'string') { + enc = enc || 'utf8'; + data = Buffer.from(data, enc); + } - module.exports = Readable; + var block = this._block; + var blockSize = this._blockSize; + var length = data.length; + var accum = this._len; - /**/ - var isArray = require('isarray'); - /**/ + for (var offset = 0; offset < length;) { + var assigned = accum % blockSize; + var remainder = Math.min(length - offset, blockSize - assigned); - /**/ - var Duplex; - /**/ + for (var i = 0; i < remainder; i++) { + block[assigned + i] = data[offset + i]; + } - Readable.ReadableState = ReadableState; + accum += remainder; + offset += remainder; - /**/ - var EE = require('events').EventEmitter; + if (accum % blockSize === 0) { + this._update(block); + } + } - var EElistenerCount = function EElistenerCount(emitter, type) { - return emitter.listeners(type).length; - }; - /**/ + this._len += length; + return this; + }; - /**/ - var Stream = require('./internal/streams/stream'); - /**/ + Hash.prototype.digest = function (enc) { + var rem = this._len % this._blockSize; - // TODO(bmeurer): Change this back to const once hole checks are - // properly optimized away early in Ignition+TurboFan. - /**/ - var Buffer = require('safe-buffer').Buffer; - var OurUint8Array = global.Uint8Array || function () {}; - function _uint8ArrayToBuffer(chunk) { - return Buffer.from(chunk); - } - function _isUint8Array(obj) { - return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; - } - /**/ + this._block[rem] = 0x80; - /**/ - var util = require('core-util-is'); - util.inherits = require('inherits'); - /**/ + // zero (rem + 1) trailing bits, where (rem + 1) is the smallest + // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize + this._block.fill(0, rem + 1); - /**/ - var debugUtil = require('util'); - var debug = void 0; - if (debugUtil && debugUtil.debuglog) { - debug = debugUtil.debuglog('stream'); - } else { - debug = function debug() {}; + if (rem >= this._finalSize) { + this._update(this._block); + this._block.fill(0); } - /**/ - var BufferList = require('./internal/streams/BufferList'); - var destroyImpl = require('./internal/streams/destroy'); - var StringDecoder; + var bits = this._len * 8; - util.inherits(Readable, Stream); + // uint32 + if (bits <= 0xffffffff) { + this._block.writeUInt32BE(bits, this._blockSize - 4); - var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; + // uint64 + } else { + var lowBits = (bits & 0xffffffff) >>> 0; + var highBits = (bits - lowBits) / 0x100000000; - function prependListener(emitter, event, fn) { - // Sadly this is not cacheable as some libraries bundle their own - // event emitter implementation with them. - if (typeof emitter.prependListener === 'function') { - return emitter.prependListener(event, fn); - } else { - // This is a hack to make sure that our error handler is attached before any - // userland ones. NEVER DO THIS. This is here only because this code needs - // to continue to work with older versions of Node.js that do not include - // the prependListener() method. The goal is to eventually remove this hack. - 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]]; - } + this._block.writeUInt32BE(highBits, this._blockSize - 8); + this._block.writeUInt32BE(lowBits, this._blockSize - 4); } - function ReadableState(options, stream) { - Duplex = Duplex || require('./_stream_duplex'); + this._update(this._block); + var hash = this._hash(); - options = options || {}; + return enc ? hash.toString(enc) : hash; + }; - // object stream flag. Used to make read(n) ignore n and to - // make all the buffer merging and length checks go away - this.objectMode = !!options.objectMode; + Hash.prototype._update = function () { + throw new Error('_update must be implemented by subclass'); + }; - if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode; + module.exports = Hash; + }, { "safe-buffer": 130 }], 132: [function (require, module, exports) { + var exports = module.exports = function SHA(algorithm) { + algorithm = algorithm.toLowerCase(); - // the point at which it stops calling _read() to fill the buffer - // Note: 0 is a valid value, means "don't call _read preemptively ever" - var hwm = options.highWaterMark; - var defaultHwm = this.objectMode ? 16 : 16 * 1024; - this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; + var Algorithm = exports[algorithm]; + if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)'); - // cast to ints. - this.highWaterMark = Math.floor(this.highWaterMark); + return new Algorithm(); + }; - // A linked list is used to store data chunks instead of an array because the - // linked list can remove elements from the beginning faster than - // array.shift() - this.buffer = new BufferList(); - this.length = 0; - this.pipes = null; - this.pipesCount = 0; - this.flowing = null; - this.ended = false; - this.endEmitted = false; - this.reading = false; + exports.sha = require('./sha'); + exports.sha1 = require('./sha1'); + exports.sha224 = require('./sha224'); + exports.sha256 = require('./sha256'); + exports.sha384 = require('./sha384'); + exports.sha512 = require('./sha512'); + }, { "./sha": 133, "./sha1": 134, "./sha224": 135, "./sha256": 136, "./sha384": 137, "./sha512": 138 }], 133: [function (require, module, exports) { + /* + * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined + * in FIPS PUB 180-1 + * This source code is derived from sha1.js of the same repository. + * The difference between SHA-0 and SHA-1 is just a bitwise rotate left + * operation was added. + */ - // a flag to be able to tell if the event 'readable'/'data' is emitted - // immediately, or on a later tick. We set this to true at first, because - // any actions that shouldn't happen until "later" should generally also - // not happen before the first read call. - this.sync = true; + var inherits = require('inherits'); + var Hash = require('./hash'); + var Buffer = require('safe-buffer').Buffer; - // whenever we return null, then we set a flag to say - // that we're awaiting a 'readable' event emission. - this.needReadable = false; - this.emittedReadable = false; - this.readableListening = false; - this.resumeScheduled = false; + var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0]; - // has it been destroyed - this.destroyed = false; + var W = new Array(80); - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; + function Sha() { + this.init(); + this._w = W; - // the number of writers that are awaiting a drain event in .pipe()s - this.awaitDrain = 0; + Hash.call(this, 64, 56); + } - // if true, a maybeReadMore has been scheduled - this.readingMore = false; + inherits(Sha, Hash); - this.decoder = null; - this.encoding = null; - if (options.encoding) { - if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; - this.decoder = new StringDecoder(options.encoding); - this.encoding = options.encoding; - } - } + Sha.prototype.init = function () { + this._a = 0x67452301; + this._b = 0xefcdab89; + this._c = 0x98badcfe; + this._d = 0x10325476; + this._e = 0xc3d2e1f0; - function Readable(options) { - Duplex = Duplex || require('./_stream_duplex'); + return this; + }; - if (!(this instanceof Readable)) return new Readable(options); + function rotl5(num) { + return num << 5 | num >>> 27; + } - this._readableState = new ReadableState(options, this); + function rotl30(num) { + return num << 30 | num >>> 2; + } - // legacy - this.readable = true; + function ft(s, b, c, d) { + if (s === 0) return b & c | ~b & d; + if (s === 2) return b & c | b & d | c & d; + return b ^ c ^ d; + } - if (options) { - if (typeof options.read === 'function') this._read = options.read; + Sha.prototype._update = function (M) { + var W = this._w; - if (typeof options.destroy === 'function') this._destroy = options.destroy; - } + var a = this._a | 0; + var b = this._b | 0; + var c = this._c | 0; + var d = this._d | 0; + var e = this._e | 0; - Stream.call(this); + for (var i = 0; i < 16; ++i) { + W[i] = M.readInt32BE(i * 4); + }for (; i < 80; ++i) { + W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]; + }for (var j = 0; j < 80; ++j) { + var s = ~~(j / 20); + var t = rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s] | 0; + + e = d; + d = c; + c = rotl30(b); + b = a; + a = t; } - Object.defineProperty(Readable.prototype, 'destroyed', { - get: function get() { - if (this._readableState === undefined) { - return false; - } - return this._readableState.destroyed; - }, - set: function set(value) { - // we ignore the value if the stream - // has not been initialized yet - if (!this._readableState) { - return; - } + this._a = a + this._a | 0; + this._b = b + this._b | 0; + this._c = c + this._c | 0; + this._d = d + this._d | 0; + this._e = e + this._e | 0; + }; - // backward compatibility, the user is explicitly - // managing destroyed - this._readableState.destroyed = value; - } - }); + Sha.prototype._hash = function () { + var H = Buffer.allocUnsafe(20); - Readable.prototype.destroy = destroyImpl.destroy; - Readable.prototype._undestroy = destroyImpl.undestroy; - Readable.prototype._destroy = function (err, cb) { - this.push(null); - cb(err); - }; + H.writeInt32BE(this._a | 0, 0); + H.writeInt32BE(this._b | 0, 4); + H.writeInt32BE(this._c | 0, 8); + H.writeInt32BE(this._d | 0, 12); + H.writeInt32BE(this._e | 0, 16); - // Manually shove something into the read() buffer. - // This returns true if the highWaterMark has not been hit yet, - // similar to how Writable.write() returns true if you should - // write() some more. - Readable.prototype.push = function (chunk, encoding) { - var state = this._readableState; - var skipChunkCheck; + return H; + }; - if (!state.objectMode) { - if (typeof chunk === 'string') { - encoding = encoding || state.defaultEncoding; - if (encoding !== state.encoding) { - chunk = Buffer.from(chunk, encoding); - encoding = ''; - } - skipChunkCheck = true; - } - } else { - skipChunkCheck = true; - } + module.exports = Sha; + }, { "./hash": 131, "inherits": 102, "safe-buffer": 130 }], 134: [function (require, module, exports) { + /* + * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined + * in FIPS PUB 180-1 + * Version 2.1a Copyright Paul Johnston 2000 - 2002. + * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet + * Distributed under the BSD License + * See http://pajhome.org.uk/crypt/md5 for details. + */ - return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); - }; + var inherits = require('inherits'); + var Hash = require('./hash'); + var Buffer = require('safe-buffer').Buffer; - // Unshift should *always* be something directly out of read() - Readable.prototype.unshift = function (chunk) { - return readableAddChunk(this, chunk, null, true, false); - }; + var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0]; - function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { - var state = stream._readableState; - if (chunk === null) { - state.reading = false; - onEofChunk(stream, state); - } else { - var er; - if (!skipChunkCheck) er = chunkInvalid(state, chunk); - if (er) { - stream.emit('error', er); - } else if (state.objectMode || chunk && chunk.length > 0) { - if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { - chunk = _uint8ArrayToBuffer(chunk); - } + var W = new Array(80); - if (addToFront) { - if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true); - } else if (state.ended) { - stream.emit('error', new Error('stream.push() after EOF')); - } else { - state.reading = false; - if (state.decoder && !encoding) { - chunk = state.decoder.write(chunk); - if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); - } else { - addChunk(stream, state, chunk, false); - } - } - } else if (!addToFront) { - state.reading = false; - } - } + function Sha1() { + this.init(); + this._w = W; - return needMoreData(state); - } + Hash.call(this, 64, 56); + } - function addChunk(stream, state, chunk, addToFront) { - if (state.flowing && state.length === 0 && !state.sync) { - stream.emit('data', chunk); - stream.read(0); - } else { - // update the buffer info. - state.length += state.objectMode ? 1 : chunk.length; - if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); + inherits(Sha1, Hash); - if (state.needReadable) emitReadable(stream); - } - maybeReadMore(stream, state); - } + Sha1.prototype.init = function () { + this._a = 0x67452301; + this._b = 0xefcdab89; + this._c = 0x98badcfe; + this._d = 0x10325476; + this._e = 0xc3d2e1f0; - function chunkInvalid(state, chunk) { - var er; - if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { - er = new TypeError('Invalid non-string/buffer chunk'); - } - return er; - } + return this; + }; - // if it's past the high water mark, we can push in some more. - // Also, if we have no data yet, we can stand some - // more bytes. This is to work around cases where hwm=0, - // such as the repl. Also, if the push() triggered a - // readable event, and the user called read(largeNumber) such that - // needReadable was set, then we ought to push more, so that another - // 'readable' event will be triggered. - function needMoreData(state) { - return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0); - } + function rotl1(num) { + return num << 1 | num >>> 31; + } - Readable.prototype.isPaused = function () { - return this._readableState.flowing === false; - }; + function rotl5(num) { + return num << 5 | num >>> 27; + } - // backwards compatibility. - Readable.prototype.setEncoding = function (enc) { - if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; - this._readableState.decoder = new StringDecoder(enc); - this._readableState.encoding = enc; - return this; - }; + function rotl30(num) { + return num << 30 | num >>> 2; + } - // Don't raise the hwm > 8MB - var MAX_HWM = 0x800000; - function computeNewHighWaterMark(n) { - if (n >= MAX_HWM) { - n = MAX_HWM; - } else { - // Get the next highest power of 2 to prevent increasing hwm excessively in - // tiny amounts - n--; - n |= n >>> 1; - n |= n >>> 2; - n |= n >>> 4; - n |= n >>> 8; - n |= n >>> 16; - n++; - } - return n; - } + function ft(s, b, c, d) { + if (s === 0) return b & c | ~b & d; + if (s === 2) return b & c | b & d | c & d; + return b ^ c ^ d; + } - // This function is designed to be inlinable, so please take care when making - // changes to the function body. - function howMuchToRead(n, state) { - if (n <= 0 || state.length === 0 && state.ended) return 0; - if (state.objectMode) return 1; - if (n !== n) { - // Only flow one buffer at a time - if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; - } - // If we're asking for more than the current hwm, then raise the hwm. - if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); - if (n <= state.length) return n; - // Don't have enough - if (!state.ended) { - state.needReadable = true; - return 0; - } - return state.length; - } + Sha1.prototype._update = function (M) { + var W = this._w; - // you can override either this method, or the async _read(n) below. - Readable.prototype.read = function (n) { - debug('read', n); - n = parseInt(n, 10); - var state = this._readableState; - var nOrig = n; + var a = this._a | 0; + var b = this._b | 0; + var c = this._c | 0; + var d = this._d | 0; + var e = this._e | 0; - if (n !== 0) state.emittedReadable = false; + for (var i = 0; i < 16; ++i) { + W[i] = M.readInt32BE(i * 4); + }for (; i < 80; ++i) { + W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]); + }for (var j = 0; j < 80; ++j) { + var s = ~~(j / 20); + var t = rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s] | 0; - // if we're doing read(0) to trigger a readable event, but we - // already have a bunch of data in the buffer, then just trigger - // the 'readable' event and move on. - if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) { - debug('read: emitReadable', state.length, state.ended); - if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); - return null; - } + e = d; + d = c; + c = rotl30(b); + b = a; + a = t; + } - n = howMuchToRead(n, state); + this._a = a + this._a | 0; + this._b = b + this._b | 0; + this._c = c + this._c | 0; + this._d = d + this._d | 0; + this._e = e + this._e | 0; + }; - // if we've ended, and we're now clear, then finish it up. - if (n === 0 && state.ended) { - if (state.length === 0) endReadable(this); - return null; - } + Sha1.prototype._hash = function () { + var H = Buffer.allocUnsafe(20); - // All the actual chunk generation logic needs to be - // *below* the call to _read. The reason is that in certain - // synthetic stream cases, such as passthrough streams, _read - // may be a completely synchronous operation which may change - // the state of the read buffer, providing enough data when - // before there was *not* enough. - // - // So, the steps are: - // 1. Figure out what the state of things will be after we do - // a read from the buffer. - // - // 2. If that resulting state will trigger a _read, then call _read. - // Note that this may be asynchronous, or synchronous. Yes, it is - // deeply ugly to write APIs this way, but that still doesn't mean - // that the Readable class should behave improperly, as streams are - // designed to be sync/async agnostic. - // Take note if the _read call is sync or async (ie, if the read call - // has returned yet), so that we know whether or not it's safe to emit - // 'readable' etc. - // - // 3. Actually pull the requested chunks out of the buffer and return. + H.writeInt32BE(this._a | 0, 0); + H.writeInt32BE(this._b | 0, 4); + H.writeInt32BE(this._c | 0, 8); + H.writeInt32BE(this._d | 0, 12); + H.writeInt32BE(this._e | 0, 16); - // if we need a readable event, then we need to do some reading. - var doRead = state.needReadable; - debug('need readable', doRead); + return H; + }; - // if we currently have less than the highWaterMark, then also read some - if (state.length === 0 || state.length - n < state.highWaterMark) { - doRead = true; - debug('length less than watermark', doRead); - } + module.exports = Sha1; + }, { "./hash": 131, "inherits": 102, "safe-buffer": 130 }], 135: [function (require, module, exports) { + /** + * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined + * in FIPS 180-2 + * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009. + * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet + * + */ - // however, if we've ended, then there's no point, and if we're already - // reading, then it's unnecessary. - if (state.ended || state.reading) { - doRead = false; - debug('reading or ended', doRead); - } else if (doRead) { - debug('do read'); - state.reading = true; - state.sync = true; - // if the length is currently zero, then we *need* a readable event. - if (state.length === 0) state.needReadable = true; - // call internal read method - this._read(state.highWaterMark); - state.sync = false; - // If _read pushed data synchronously, then `reading` will be false, - // and we need to re-evaluate how much data we can return to the user. - if (!state.reading) n = howMuchToRead(nOrig, state); - } + var inherits = require('inherits'); + var Sha256 = require('./sha256'); + var Hash = require('./hash'); + var Buffer = require('safe-buffer').Buffer; - var ret; - if (n > 0) ret = fromList(n, state);else ret = null; + var W = new Array(64); - if (ret === null) { - state.needReadable = true; - n = 0; - } else { - state.length -= n; - } + function Sha224() { + this.init(); - if (state.length === 0) { - // If we have nothing in the buffer, then we want to know - // as soon as we *do* get something into the buffer. - if (!state.ended) state.needReadable = true; + this._w = W; // new Array(64) - // If we tried to read() past the EOF, then emit end on the next tick. - if (nOrig !== n && state.ended) endReadable(this); - } + Hash.call(this, 64, 56); + } - if (ret !== null) this.emit('data', ret); + inherits(Sha224, Sha256); - return ret; - }; + Sha224.prototype.init = function () { + this._a = 0xc1059ed8; + this._b = 0x367cd507; + this._c = 0x3070dd17; + this._d = 0xf70e5939; + this._e = 0xffc00b31; + this._f = 0x68581511; + this._g = 0x64f98fa7; + this._h = 0xbefa4fa4; - function onEofChunk(stream, state) { - if (state.ended) return; - if (state.decoder) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) { - state.buffer.push(chunk); - state.length += state.objectMode ? 1 : chunk.length; - } - } - state.ended = true; + return this; + }; - // emit 'readable' now to make sure it gets picked up. - emitReadable(stream); - } + Sha224.prototype._hash = function () { + var H = Buffer.allocUnsafe(28); - // Don't emit readable right away in sync mode, because this can trigger - // another read() call => stack overflow. This way, it might trigger - // a nextTick recursion warning, but that's not so bad. - function emitReadable(stream) { - var state = stream._readableState; - state.needReadable = false; - if (!state.emittedReadable) { - debug('emitReadable', state.flowing); - state.emittedReadable = true; - if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream); - } - } + H.writeInt32BE(this._a, 0); + H.writeInt32BE(this._b, 4); + H.writeInt32BE(this._c, 8); + H.writeInt32BE(this._d, 12); + H.writeInt32BE(this._e, 16); + H.writeInt32BE(this._f, 20); + H.writeInt32BE(this._g, 24); - function emitReadable_(stream) { - debug('emit readable'); - stream.emit('readable'); - flow(stream); - } + return H; + }; - // at this point, the user has presumably seen the 'readable' event, - // and called read() to consume some data. that may have triggered - // in turn another _read(n) call, in which case reading = true if - // it's in progress. - // However, if we're not ended, or reading, and the length < hwm, - // then go ahead and try to read some more preemptively. - function maybeReadMore(stream, state) { - if (!state.readingMore) { - state.readingMore = true; - processNextTick(maybeReadMore_, stream, state); - } - } + module.exports = Sha224; + }, { "./hash": 131, "./sha256": 136, "inherits": 102, "safe-buffer": 130 }], 136: [function (require, module, exports) { + /** + * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined + * in FIPS 180-2 + * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009. + * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet + * + */ - function maybeReadMore_(stream, state) { - var len = state.length; - while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) { - debug('maybeReadMore read 0'); - stream.read(0); - if (len === state.length) - // didn't get any data, stop spinning. - break;else len = state.length; - } - state.readingMore = false; - } + var inherits = require('inherits'); + var Hash = require('./hash'); + var Buffer = require('safe-buffer').Buffer; - // abstract method. to be overridden in specific implementation classes. - // call cb(er, data) where data is <= n in length. - // for virtual (non-string, non-buffer) streams, "length" is somewhat - // arbitrary, and perhaps not very meaningful. - Readable.prototype._read = function (n) { - this.emit('error', new Error('_read() is not implemented')); - }; + var K = [0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5, 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5, 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3, 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174, 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC, 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA, 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7, 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967, 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13, 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85, 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3, 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070, 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5, 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3, 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208, 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2]; - Readable.prototype.pipe = function (dest, pipeOpts) { - var src = this; - var state = this._readableState; + var W = new Array(64); - switch (state.pipesCount) { - case 0: - state.pipes = dest; - break; - case 1: - state.pipes = [state.pipes, dest]; - break; - default: - state.pipes.push(dest); - break; - } - state.pipesCount += 1; - debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); + function Sha256() { + this.init(); - var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; + this._w = W; // new Array(64) - var endFn = doEnd ? onend : unpipe; - if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn); + Hash.call(this, 64, 56); + } - dest.on('unpipe', onunpipe); - function onunpipe(readable, unpipeInfo) { - debug('onunpipe'); - if (readable === src) { - if (unpipeInfo && unpipeInfo.hasUnpiped === false) { - unpipeInfo.hasUnpiped = true; - cleanup(); - } - } - } + inherits(Sha256, Hash); - function onend() { - debug('onend'); - dest.end(); - } + Sha256.prototype.init = function () { + this._a = 0x6a09e667; + this._b = 0xbb67ae85; + this._c = 0x3c6ef372; + this._d = 0xa54ff53a; + this._e = 0x510e527f; + this._f = 0x9b05688c; + this._g = 0x1f83d9ab; + this._h = 0x5be0cd19; - // when the dest drains, it reduces the awaitDrain counter - // on the source. This would be more elegant with a .once() - // handler in flow(), but adding and removing repeatedly is - // too slow. - var ondrain = pipeOnDrain(src); - dest.on('drain', ondrain); + return this; + }; - var cleanedUp = false; - function cleanup() { - debug('cleanup'); - // cleanup event handlers once the pipe is broken - dest.removeListener('close', onclose); - dest.removeListener('finish', onfinish); - dest.removeListener('drain', ondrain); - dest.removeListener('error', onerror); - dest.removeListener('unpipe', onunpipe); - src.removeListener('end', onend); - src.removeListener('end', unpipe); - src.removeListener('data', ondata); + function ch(x, y, z) { + return z ^ x & (y ^ z); + } - cleanedUp = true; + function maj(x, y, z) { + return x & y | z & (x | y); + } - // if the reader is waiting for a drain event from this - // specific writer, then it would cause it to never start - // flowing again. - // So, if this is awaiting a drain, then we just call it now. - // If we don't know, then assume that we are waiting for one. - if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); - } + function sigma0(x) { + return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10); + } - // If the user pushes more data while we're writing to dest then we'll end up - // in ondata again. However, we only want to increase awaitDrain once because - // dest will only emit one 'drain' event for the multiple writes. - // => Introduce a guard on increasing awaitDrain. - var increasedAwaitDrain = false; - src.on('data', ondata); - function ondata(chunk) { - debug('ondata'); - increasedAwaitDrain = false; - var ret = dest.write(chunk); - if (false === ret && !increasedAwaitDrain) { - // If the user unpiped during `dest.write()`, it is possible - // to get stuck in a permanently paused state if that write - // also returned false. - // => Check whether `dest` is still a piping destination. - if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { - debug('false write response, pause', src._readableState.awaitDrain); - src._readableState.awaitDrain++; - increasedAwaitDrain = true; - } - src.pause(); - } - } + function sigma1(x) { + return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7); + } - // if the dest has an error, then stop piping into it. - // however, don't suppress the throwing behavior for this. - function onerror(er) { - debug('onerror', er); - unpipe(); - dest.removeListener('error', onerror); - if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er); - } + function gamma0(x) { + return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ x >>> 3; + } - // Make sure our error handler is attached before userland ones. - prependListener(dest, 'error', onerror); + function gamma1(x) { + return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ x >>> 10; + } - // Both close and finish should trigger unpipe, but only once. - function onclose() { - dest.removeListener('finish', onfinish); - unpipe(); - } - dest.once('close', onclose); - function onfinish() { - debug('onfinish'); - dest.removeListener('close', onclose); - unpipe(); - } - dest.once('finish', onfinish); + Sha256.prototype._update = function (M) { + var W = this._w; - function unpipe() { - debug('unpipe'); - src.unpipe(dest); - } + var a = this._a | 0; + var b = this._b | 0; + var c = this._c | 0; + var d = this._d | 0; + var e = this._e | 0; + var f = this._f | 0; + var g = this._g | 0; + var h = this._h | 0; - // tell the dest that it's being piped to - dest.emit('pipe', src); + for (var i = 0; i < 16; ++i) { + W[i] = M.readInt32BE(i * 4); + }for (; i < 64; ++i) { + W[i] = gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16] | 0; + }for (var j = 0; j < 64; ++j) { + var T1 = h + sigma1(e) + ch(e, f, g) + K[j] + W[j] | 0; + var T2 = sigma0(a) + maj(a, b, c) | 0; - // start the flow if it hasn't been started already. - if (!state.flowing) { - debug('pipe resume'); - src.resume(); - } + h = g; + g = f; + f = e; + e = d + T1 | 0; + d = c; + c = b; + b = a; + a = T1 + T2 | 0; + } - return dest; - }; + this._a = a + this._a | 0; + this._b = b + this._b | 0; + this._c = c + this._c | 0; + this._d = d + this._d | 0; + this._e = e + this._e | 0; + this._f = f + this._f | 0; + this._g = g + this._g | 0; + this._h = h + this._h | 0; + }; - function pipeOnDrain(src) { - return function () { - var state = src._readableState; - debug('pipeOnDrain', state.awaitDrain); - if (state.awaitDrain) state.awaitDrain--; - if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { - state.flowing = true; - flow(src); - } - }; - } + Sha256.prototype._hash = function () { + var H = Buffer.allocUnsafe(32); - Readable.prototype.unpipe = function (dest) { - var state = this._readableState; - var unpipeInfo = { hasUnpiped: false }; + H.writeInt32BE(this._a, 0); + H.writeInt32BE(this._b, 4); + H.writeInt32BE(this._c, 8); + H.writeInt32BE(this._d, 12); + H.writeInt32BE(this._e, 16); + H.writeInt32BE(this._f, 20); + H.writeInt32BE(this._g, 24); + H.writeInt32BE(this._h, 28); - // if we're not piping anywhere, then do nothing. - if (state.pipesCount === 0) return this; + return H; + }; - // just one destination. most common case. - if (state.pipesCount === 1) { - // passed in one, but it's not the right one. - if (dest && dest !== state.pipes) return this; + module.exports = Sha256; + }, { "./hash": 131, "inherits": 102, "safe-buffer": 130 }], 137: [function (require, module, exports) { + var inherits = require('inherits'); + var SHA512 = require('./sha512'); + var Hash = require('./hash'); + var Buffer = require('safe-buffer').Buffer; - if (!dest) dest = state.pipes; + var W = new Array(160); - // got a match. - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - if (dest) dest.emit('unpipe', this, unpipeInfo); - return this; - } + function Sha384() { + this.init(); + this._w = W; - // slow case. multiple pipe destinations. + Hash.call(this, 128, 112); + } - if (!dest) { - // remove all. - var dests = state.pipes; - var len = state.pipesCount; - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; + inherits(Sha384, SHA512); - for (var i = 0; i < len; i++) { - dests[i].emit('unpipe', this, unpipeInfo); - }return this; - } + Sha384.prototype.init = function () { + this._ah = 0xcbbb9d5d; + this._bh = 0x629a292a; + this._ch = 0x9159015a; + this._dh = 0x152fecd8; + this._eh = 0x67332667; + this._fh = 0x8eb44a87; + this._gh = 0xdb0c2e0d; + this._hh = 0x47b5481d; - // try to find the right one. - var index = indexOf(state.pipes, dest); - if (index === -1) return this; + this._al = 0xc1059ed8; + this._bl = 0x367cd507; + this._cl = 0x3070dd17; + this._dl = 0xf70e5939; + this._el = 0xffc00b31; + this._fl = 0x68581511; + this._gl = 0x64f98fa7; + this._hl = 0xbefa4fa4; - state.pipes.splice(index, 1); - state.pipesCount -= 1; - if (state.pipesCount === 1) state.pipes = state.pipes[0]; + return this; + }; - dest.emit('unpipe', this, unpipeInfo); + Sha384.prototype._hash = function () { + var H = Buffer.allocUnsafe(48); - return this; - }; + function writeInt64BE(h, l, offset) { + H.writeInt32BE(h, offset); + H.writeInt32BE(l, offset + 4); + } - // set up data events if they are asked for - // Ensure readable listeners eventually get something - Readable.prototype.on = function (ev, fn) { - var res = Stream.prototype.on.call(this, ev, fn); + writeInt64BE(this._ah, this._al, 0); + writeInt64BE(this._bh, this._bl, 8); + writeInt64BE(this._ch, this._cl, 16); + writeInt64BE(this._dh, this._dl, 24); + writeInt64BE(this._eh, this._el, 32); + writeInt64BE(this._fh, this._fl, 40); - if (ev === 'data') { - // Start flowing on next tick if stream isn't explicitly paused - if (this._readableState.flowing !== false) this.resume(); - } else if (ev === 'readable') { - var state = this._readableState; - if (!state.endEmitted && !state.readableListening) { - state.readableListening = state.needReadable = true; - state.emittedReadable = false; - if (!state.reading) { - processNextTick(nReadingNextTick, this); - } else if (state.length) { - emitReadable(this); - } - } - } + return H; + }; - return res; - }; - Readable.prototype.addListener = Readable.prototype.on; + module.exports = Sha384; + }, { "./hash": 131, "./sha512": 138, "inherits": 102, "safe-buffer": 130 }], 138: [function (require, module, exports) { + var inherits = require('inherits'); + var Hash = require('./hash'); + var Buffer = require('safe-buffer').Buffer; - function nReadingNextTick(self) { - debug('readable nexttick read 0'); - self.read(0); - } + var K = [0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd, 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc, 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019, 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118, 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe, 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2, 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1, 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694, 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3, 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65, 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483, 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5, 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210, 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4, 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725, 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70, 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926, 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df, 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8, 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b, 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001, 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30, 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910, 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8, 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53, 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8, 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb, 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3, 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60, 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec, 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9, 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b, 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207, 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178, 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6, 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b, 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493, 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c, 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a, 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817]; - // pause() and resume() are remnants of the legacy readable stream API - // If the user uses them, then switch into old mode. - Readable.prototype.resume = function () { - var state = this._readableState; - if (!state.flowing) { - debug('resume'); - state.flowing = true; - resume(this, state); - } - return this; - }; + var W = new Array(160); - function resume(stream, state) { - if (!state.resumeScheduled) { - state.resumeScheduled = true; - processNextTick(resume_, stream, state); - } - } + function Sha512() { + this.init(); + this._w = W; - function resume_(stream, state) { - if (!state.reading) { - debug('resume read 0'); - stream.read(0); - } + Hash.call(this, 128, 112); + } - state.resumeScheduled = false; - state.awaitDrain = 0; - stream.emit('resume'); - flow(stream); - if (state.flowing && !state.reading) stream.read(0); - } + inherits(Sha512, Hash); - Readable.prototype.pause = function () { - debug('call pause flowing=%j', this._readableState.flowing); - if (false !== this._readableState.flowing) { - debug('pause'); - this._readableState.flowing = false; - this.emit('pause'); - } - return this; - }; + Sha512.prototype.init = function () { + this._ah = 0x6a09e667; + this._bh = 0xbb67ae85; + this._ch = 0x3c6ef372; + this._dh = 0xa54ff53a; + this._eh = 0x510e527f; + this._fh = 0x9b05688c; + this._gh = 0x1f83d9ab; + this._hh = 0x5be0cd19; - function flow(stream) { - var state = stream._readableState; - debug('flow', state.flowing); - while (state.flowing && stream.read() !== null) {} - } + this._al = 0xf3bcc908; + this._bl = 0x84caa73b; + this._cl = 0xfe94f82b; + this._dl = 0x5f1d36f1; + this._el = 0xade682d1; + this._fl = 0x2b3e6c1f; + this._gl = 0xfb41bd6b; + this._hl = 0x137e2179; - // wrap an old-style stream as the async data source. - // This is *not* part of the readable stream interface. - // It is an ugly unfortunate mess of history. - Readable.prototype.wrap = function (stream) { - var state = this._readableState; - var paused = false; + return this; + }; - var self = this; - stream.on('end', function () { - debug('wrapped end'); - if (state.decoder && !state.ended) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) self.push(chunk); - } + function Ch(x, y, z) { + return z ^ x & (y ^ z); + } - self.push(null); - }); + function maj(x, y, z) { + return x & y | z & (x | y); + } - stream.on('data', function (chunk) { - debug('wrapped data'); - if (state.decoder) chunk = state.decoder.write(chunk); + function sigma0(x, xl) { + return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25); + } - // don't skip over falsy values in objectMode - if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; + function sigma1(x, xl) { + return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23); + } - var ret = self.push(chunk); - if (!ret) { - paused = true; - stream.pause(); - } - }); + function Gamma0(x, xl) { + return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ x >>> 7; + } - // proxy all the other methods. - // important when wrapping filters and duplexes. - for (var i in stream) { - if (this[i] === undefined && typeof stream[i] === 'function') { - this[i] = function (method) { - return function () { - return stream[method].apply(stream, arguments); - }; - }(i); - } - } + function Gamma0l(x, xl) { + return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25); + } - // proxy certain important events. - for (var n = 0; n < kProxyEvents.length; n++) { - stream.on(kProxyEvents[n], self.emit.bind(self, kProxyEvents[n])); - } + function Gamma1(x, xl) { + return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ x >>> 6; + } - // when we try to consume some more bytes, simply unpause the - // underlying stream. - self._read = function (n) { - debug('wrapped _read', n); - if (paused) { - paused = false; - stream.resume(); - } - }; + function Gamma1l(x, xl) { + return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26); + } - return self; - }; + function getCarry(a, b) { + return a >>> 0 < b >>> 0 ? 1 : 0; + } - // exposed for testing purposes only. - Readable._fromList = fromList; + Sha512.prototype._update = function (M) { + var W = this._w; - // Pluck off n bytes from an array of buffers. - // Length is the combined lengths of all the buffers in the list. - // This function is designed to be inlinable, so please take care when making - // changes to the function body. - function fromList(n, state) { - // nothing buffered - if (state.length === 0) return null; + var ah = this._ah | 0; + var bh = this._bh | 0; + var ch = this._ch | 0; + var dh = this._dh | 0; + var eh = this._eh | 0; + var fh = this._fh | 0; + var gh = this._gh | 0; + var hh = this._hh | 0; - var ret; - if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { - // read it all, truncate the list - 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); - state.buffer.clear(); - } else { - // read part of list - ret = fromListPartial(n, state.buffer, state.decoder); - } + var al = this._al | 0; + var bl = this._bl | 0; + var cl = this._cl | 0; + var dl = this._dl | 0; + var el = this._el | 0; + var fl = this._fl | 0; + var gl = this._gl | 0; + var hl = this._hl | 0; - return ret; + for (var i = 0; i < 32; i += 2) { + W[i] = M.readInt32BE(i * 4); + W[i + 1] = M.readInt32BE(i * 4 + 4); } + for (; i < 160; i += 2) { + var xh = W[i - 15 * 2]; + var xl = W[i - 15 * 2 + 1]; + var gamma0 = Gamma0(xh, xl); + var gamma0l = Gamma0l(xl, xh); - // Extracts only enough buffered data to satisfy the amount requested. - // This function is designed to be inlinable, so please take care when making - // changes to the function body. - function fromListPartial(n, list, hasStrings) { - var ret; - if (n < list.head.data.length) { - // slice is the same for buffers and strings - ret = list.head.data.slice(0, n); - list.head.data = list.head.data.slice(n); - } else if (n === list.head.data.length) { - // first chunk is a perfect match - ret = list.shift(); - } else { - // result spans more than one buffer - ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list); - } - return ret; - } + xh = W[i - 2 * 2]; + xl = W[i - 2 * 2 + 1]; + var gamma1 = Gamma1(xh, xl); + var gamma1l = Gamma1l(xl, xh); - // Copies a specified amount of characters from the list of buffered data - // chunks. - // This function is designed to be inlinable, so please take care when making - // changes to the function body. - function copyFromBufferString(n, list) { - var p = list.head; - var c = 1; - var ret = p.data; - n -= ret.length; - while (p = p.next) { - var str = p.data; - var nb = n > str.length ? str.length : n; - if (nb === str.length) ret += str;else ret += str.slice(0, n); - n -= nb; - if (n === 0) { - if (nb === str.length) { - ++c; - if (p.next) list.head = p.next;else list.head = list.tail = null; - } else { - list.head = p; - p.data = str.slice(nb); - } - break; - } - ++c; - } - list.length -= c; - return ret; - } + // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16] + var Wi7h = W[i - 7 * 2]; + var Wi7l = W[i - 7 * 2 + 1]; - // Copies a specified amount of bytes from the list of buffered data chunks. - // This function is designed to be inlinable, so please take care when making - // changes to the function body. - function copyFromBuffer(n, list) { - var ret = Buffer.allocUnsafe(n); - var p = list.head; - var c = 1; - p.data.copy(ret); - n -= p.data.length; - while (p = p.next) { - var buf = p.data; - var nb = n > buf.length ? buf.length : n; - buf.copy(ret, ret.length - n, 0, nb); - n -= nb; - if (n === 0) { - if (nb === buf.length) { - ++c; - if (p.next) list.head = p.next;else list.head = list.tail = null; - } else { - list.head = p; - p.data = buf.slice(nb); - } - break; - } - ++c; - } - list.length -= c; - return ret; + var Wi16h = W[i - 16 * 2]; + var Wi16l = W[i - 16 * 2 + 1]; + + var Wil = gamma0l + Wi7l | 0; + var Wih = gamma0 + Wi7h + getCarry(Wil, gamma0l) | 0; + Wil = Wil + gamma1l | 0; + Wih = Wih + gamma1 + getCarry(Wil, gamma1l) | 0; + Wil = Wil + Wi16l | 0; + Wih = Wih + Wi16h + getCarry(Wil, Wi16l) | 0; + + W[i] = Wih; + W[i + 1] = Wil; } - function endReadable(stream) { - var state = stream._readableState; + for (var j = 0; j < 160; j += 2) { + Wih = W[j]; + Wil = W[j + 1]; - // If we get here before consuming all the bytes, then that is a - // bug in node. Should never happen. - if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream'); + var majh = maj(ah, bh, ch); + var majl = maj(al, bl, cl); - if (!state.endEmitted) { - state.ended = true; - processNextTick(endReadableNT, state, stream); - } - } + var sigma0h = sigma0(ah, al); + var sigma0l = sigma0(al, ah); + var sigma1h = sigma1(eh, el); + var sigma1l = sigma1(el, eh); - function endReadableNT(state, stream) { - // Check that we didn't get one last unshift. - if (!state.endEmitted && state.length === 0) { - state.endEmitted = true; - stream.readable = false; - stream.emit('end'); - } - } + // t1 = h + sigma1 + ch + K[j] + W[j] + var Kih = K[j]; + var Kil = K[j + 1]; - function forEach(xs, f) { - for (var i = 0, l = xs.length; i < l; i++) { - f(xs[i], i); - } + var chh = Ch(eh, fh, gh); + var chl = Ch(el, fl, gl); + + var t1l = hl + sigma1l | 0; + var t1h = hh + sigma1h + getCarry(t1l, hl) | 0; + t1l = t1l + chl | 0; + t1h = t1h + chh + getCarry(t1l, chl) | 0; + t1l = t1l + Kil | 0; + t1h = t1h + Kih + getCarry(t1l, Kil) | 0; + t1l = t1l + Wil | 0; + t1h = t1h + Wih + getCarry(t1l, Wil) | 0; + + // t2 = sigma0 + maj + var t2l = sigma0l + majl | 0; + var t2h = sigma0h + majh + getCarry(t2l, sigma0l) | 0; + + hh = gh; + hl = gl; + gh = fh; + gl = fl; + fh = eh; + fl = el; + el = dl + t1l | 0; + eh = dh + t1h + getCarry(el, dl) | 0; + dh = ch; + dl = cl; + ch = bh; + cl = bl; + bh = ah; + bl = al; + al = t1l + t2l | 0; + ah = t1h + t2h + getCarry(al, t1l) | 0; } - function indexOf(xs, x) { - for (var i = 0, l = xs.length; i < l; i++) { - if (xs[i] === x) return i; - } - return -1; + this._al = this._al + al | 0; + this._bl = this._bl + bl | 0; + this._cl = this._cl + cl | 0; + this._dl = this._dl + dl | 0; + this._el = this._el + el | 0; + this._fl = this._fl + fl | 0; + this._gl = this._gl + gl | 0; + this._hl = this._hl + hl | 0; + + this._ah = this._ah + ah + getCarry(this._al, al) | 0; + this._bh = this._bh + bh + getCarry(this._bl, bl) | 0; + this._ch = this._ch + ch + getCarry(this._cl, cl) | 0; + this._dh = this._dh + dh + getCarry(this._dl, dl) | 0; + this._eh = this._eh + eh + getCarry(this._el, el) | 0; + this._fh = this._fh + fh + getCarry(this._fl, fl) | 0; + this._gh = this._gh + gh + getCarry(this._gl, gl) | 0; + this._hh = this._hh + hh + getCarry(this._hl, hl) | 0; + }; + + Sha512.prototype._hash = function () { + var H = Buffer.allocUnsafe(64); + + function writeInt64BE(h, l, offset) { + H.writeInt32BE(h, offset); + H.writeInt32BE(l, offset + 4); } - }).call(this, require('_process'), typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}); - }, { "./_stream_duplex": 130, "./internal/streams/BufferList": 135, "./internal/streams/destroy": 136, "./internal/streams/stream": 137, "_process": 120, "core-util-is": 49, "events": 83, "inherits": 101, "isarray": 103, "process-nextick-args": 119, "safe-buffer": 143, "string_decoder/": 153, "util": 17 }], 133: [function (require, module, exports) { + + writeInt64BE(this._ah, this._al, 0); + writeInt64BE(this._bh, this._bl, 8); + writeInt64BE(this._ch, this._cl, 16); + writeInt64BE(this._dh, this._dl, 24); + writeInt64BE(this._eh, this._el, 32); + writeInt64BE(this._fh, this._fl, 40); + writeInt64BE(this._gh, this._gl, 48); + writeInt64BE(this._hh, this._hl, 56); + + return H; + }; + + module.exports = Sha512; + }, { "./hash": 131, "inherits": 102, "safe-buffer": 130 }], 139: [function (require, module, exports) { // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a @@ -14112,200 +14267,291 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. - // a transform stream is a readable/writable stream where you do - // something with the data. Sometimes it's called a "filter", - // but that's not a great name for it, since that implies a thing where - // some bits pass through, and others are simply ignored. (That would - // be a valid example of a transform, of course.) - // - // While the output is causally related to the input, it's not a - // necessarily symmetric or synchronous transformation. For example, - // a zlib stream might take multiple plain-text writes(), and then - // emit a single compressed chunk some time in the future. - // - // Here's how this works: - // - // The Transform stream has all the aspects of the readable and writable - // stream classes. When you write(chunk), that calls _write(chunk,cb) - // internally, and returns false if there's a lot of pending writes - // buffered up. When you call read(), that calls _read(n) until - // there's enough pending readable data buffered up. - // - // In a transform stream, the written data is placed in a buffer. When - // _read(n) is called, it transforms the queued up data, calling the - // buffered _write cb's as it consumes chunks. If consuming a single - // written chunk would result in multiple output chunks, then the first - // outputted bit calls the readcb, and subsequent chunks just go into - // the read buffer, and will cause it to emit 'readable' if necessary. - // - // This way, back-pressure is actually determined by the reading side, - // since _read has to be called to start processing a new chunk. However, - // a pathological inflate type of transform can cause excessive buffering - // here. For example, imagine a stream where every byte of input is - // interpreted as an integer from 0-255, and then results in that many - // bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in - // 1kb of data being output. In this case, you could write a very small - // amount of input, and end up with a very large amount of output. In - // such a pathological inflating mechanism, there'd be no way to tell - // the system to stop doing the transform. A single 4MB write could - // cause the system to run out of memory. - // - // However, even in such a pathological case, only a single written chunk - // would be consumed, and then the rest would wait (un-transformed) until - // the results of the previous transformed chunk were consumed. - - 'use strict'; - - module.exports = Transform; + module.exports = Stream; - var Duplex = require('./_stream_duplex'); + var EE = require('events').EventEmitter; + var inherits = require('inherits'); - /**/ - var util = require('core-util-is'); - util.inherits = require('inherits'); - /**/ + inherits(Stream, EE); + Stream.Readable = require('readable-stream/readable.js'); + Stream.Writable = require('readable-stream/writable.js'); + Stream.Duplex = require('readable-stream/duplex.js'); + Stream.Transform = require('readable-stream/transform.js'); + Stream.PassThrough = require('readable-stream/passthrough.js'); - util.inherits(Transform, Duplex); + // Backwards-compat with node 0.4.x + Stream.Stream = Stream; - function TransformState(stream) { - this.afterTransform = function (er, data) { - return afterTransform(stream, er, data); - }; + // old-style streams. Note that the pipe method (the only relevant + // part of this class) is overridden in the Readable class. - this.needTransform = false; - this.transforming = false; - this.writecb = null; - this.writechunk = null; - this.writeencoding = null; + function Stream() { + EE.call(this); } - function afterTransform(stream, er, data) { - var ts = stream._transformState; - ts.transforming = false; - - var cb = ts.writecb; + Stream.prototype.pipe = function (dest, options) { + var source = this; - if (!cb) { - return stream.emit('error', new Error('write callback called multiple times')); + function ondata(chunk) { + if (dest.writable) { + if (false === dest.write(chunk) && source.pause) { + source.pause(); + } + } } - ts.writechunk = null; - ts.writecb = null; + source.on('data', ondata); - if (data !== null && data !== undefined) stream.push(data); + function ondrain() { + if (source.readable && source.resume) { + source.resume(); + } + } - cb(er); + dest.on('drain', ondrain); - var rs = stream._readableState; - rs.reading = false; - if (rs.needReadable || rs.length < rs.highWaterMark) { - stream._read(rs.highWaterMark); + // If the 'end' option is not supplied, dest.end() will be called when + // source gets the 'end' or 'close' events. Only dest.end() once. + if (!dest._isStdio && (!options || options.end !== false)) { + source.on('end', onend); + source.on('close', onclose); } - } - function Transform(options) { - if (!(this instanceof Transform)) return new Transform(options); - - Duplex.call(this, options); + var didOnEnd = false; + function onend() { + if (didOnEnd) return; + didOnEnd = true; - this._transformState = new TransformState(this); + dest.end(); + } - var stream = this; + function onclose() { + if (didOnEnd) return; + didOnEnd = true; - // start out asking for a readable event once data is transformed. - this._readableState.needReadable = true; + if (typeof dest.destroy === 'function') dest.destroy(); + } - // we have implemented the _read method, and done the other things - // that Readable wants before the first _read call, so unset the - // sync guard flag. - this._readableState.sync = false; + // don't leave dangling pipes when there are errors. + function onerror(er) { + cleanup(); + if (EE.listenerCount(this, 'error') === 0) { + throw er; // Unhandled stream error in pipe. + } + } - if (options) { - if (typeof options.transform === 'function') this._transform = options.transform; + source.on('error', onerror); + dest.on('error', onerror); - if (typeof options.flush === 'function') this._flush = options.flush; + // remove all the event listeners that were added. + function cleanup() { + source.removeListener('data', ondata); + dest.removeListener('drain', ondrain); + + source.removeListener('end', onend); + source.removeListener('close', onclose); + + source.removeListener('error', onerror); + dest.removeListener('error', onerror); + + source.removeListener('end', cleanup); + source.removeListener('close', cleanup); + + dest.removeListener('close', cleanup); } - // When the writable side finishes, then flush out anything remaining. - this.once('prefinish', function () { - if (typeof this._flush === 'function') this._flush(function (er, data) { - done(stream, er, data); - });else done(stream); - }); - } + source.on('end', cleanup); + source.on('close', cleanup); - Transform.prototype.push = function (chunk, encoding) { - this._transformState.needTransform = false; - return Duplex.prototype.push.call(this, chunk, encoding); + dest.on('close', cleanup); + + dest.emit('pipe', source); + + // Allow for unix-like usage: A.pipe(B).pipe(C) + return dest; }; + }, { "events": 84, "inherits": 102, "readable-stream/duplex.js": 141, "readable-stream/passthrough.js": 150, "readable-stream/readable.js": 151, "readable-stream/transform.js": 152, "readable-stream/writable.js": 153 }], 140: [function (require, module, exports) { + var toString = {}.toString; - // This is the part where you do stuff! - // override this function in implementation classes. - // 'chunk' is an input chunk. + module.exports = Array.isArray || function (arr) { + return toString.call(arr) == '[object Array]'; + }; + }, {}], 141: [function (require, module, exports) { + module.exports = require('./lib/_stream_duplex.js'); + }, { "./lib/_stream_duplex.js": 142 }], 142: [function (require, module, exports) { + // Copyright Joyent, Inc. and other Node contributors. // - // Call `push(newChunk)` to pass along transformed output - // to the readable side. You may call 'push' zero or more times. + // Permission is hereby granted, free of charge, to any person obtaining a + // copy of this software and associated documentation files (the + // "Software"), to deal in the Software without restriction, including + // without limitation the rights to use, copy, modify, merge, publish, + // distribute, sublicense, and/or sell copies of the Software, and to permit + // persons to whom the Software is furnished to do so, subject to the + // following conditions: // - // Call `cb(err)` when you are done with this chunk. If you pass - // an error, then that'll put the hurt on the whole operation. If you - // never call cb(), then you'll never get another chunk. - Transform.prototype._transform = function (chunk, encoding, cb) { - throw new Error('_transform() is not implemented'); - }; + // The above copyright notice and this permission notice shall be included + // in all copies or substantial portions of the Software. + // + // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + // USE OR OTHER DEALINGS IN THE SOFTWARE. - Transform.prototype._write = function (chunk, encoding, cb) { - var ts = this._transformState; - ts.writecb = cb; - ts.writechunk = chunk; - ts.writeencoding = encoding; - if (!ts.transforming) { - var rs = this._readableState; - if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); - } + // a duplex stream is just a stream that is both readable and writable. + // Since JS doesn't have multiple prototypal inheritance, this class + // prototypally inherits from Readable, and then parasitically from + // Writable. + + 'use strict'; + + /**/ + + var processNextTick = require('process-nextick-args'); + /**/ + + /**/ + var objectKeys = Object.keys || function (obj) { + var keys = []; + for (var key in obj) { + keys.push(key); + }return keys; }; + /**/ - // Doesn't matter what the args are here. - // _transform does all the work. - // That we got here means that the readable side wants more data. - Transform.prototype._read = function (n) { - var ts = this._transformState; + module.exports = Duplex; - if (ts.writechunk !== null && ts.writecb && !ts.transforming) { - ts.transforming = true; - this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); - } else { - // mark that we need a transform, so that any data that comes in - // will get processed, now that we've asked for it. - ts.needTransform = true; + /**/ + var util = require('core-util-is'); + util.inherits = require('inherits'); + /**/ + + var Readable = require('./_stream_readable'); + var Writable = require('./_stream_writable'); + + util.inherits(Duplex, Readable); + + var keys = objectKeys(Writable.prototype); + for (var v = 0; v < keys.length; v++) { + var method = keys[v]; + if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; + } + + function Duplex(options) { + if (!(this instanceof Duplex)) return new Duplex(options); + + Readable.call(this, options); + Writable.call(this, options); + + if (options && options.readable === false) this.readable = false; + + if (options && options.writable === false) this.writable = false; + + this.allowHalfOpen = true; + if (options && options.allowHalfOpen === false) this.allowHalfOpen = false; + + this.once('end', onend); + } + + // the no-half-open enforcer + function onend() { + // if we allow half-open state, or if the writable side ended, + // then we're ok. + if (this.allowHalfOpen || this._writableState.ended) return; + + // no more data can be written. + // But allow more writes to happen in this tick. + processNextTick(onEndNT, this); + } + + function onEndNT(self) { + self.end(); + } + + Object.defineProperty(Duplex.prototype, 'destroyed', { + get: function get() { + if (this._readableState === undefined || this._writableState === undefined) { + return false; + } + return this._readableState.destroyed && this._writableState.destroyed; + }, + set: function set(value) { + // we ignore the value if the stream + // has not been initialized yet + if (this._readableState === undefined || this._writableState === undefined) { + return; + } + + // backward compatibility, the user is explicitly + // managing destroyed + this._readableState.destroyed = value; + this._writableState.destroyed = value; } - }; + }); - Transform.prototype._destroy = function (err, cb) { - var _this = this; + Duplex.prototype._destroy = function (err, cb) { + this.push(null); + this.end(); - Duplex.prototype._destroy.call(this, err, function (err2) { - cb(err2); - _this.emit('close'); - }); + processNextTick(cb, err); }; - function done(stream, er, data) { - if (er) return stream.emit('error', er); + function forEach(xs, f) { + for (var i = 0, l = xs.length; i < l; i++) { + f(xs[i], i); + } + } + }, { "./_stream_readable": 144, "./_stream_writable": 146, "core-util-is": 50, "inherits": 102, "process-nextick-args": 119 }], 143: [function (require, module, exports) { + // Copyright Joyent, Inc. and other Node contributors. + // + // Permission is hereby granted, free of charge, to any person obtaining a + // copy of this software and associated documentation files (the + // "Software"), to deal in the Software without restriction, including + // without limitation the rights to use, copy, modify, merge, publish, + // distribute, sublicense, and/or sell copies of the Software, and to permit + // persons to whom the Software is furnished to do so, subject to the + // following conditions: + // + // The above copyright notice and this permission notice shall be included + // in all copies or substantial portions of the Software. + // + // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + // USE OR OTHER DEALINGS IN THE SOFTWARE. - if (data !== null && data !== undefined) stream.push(data); + // a passthrough stream. + // basically just the most minimal sort of Transform stream. + // Every written chunk gets output as-is. - // if there's nothing in the write buffer, then that means - // that nothing more will ever be provided - var ws = stream._writableState; - var ts = stream._transformState; + 'use strict'; - if (ws.length) throw new Error('Calling transform done when ws.length != 0'); + module.exports = PassThrough; - if (ts.transforming) throw new Error('Calling transform done when still transforming'); + var Transform = require('./_stream_transform'); - return stream.push(null); + /**/ + var util = require('core-util-is'); + util.inherits = require('inherits'); + /**/ + + util.inherits(PassThrough, Transform); + + function PassThrough(options) { + if (!(this instanceof PassThrough)) return new PassThrough(options); + + Transform.call(this, options); } - }, { "./_stream_duplex": 130, "core-util-is": 49, "inherits": 101 }], 134: [function (require, module, exports) { + + PassThrough.prototype._transform = function (chunk, encoding, cb) { + cb(null, chunk); + }; + }, { "./_stream_transform": 145, "core-util-is": 50, "inherits": 102 }], 144: [function (require, module, exports) { (function (process, global) { // Copyright Joyent, Inc. and other Node contributors. // @@ -14328,10 +14574,6 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. - // A bit simpler than readable streams. - // Implement an async ._write(chunk, encoding, cb), and it'll handle all - // the drain event emission and buffering. - 'use strict'; /**/ @@ -14339,47 +14581,23 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol var processNextTick = require('process-nextick-args'); /**/ - module.exports = Writable; - - /* */ - function WriteReq(chunk, encoding, cb) { - this.chunk = chunk; - this.encoding = encoding; - this.callback = cb; - this.next = null; - } - - // It seems a linked list but it is not - // there will be only 2 of these for each stream - function CorkedRequest(state) { - var _this = this; - - this.next = null; - this.entry = null; - this.finish = function () { - onCorkedFinish(_this, state); - }; - } - /* */ + module.exports = Readable; /**/ - var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick; + var isArray = require('isarray'); /**/ /**/ var Duplex; /**/ - Writable.WritableState = WritableState; + Readable.ReadableState = ReadableState; /**/ - var util = require('core-util-is'); - util.inherits = require('inherits'); - /**/ + var EE = require('events').EventEmitter; - /**/ - var internalUtil = { - deprecate: require('util-deprecate') + var EElistenerCount = function EElistenerCount(emitter, type) { + return emitter.listeners(type).length; }; /**/ @@ -14387,6 +14605,8 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol var Stream = require('./internal/streams/stream'); /**/ + // TODO(bmeurer): Change this back to const once hole checks are + // properly optimized away early in Ignition+TurboFan. /**/ var Buffer = require('safe-buffer').Buffer; var OurUint8Array = global.Uint8Array || function () {}; @@ -14398,26 +14618,56 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol } /**/ + /**/ + var util = require('core-util-is'); + util.inherits = require('inherits'); + /**/ + + /**/ + var debugUtil = require('util'); + var debug = void 0; + if (debugUtil && debugUtil.debuglog) { + debug = debugUtil.debuglog('stream'); + } else { + debug = function debug() {}; + } + /**/ + + var BufferList = require('./internal/streams/BufferList'); var destroyImpl = require('./internal/streams/destroy'); + var StringDecoder; - util.inherits(Writable, Stream); + util.inherits(Readable, Stream); - function nop() {} + var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; - function WritableState(options, stream) { + function prependListener(emitter, event, fn) { + // Sadly this is not cacheable as some libraries bundle their own + // event emitter implementation with them. + if (typeof emitter.prependListener === 'function') { + return emitter.prependListener(event, fn); + } else { + // This is a hack to make sure that our error handler is attached before any + // userland ones. NEVER DO THIS. This is here only because this code needs + // to continue to work with older versions of Node.js that do not include + // the prependListener() method. The goal is to eventually remove this hack. + 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]]; + } + } + + function ReadableState(options, stream) { Duplex = Duplex || require('./_stream_duplex'); options = options || {}; - // object stream flag to indicate whether or not this stream - // contains buffers or objects. + // object stream flag. Used to make read(n) ignore n and to + // make all the buffer merging and length checks go away this.objectMode = !!options.objectMode; - if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode; + if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode; - // the point at which write() starts returning false - // Note: 0 is a valid value, means that we always return false if - // the entire buffer is not flushed immediately on write() + // the point at which it stops calling _read() to fill the buffer + // Note: 0 is a valid value, means "don't call _read preemptively ever" var hwm = options.highWaterMark; var defaultHwm = this.objectMode ? 16 : 16 * 1024; this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; @@ -14425,2305 +14675,2029 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol // cast to ints. this.highWaterMark = Math.floor(this.highWaterMark); - // if _final has been called - this.finalCalled = false; - - // drain event flag. - this.needDrain = false; - // at the start of calling end() - this.ending = false; - // when end() has been called, and returned + // A linked list is used to store data chunks instead of an array because the + // linked list can remove elements from the beginning faster than + // array.shift() + this.buffer = new BufferList(); + this.length = 0; + this.pipes = null; + this.pipesCount = 0; + this.flowing = null; this.ended = false; - // when 'finish' is emitted - this.finished = false; + this.endEmitted = false; + this.reading = false; + + // a flag to be able to tell if the event 'readable'/'data' is emitted + // immediately, or on a later tick. We set this to true at first, because + // any actions that shouldn't happen until "later" should generally also + // not happen before the first read call. + this.sync = true; + + // whenever we return null, then we set a flag to say + // that we're awaiting a 'readable' event emission. + this.needReadable = false; + this.emittedReadable = false; + this.readableListening = false; + this.resumeScheduled = false; // has it been destroyed this.destroyed = false; - // should we decode strings into buffers before passing to _write? - // this is here so that some node-core streams can optimize string - // handling at a lower level. - var noDecode = options.decodeStrings === false; - this.decodeStrings = !noDecode; - // Crypto is kind of old and crusty. Historically, its default string // encoding is 'binary' so we have to make this configurable. // Everything else in the universe uses 'utf8', though. this.defaultEncoding = options.defaultEncoding || 'utf8'; - // not an actual buffer we keep track of, but a measurement - // of how much we're waiting to get pushed to some underlying - // socket or file. - this.length = 0; + // the number of writers that are awaiting a drain event in .pipe()s + this.awaitDrain = 0; - // a flag to see when we're in the middle of a write. - this.writing = false; + // if true, a maybeReadMore has been scheduled + this.readingMore = false; - // when true all writes will be buffered until .uncork() call - this.corked = 0; + this.decoder = null; + this.encoding = null; + if (options.encoding) { + if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; + this.decoder = new StringDecoder(options.encoding); + this.encoding = options.encoding; + } + } - // a flag to be able to tell if the onwrite cb is called immediately, - // or on a later tick. We set this to true at first, because any - // actions that shouldn't happen until "later" should generally also - // not happen before the first write call. - this.sync = true; + function Readable(options) { + Duplex = Duplex || require('./_stream_duplex'); - // a flag to know if we're processing previously buffered items, which - // may call the _write() callback in the same tick, so that we don't - // end up in an overlapped onwrite situation. - this.bufferProcessing = false; + if (!(this instanceof Readable)) return new Readable(options); - // the callback that's passed to _write(chunk,cb) - this.onwrite = function (er) { - onwrite(stream, er); - }; + this._readableState = new ReadableState(options, this); - // the callback that the user supplies to write(chunk,encoding,cb) - this.writecb = null; + // legacy + this.readable = true; - // the amount that is being written when _write is called. - this.writelen = 0; + if (options) { + if (typeof options.read === 'function') this._read = options.read; - this.bufferedRequest = null; - this.lastBufferedRequest = null; + if (typeof options.destroy === 'function') this._destroy = options.destroy; + } - // number of pending user-supplied write callbacks - // this must be 0 before 'finish' can be emitted - this.pendingcb = 0; + Stream.call(this); + } - // emit prefinish if the only thing we're waiting for is _write cbs - // This is relevant for synchronous Transform streams - this.prefinished = false; + Object.defineProperty(Readable.prototype, 'destroyed', { + get: function get() { + if (this._readableState === undefined) { + return false; + } + return this._readableState.destroyed; + }, + set: function set(value) { + // we ignore the value if the stream + // has not been initialized yet + if (!this._readableState) { + return; + } - // True if the error was already emitted and should not be thrown again - this.errorEmitted = false; + // backward compatibility, the user is explicitly + // managing destroyed + this._readableState.destroyed = value; + } + }); - // count buffered requests - this.bufferedRequestCount = 0; + Readable.prototype.destroy = destroyImpl.destroy; + Readable.prototype._undestroy = destroyImpl.undestroy; + Readable.prototype._destroy = function (err, cb) { + this.push(null); + cb(err); + }; - // allocate the first CorkedRequest, there is always - // one allocated and free to use, and we maintain at most two - this.corkedRequestsFree = new CorkedRequest(this); - } + // Manually shove something into the read() buffer. + // This returns true if the highWaterMark has not been hit yet, + // similar to how Writable.write() returns true if you should + // write() some more. + Readable.prototype.push = function (chunk, encoding) { + var state = this._readableState; + var skipChunkCheck; - WritableState.prototype.getBuffer = function getBuffer() { - var current = this.bufferedRequest; - var out = []; - while (current) { - out.push(current); - current = current.next; + if (!state.objectMode) { + if (typeof chunk === 'string') { + encoding = encoding || state.defaultEncoding; + if (encoding !== state.encoding) { + chunk = Buffer.from(chunk, encoding); + encoding = ''; + } + skipChunkCheck = true; + } + } else { + skipChunkCheck = true; } - return out; + + return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); }; - (function () { - try { - Object.defineProperty(WritableState.prototype, 'buffer', { - get: internalUtil.deprecate(function () { - return this.getBuffer(); - }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') - }); - } catch (_) {} - })(); + // Unshift should *always* be something directly out of read() + Readable.prototype.unshift = function (chunk) { + return readableAddChunk(this, chunk, null, true, false); + }; - // Test _writableState for inheritance to account for Duplex streams, - // whose prototype chain only points to Readable. - var realHasInstance; - if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { - realHasInstance = Function.prototype[Symbol.hasInstance]; - Object.defineProperty(Writable, Symbol.hasInstance, { - value: function value(object) { - if (realHasInstance.call(this, object)) return true; + function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { + var state = stream._readableState; + if (chunk === null) { + state.reading = false; + onEofChunk(stream, state); + } else { + var er; + if (!skipChunkCheck) er = chunkInvalid(state, chunk); + if (er) { + stream.emit('error', er); + } else if (state.objectMode || chunk && chunk.length > 0) { + if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { + chunk = _uint8ArrayToBuffer(chunk); + } - return object && object._writableState instanceof WritableState; + if (addToFront) { + if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true); + } else if (state.ended) { + stream.emit('error', new Error('stream.push() after EOF')); + } else { + state.reading = false; + if (state.decoder && !encoding) { + chunk = state.decoder.write(chunk); + if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); + } else { + addChunk(stream, state, chunk, false); + } + } + } else if (!addToFront) { + state.reading = false; } - }); - } else { - realHasInstance = function realHasInstance(object) { - return object instanceof this; - }; - } - - function Writable(options) { - Duplex = Duplex || require('./_stream_duplex'); - - // Writable ctor is applied to Duplexes, too. - // `realHasInstance` is necessary because using plain `instanceof` - // would return false, as no `_writableState` property is attached. - - // Trying to use the custom `instanceof` for Writable here will also break the - // Node.js LazyTransform implementation, which has a non-trivial getter for - // `_writableState` that would lead to infinite recursion. - if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) { - return new Writable(options); } - this._writableState = new WritableState(options, this); - - // legacy. - this.writable = true; - - if (options) { - if (typeof options.write === 'function') this._write = options.write; + return needMoreData(state); + } - if (typeof options.writev === 'function') this._writev = options.writev; + function addChunk(stream, state, chunk, addToFront) { + if (state.flowing && state.length === 0 && !state.sync) { + stream.emit('data', chunk); + stream.read(0); + } else { + // update the buffer info. + state.length += state.objectMode ? 1 : chunk.length; + if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); - if (typeof options.destroy === 'function') this._destroy = options.destroy; + if (state.needReadable) emitReadable(stream); + } + maybeReadMore(stream, state); + } - if (typeof options.final === 'function') this._final = options.final; + function chunkInvalid(state, chunk) { + var er; + if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { + er = new TypeError('Invalid non-string/buffer chunk'); } + return er; + } - Stream.call(this); + // if it's past the high water mark, we can push in some more. + // Also, if we have no data yet, we can stand some + // more bytes. This is to work around cases where hwm=0, + // such as the repl. Also, if the push() triggered a + // readable event, and the user called read(largeNumber) such that + // needReadable was set, then we ought to push more, so that another + // 'readable' event will be triggered. + function needMoreData(state) { + return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0); } - // Otherwise people can pipe Writable streams, which is just wrong. - Writable.prototype.pipe = function () { - this.emit('error', new Error('Cannot pipe, not readable')); + Readable.prototype.isPaused = function () { + return this._readableState.flowing === false; }; - function writeAfterEnd(stream, cb) { - var er = new Error('write after end'); - // TODO: defer error events consistently everywhere, not just the cb - stream.emit('error', er); - processNextTick(cb, er); - } - - // Checks that a user-supplied chunk is valid, especially for the particular - // mode the stream is in. Currently this means that `null` is never accepted - // and undefined/non-string values are only allowed in object mode. - function validChunk(stream, state, chunk, cb) { - var valid = true; - var er = false; + // backwards compatibility. + Readable.prototype.setEncoding = function (enc) { + if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; + this._readableState.decoder = new StringDecoder(enc); + this._readableState.encoding = enc; + return this; + }; - if (chunk === null) { - er = new TypeError('May not write null values to stream'); - } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { - er = new TypeError('Invalid non-string/buffer chunk'); - } - if (er) { - stream.emit('error', er); - processNextTick(cb, er); - valid = false; + // Don't raise the hwm > 8MB + var MAX_HWM = 0x800000; + function computeNewHighWaterMark(n) { + if (n >= MAX_HWM) { + n = MAX_HWM; + } else { + // Get the next highest power of 2 to prevent increasing hwm excessively in + // tiny amounts + n--; + n |= n >>> 1; + n |= n >>> 2; + n |= n >>> 4; + n |= n >>> 8; + n |= n >>> 16; + n++; } - return valid; + return n; } - Writable.prototype.write = function (chunk, encoding, cb) { - var state = this._writableState; - var ret = false; - var isBuf = _isUint8Array(chunk) && !state.objectMode; - - if (isBuf && !Buffer.isBuffer(chunk)) { - chunk = _uint8ArrayToBuffer(chunk); + // This function is designed to be inlinable, so please take care when making + // changes to the function body. + function howMuchToRead(n, state) { + if (n <= 0 || state.length === 0 && state.ended) return 0; + if (state.objectMode) return 1; + if (n !== n) { + // Only flow one buffer at a time + if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; } - - if (typeof encoding === 'function') { - cb = encoding; - encoding = null; + // If we're asking for more than the current hwm, then raise the hwm. + if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); + if (n <= state.length) return n; + // Don't have enough + if (!state.ended) { + state.needReadable = true; + return 0; } + return state.length; + } - if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; + // you can override either this method, or the async _read(n) below. + Readable.prototype.read = function (n) { + debug('read', n); + n = parseInt(n, 10); + var state = this._readableState; + var nOrig = n; - if (typeof cb !== 'function') cb = nop; + if (n !== 0) state.emittedReadable = false; - if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { - state.pendingcb++; - ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); + // if we're doing read(0) to trigger a readable event, but we + // already have a bunch of data in the buffer, then just trigger + // the 'readable' event and move on. + if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) { + debug('read: emitReadable', state.length, state.ended); + if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); + return null; } - return ret; - }; + n = howMuchToRead(n, state); - Writable.prototype.cork = function () { - var state = this._writableState; + // if we've ended, and we're now clear, then finish it up. + if (n === 0 && state.ended) { + if (state.length === 0) endReadable(this); + return null; + } - state.corked++; - }; + // All the actual chunk generation logic needs to be + // *below* the call to _read. The reason is that in certain + // synthetic stream cases, such as passthrough streams, _read + // may be a completely synchronous operation which may change + // the state of the read buffer, providing enough data when + // before there was *not* enough. + // + // So, the steps are: + // 1. Figure out what the state of things will be after we do + // a read from the buffer. + // + // 2. If that resulting state will trigger a _read, then call _read. + // Note that this may be asynchronous, or synchronous. Yes, it is + // deeply ugly to write APIs this way, but that still doesn't mean + // that the Readable class should behave improperly, as streams are + // designed to be sync/async agnostic. + // Take note if the _read call is sync or async (ie, if the read call + // has returned yet), so that we know whether or not it's safe to emit + // 'readable' etc. + // + // 3. Actually pull the requested chunks out of the buffer and return. - Writable.prototype.uncork = function () { - var state = this._writableState; + // if we need a readable event, then we need to do some reading. + var doRead = state.needReadable; + debug('need readable', doRead); - if (state.corked) { - state.corked--; + // if we currently have less than the highWaterMark, then also read some + if (state.length === 0 || state.length - n < state.highWaterMark) { + doRead = true; + debug('length less than watermark', doRead); + } - if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); + // however, if we've ended, then there's no point, and if we're already + // reading, then it's unnecessary. + if (state.ended || state.reading) { + doRead = false; + debug('reading or ended', doRead); + } else if (doRead) { + debug('do read'); + state.reading = true; + state.sync = true; + // if the length is currently zero, then we *need* a readable event. + if (state.length === 0) state.needReadable = true; + // call internal read method + this._read(state.highWaterMark); + state.sync = false; + // If _read pushed data synchronously, then `reading` will be false, + // and we need to re-evaluate how much data we can return to the user. + if (!state.reading) n = howMuchToRead(nOrig, state); } - }; - Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { - // node::ParseEncoding() requires lower case. - if (typeof encoding === 'string') encoding = encoding.toLowerCase(); - 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); - this._writableState.defaultEncoding = encoding; - return this; - }; + var ret; + if (n > 0) ret = fromList(n, state);else ret = null; - function decodeChunk(state, chunk, encoding) { - if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { - chunk = Buffer.from(chunk, encoding); + if (ret === null) { + state.needReadable = true; + n = 0; + } else { + state.length -= n; } - return chunk; - } - // if we're already writing something, then just put this - // in the queue, and wait our turn. Otherwise, call _write - // If we return false, then we need a drain event, so set that flag. - function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { - if (!isBuf) { - var newChunk = decodeChunk(state, chunk, encoding); - if (chunk !== newChunk) { - isBuf = true; - encoding = 'buffer'; - chunk = newChunk; - } + if (state.length === 0) { + // If we have nothing in the buffer, then we want to know + // as soon as we *do* get something into the buffer. + if (!state.ended) state.needReadable = true; + + // If we tried to read() past the EOF, then emit end on the next tick. + if (nOrig !== n && state.ended) endReadable(this); } - var len = state.objectMode ? 1 : chunk.length; - state.length += len; + if (ret !== null) this.emit('data', ret); - var ret = state.length < state.highWaterMark; - // we must ensure that previous needDrain will not be reset to false. - if (!ret) state.needDrain = true; + return ret; + }; - if (state.writing || state.corked) { - var last = state.lastBufferedRequest; - state.lastBufferedRequest = { - chunk: chunk, - encoding: encoding, - isBuf: isBuf, - callback: cb, - next: null - }; - if (last) { - last.next = state.lastBufferedRequest; - } else { - state.bufferedRequest = state.lastBufferedRequest; + function onEofChunk(stream, state) { + if (state.ended) return; + if (state.decoder) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) { + state.buffer.push(chunk); + state.length += state.objectMode ? 1 : chunk.length; } - state.bufferedRequestCount += 1; - } else { - doWrite(stream, state, false, len, chunk, encoding, cb); } + state.ended = true; - return ret; + // emit 'readable' now to make sure it gets picked up. + emitReadable(stream); } - function doWrite(stream, state, writev, len, chunk, encoding, cb) { - state.writelen = len; - state.writecb = cb; - state.writing = true; - state.sync = true; - if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); - state.sync = false; + // Don't emit readable right away in sync mode, because this can trigger + // another read() call => stack overflow. This way, it might trigger + // a nextTick recursion warning, but that's not so bad. + function emitReadable(stream) { + var state = stream._readableState; + state.needReadable = false; + if (!state.emittedReadable) { + debug('emitReadable', state.flowing); + state.emittedReadable = true; + if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream); + } } - function onwriteError(stream, state, sync, er, cb) { - --state.pendingcb; + function emitReadable_(stream) { + debug('emit readable'); + stream.emit('readable'); + flow(stream); + } - if (sync) { - // defer the callback if we are being called synchronously - // to avoid piling up things on the stack - processNextTick(cb, er); - // this can emit finish, and it will always happen - // after error - processNextTick(finishMaybe, stream, state); - stream._writableState.errorEmitted = true; - stream.emit('error', er); - } else { - // the caller expect this to happen before if - // it is async - cb(er); - stream._writableState.errorEmitted = true; - stream.emit('error', er); - // this can emit finish, but finish must - // always follow error - finishMaybe(stream, state); + // at this point, the user has presumably seen the 'readable' event, + // and called read() to consume some data. that may have triggered + // in turn another _read(n) call, in which case reading = true if + // it's in progress. + // However, if we're not ended, or reading, and the length < hwm, + // then go ahead and try to read some more preemptively. + function maybeReadMore(stream, state) { + if (!state.readingMore) { + state.readingMore = true; + processNextTick(maybeReadMore_, stream, state); } } - function onwriteStateUpdate(state) { - state.writing = false; - state.writecb = null; - state.length -= state.writelen; - state.writelen = 0; + function maybeReadMore_(stream, state) { + var len = state.length; + while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) { + debug('maybeReadMore read 0'); + stream.read(0); + if (len === state.length) + // didn't get any data, stop spinning. + break;else len = state.length; + } + state.readingMore = false; } - function onwrite(stream, er) { - var state = stream._writableState; - var sync = state.sync; - var cb = state.writecb; + // abstract method. to be overridden in specific implementation classes. + // call cb(er, data) where data is <= n in length. + // for virtual (non-string, non-buffer) streams, "length" is somewhat + // arbitrary, and perhaps not very meaningful. + Readable.prototype._read = function (n) { + this.emit('error', new Error('_read() is not implemented')); + }; - onwriteStateUpdate(state); + Readable.prototype.pipe = function (dest, pipeOpts) { + var src = this; + var state = this._readableState; - if (er) onwriteError(stream, state, sync, er, cb);else { - // Check if we're actually ready to finish, but don't emit yet - var finished = needFinish(state); + switch (state.pipesCount) { + case 0: + state.pipes = dest; + break; + case 1: + state.pipes = [state.pipes, dest]; + break; + default: + state.pipes.push(dest); + break; + } + state.pipesCount += 1; + debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); - if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { - clearBuffer(stream, state); - } + var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; - if (sync) { - /**/ - asyncWrite(afterWrite, stream, state, finished, cb); - /**/ - } else { - afterWrite(stream, state, finished, cb); + var endFn = doEnd ? onend : unpipe; + if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn); + + dest.on('unpipe', onunpipe); + function onunpipe(readable, unpipeInfo) { + debug('onunpipe'); + if (readable === src) { + if (unpipeInfo && unpipeInfo.hasUnpiped === false) { + unpipeInfo.hasUnpiped = true; + cleanup(); + } } } - } - - function afterWrite(stream, state, finished, cb) { - if (!finished) onwriteDrain(stream, state); - state.pendingcb--; - cb(); - finishMaybe(stream, state); - } - // Must force callback to be called on nextTick, so that we don't - // emit 'drain' before the write() consumer gets the 'false' return - // value, and has a chance to attach a 'drain' listener. - function onwriteDrain(stream, state) { - if (state.length === 0 && state.needDrain) { - state.needDrain = false; - stream.emit('drain'); + function onend() { + debug('onend'); + dest.end(); } - } - // if there's something in the buffer waiting, then process it - function clearBuffer(stream, state) { - state.bufferProcessing = true; - var entry = state.bufferedRequest; + // when the dest drains, it reduces the awaitDrain counter + // on the source. This would be more elegant with a .once() + // handler in flow(), but adding and removing repeatedly is + // too slow. + var ondrain = pipeOnDrain(src); + dest.on('drain', ondrain); - if (stream._writev && entry && entry.next) { - // Fast case, write everything using _writev() - var l = state.bufferedRequestCount; - var buffer = new Array(l); - var holder = state.corkedRequestsFree; - holder.entry = entry; + var cleanedUp = false; + function cleanup() { + debug('cleanup'); + // cleanup event handlers once the pipe is broken + dest.removeListener('close', onclose); + dest.removeListener('finish', onfinish); + dest.removeListener('drain', ondrain); + dest.removeListener('error', onerror); + dest.removeListener('unpipe', onunpipe); + src.removeListener('end', onend); + src.removeListener('end', unpipe); + src.removeListener('data', ondata); - var count = 0; - var allBuffers = true; - while (entry) { - buffer[count] = entry; - if (!entry.isBuf) allBuffers = false; - entry = entry.next; - count += 1; - } - buffer.allBuffers = allBuffers; - - doWrite(stream, state, true, state.length, buffer, '', holder.finish); + cleanedUp = true; - // doWrite is almost always async, defer these to save a bit of time - // as the hot path ends with doWrite - state.pendingcb++; - state.lastBufferedRequest = null; - if (holder.next) { - state.corkedRequestsFree = holder.next; - holder.next = null; - } else { - state.corkedRequestsFree = new CorkedRequest(state); - } - } else { - // Slow case, write chunks one-by-one - while (entry) { - var chunk = entry.chunk; - var encoding = entry.encoding; - var cb = entry.callback; - var len = state.objectMode ? 1 : chunk.length; + // if the reader is waiting for a drain event from this + // specific writer, then it would cause it to never start + // flowing again. + // So, if this is awaiting a drain, then we just call it now. + // If we don't know, then assume that we are waiting for one. + if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); + } - doWrite(stream, state, false, len, chunk, encoding, cb); - entry = entry.next; - // if we didn't call the onwrite immediately, then - // it means that we need to wait until it does. - // also, that means that the chunk and cb are currently - // being processed, so move the buffer counter past them. - if (state.writing) { - break; + // If the user pushes more data while we're writing to dest then we'll end up + // in ondata again. However, we only want to increase awaitDrain once because + // dest will only emit one 'drain' event for the multiple writes. + // => Introduce a guard on increasing awaitDrain. + var increasedAwaitDrain = false; + src.on('data', ondata); + function ondata(chunk) { + debug('ondata'); + increasedAwaitDrain = false; + var ret = dest.write(chunk); + if (false === ret && !increasedAwaitDrain) { + // If the user unpiped during `dest.write()`, it is possible + // to get stuck in a permanently paused state if that write + // also returned false. + // => Check whether `dest` is still a piping destination. + if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { + debug('false write response, pause', src._readableState.awaitDrain); + src._readableState.awaitDrain++; + increasedAwaitDrain = true; } + src.pause(); } - - if (entry === null) state.lastBufferedRequest = null; } - state.bufferedRequestCount = 0; - state.bufferedRequest = entry; - state.bufferProcessing = false; - } - - Writable.prototype._write = function (chunk, encoding, cb) { - cb(new Error('_write() is not implemented')); - }; + // if the dest has an error, then stop piping into it. + // however, don't suppress the throwing behavior for this. + function onerror(er) { + debug('onerror', er); + unpipe(); + dest.removeListener('error', onerror); + if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er); + } - Writable.prototype._writev = null; + // Make sure our error handler is attached before userland ones. + prependListener(dest, 'error', onerror); - Writable.prototype.end = function (chunk, encoding, cb) { - var state = this._writableState; + // Both close and finish should trigger unpipe, but only once. + function onclose() { + dest.removeListener('finish', onfinish); + unpipe(); + } + dest.once('close', onclose); + function onfinish() { + debug('onfinish'); + dest.removeListener('close', onclose); + unpipe(); + } + dest.once('finish', onfinish); - if (typeof chunk === 'function') { - cb = chunk; - chunk = null; - encoding = null; - } else if (typeof encoding === 'function') { - cb = encoding; - encoding = null; + function unpipe() { + debug('unpipe'); + src.unpipe(dest); } - if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); + // tell the dest that it's being piped to + dest.emit('pipe', src); - // .end() fully uncorks - if (state.corked) { - state.corked = 1; - this.uncork(); + // start the flow if it hasn't been started already. + if (!state.flowing) { + debug('pipe resume'); + src.resume(); } - // ignore unnecessary end() calls. - if (!state.ending && !state.finished) endWritable(this, state, cb); + return dest; }; - function needFinish(state) { - return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; - } - function callFinal(stream, state) { - stream._final(function (err) { - state.pendingcb--; - if (err) { - stream.emit('error', err); - } - state.prefinished = true; - stream.emit('prefinish'); - finishMaybe(stream, state); - }); - } - function prefinish(stream, state) { - if (!state.prefinished && !state.finalCalled) { - if (typeof stream._final === 'function') { - state.pendingcb++; - state.finalCalled = true; - processNextTick(callFinal, stream, state); - } else { - state.prefinished = true; - stream.emit('prefinish'); + function pipeOnDrain(src) { + return function () { + var state = src._readableState; + debug('pipeOnDrain', state.awaitDrain); + if (state.awaitDrain) state.awaitDrain--; + if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { + state.flowing = true; + flow(src); } - } + }; } - function finishMaybe(stream, state) { - var need = needFinish(state); - if (need) { - prefinish(stream, state); - if (state.pendingcb === 0) { - state.finished = true; - stream.emit('finish'); - } - } - return need; - } + Readable.prototype.unpipe = function (dest) { + var state = this._readableState; + var unpipeInfo = { hasUnpiped: false }; - function endWritable(stream, state, cb) { - state.ending = true; - finishMaybe(stream, state); - if (cb) { - if (state.finished) processNextTick(cb);else stream.once('finish', cb); - } - state.ended = true; - stream.writable = false; - } + // if we're not piping anywhere, then do nothing. + if (state.pipesCount === 0) return this; - function onCorkedFinish(corkReq, state, err) { - var entry = corkReq.entry; - corkReq.entry = null; - while (entry) { - var cb = entry.callback; - state.pendingcb--; - cb(err); - entry = entry.next; - } - if (state.corkedRequestsFree) { - state.corkedRequestsFree.next = corkReq; - } else { - state.corkedRequestsFree = corkReq; - } - } + // just one destination. most common case. + if (state.pipesCount === 1) { + // passed in one, but it's not the right one. + if (dest && dest !== state.pipes) return this; - Object.defineProperty(Writable.prototype, 'destroyed', { - get: function get() { - if (this._writableState === undefined) { - return false; - } - return this._writableState.destroyed; - }, - set: function set(value) { - // we ignore the value if the stream - // has not been initialized yet - if (!this._writableState) { - return; - } + if (!dest) dest = state.pipes; - // backward compatibility, the user is explicitly - // managing destroyed - this._writableState.destroyed = value; + // got a match. + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + if (dest) dest.emit('unpipe', this, unpipeInfo); + return this; } - }); - - Writable.prototype.destroy = destroyImpl.destroy; - Writable.prototype._undestroy = destroyImpl.undestroy; - Writable.prototype._destroy = function (err, cb) { - this.end(); - cb(err); - }; - }).call(this, require('_process'), typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}); - }, { "./_stream_duplex": 130, "./internal/streams/destroy": 136, "./internal/streams/stream": 137, "_process": 120, "core-util-is": 49, "inherits": 101, "process-nextick-args": 119, "safe-buffer": 143, "util-deprecate": 154 }], 135: [function (require, module, exports) { - 'use strict'; - /**/ + // slow case. multiple pipe destinations. - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } + if (!dest) { + // remove all. + var dests = state.pipes; + var len = state.pipesCount; + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; - var Buffer = require('safe-buffer').Buffer; - /**/ + for (var i = 0; i < len; i++) { + dests[i].emit('unpipe', this, unpipeInfo); + }return this; + } - function copyBuffer(src, target, offset) { - src.copy(target, offset); - } + // try to find the right one. + var index = indexOf(state.pipes, dest); + if (index === -1) return this; - module.exports = function () { - function BufferList() { - _classCallCheck(this, BufferList); + state.pipes.splice(index, 1); + state.pipesCount -= 1; + if (state.pipesCount === 1) state.pipes = state.pipes[0]; - this.head = null; - this.tail = null; - this.length = 0; - } + dest.emit('unpipe', this, unpipeInfo); - BufferList.prototype.push = function push(v) { - var entry = { data: v, next: null }; - if (this.length > 0) this.tail.next = entry;else this.head = entry; - this.tail = entry; - ++this.length; + return this; }; - BufferList.prototype.unshift = function unshift(v) { - var entry = { data: v, next: this.head }; - if (this.length === 0) this.tail = entry; - this.head = entry; - ++this.length; - }; + // set up data events if they are asked for + // Ensure readable listeners eventually get something + Readable.prototype.on = function (ev, fn) { + var res = Stream.prototype.on.call(this, ev, fn); - BufferList.prototype.shift = function shift() { - if (this.length === 0) return; - var ret = this.head.data; - if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; - --this.length; - return ret; - }; + if (ev === 'data') { + // Start flowing on next tick if stream isn't explicitly paused + if (this._readableState.flowing !== false) this.resume(); + } else if (ev === 'readable') { + var state = this._readableState; + if (!state.endEmitted && !state.readableListening) { + state.readableListening = state.needReadable = true; + state.emittedReadable = false; + if (!state.reading) { + processNextTick(nReadingNextTick, this); + } else if (state.length) { + emitReadable(this); + } + } + } - BufferList.prototype.clear = function clear() { - this.head = this.tail = null; - this.length = 0; + return res; }; + Readable.prototype.addListener = Readable.prototype.on; - BufferList.prototype.join = function join(s) { - if (this.length === 0) return ''; - var p = this.head; - var ret = '' + p.data; - while (p = p.next) { - ret += s + p.data; - }return ret; - }; + function nReadingNextTick(self) { + debug('readable nexttick read 0'); + self.read(0); + } - BufferList.prototype.concat = function concat(n) { - if (this.length === 0) return Buffer.alloc(0); - if (this.length === 1) return this.head.data; - var ret = Buffer.allocUnsafe(n >>> 0); - var p = this.head; - var i = 0; - while (p) { - copyBuffer(p.data, ret, i); - i += p.data.length; - p = p.next; + // pause() and resume() are remnants of the legacy readable stream API + // If the user uses them, then switch into old mode. + Readable.prototype.resume = function () { + var state = this._readableState; + if (!state.flowing) { + debug('resume'); + state.flowing = true; + resume(this, state); } - return ret; + return this; }; - return BufferList; - }(); - }, { "safe-buffer": 143 }], 136: [function (require, module, exports) { - 'use strict'; - - /**/ - - var processNextTick = require('process-nextick-args'); - /**/ - - // undocumented cb() API, needed for core, not for public API - function destroy(err, cb) { - var _this = this; - - var readableDestroyed = this._readableState && this._readableState.destroyed; - var writableDestroyed = this._writableState && this._writableState.destroyed; - - if (readableDestroyed || writableDestroyed) { - if (cb) { - cb(err); - } else if (err && (!this._writableState || !this._writableState.errorEmitted)) { - processNextTick(emitErrorNT, this, err); + function resume(stream, state) { + if (!state.resumeScheduled) { + state.resumeScheduled = true; + processNextTick(resume_, stream, state); } - return; } - // we set destroyed to true before firing error callbacks in order - // to make it re-entrance safe in case destroy() is called within callbacks - - if (this._readableState) { - this._readableState.destroyed = true; - } + function resume_(stream, state) { + if (!state.reading) { + debug('resume read 0'); + stream.read(0); + } - // if this is a duplex stream mark the writable part as destroyed as well - if (this._writableState) { - this._writableState.destroyed = true; + state.resumeScheduled = false; + state.awaitDrain = 0; + stream.emit('resume'); + flow(stream); + if (state.flowing && !state.reading) stream.read(0); } - this._destroy(err || null, function (err) { - if (!cb && err) { - processNextTick(emitErrorNT, _this, err); - if (_this._writableState) { - _this._writableState.errorEmitted = true; - } - } else if (cb) { - cb(err); + Readable.prototype.pause = function () { + debug('call pause flowing=%j', this._readableState.flowing); + if (false !== this._readableState.flowing) { + debug('pause'); + this._readableState.flowing = false; + this.emit('pause'); } - }); - } + return this; + }; - function undestroy() { - if (this._readableState) { - this._readableState.destroyed = false; - this._readableState.reading = false; - this._readableState.ended = false; - this._readableState.endEmitted = false; + function flow(stream) { + var state = stream._readableState; + debug('flow', state.flowing); + while (state.flowing && stream.read() !== null) {} } - if (this._writableState) { - this._writableState.destroyed = false; - this._writableState.ended = false; - this._writableState.ending = false; - this._writableState.finished = false; - this._writableState.errorEmitted = false; - } - } + // wrap an old-style stream as the async data source. + // This is *not* part of the readable stream interface. + // It is an ugly unfortunate mess of history. + Readable.prototype.wrap = function (stream) { + var state = this._readableState; + var paused = false; - function emitErrorNT(self, err) { - self.emit('error', err); - } + var self = this; + stream.on('end', function () { + debug('wrapped end'); + if (state.decoder && !state.ended) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) self.push(chunk); + } - module.exports = { - destroy: destroy, - undestroy: undestroy - }; - }, { "process-nextick-args": 119 }], 137: [function (require, module, exports) { - module.exports = require('events').EventEmitter; - }, { "events": 83 }], 138: [function (require, module, exports) { - module.exports = require('./readable').PassThrough; - }, { "./readable": 139 }], 139: [function (require, module, exports) { - exports = module.exports = require('./lib/_stream_readable.js'); - exports.Stream = exports; - exports.Readable = exports; - exports.Writable = require('./lib/_stream_writable.js'); - exports.Duplex = require('./lib/_stream_duplex.js'); - exports.Transform = require('./lib/_stream_transform.js'); - exports.PassThrough = require('./lib/_stream_passthrough.js'); - }, { "./lib/_stream_duplex.js": 130, "./lib/_stream_passthrough.js": 131, "./lib/_stream_readable.js": 132, "./lib/_stream_transform.js": 133, "./lib/_stream_writable.js": 134 }], 140: [function (require, module, exports) { - module.exports = require('./readable').Transform; - }, { "./readable": 139 }], 141: [function (require, module, exports) { - module.exports = require('./lib/_stream_writable.js'); - }, { "./lib/_stream_writable.js": 134 }], 142: [function (require, module, exports) { - (function (Buffer) { - 'use strict'; + self.push(null); + }); - var inherits = require('inherits'); - var HashBase = require('hash-base'); + stream.on('data', function (chunk) { + debug('wrapped data'); + if (state.decoder) chunk = state.decoder.write(chunk); - function RIPEMD160() { - HashBase.call(this, 64); + // don't skip over falsy values in objectMode + if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; - // state - this._a = 0x67452301; - this._b = 0xefcdab89; - this._c = 0x98badcfe; - this._d = 0x10325476; - this._e = 0xc3d2e1f0; - } + var ret = self.push(chunk); + if (!ret) { + paused = true; + stream.pause(); + } + }); - inherits(RIPEMD160, HashBase); + // proxy all the other methods. + // important when wrapping filters and duplexes. + for (var i in stream) { + if (this[i] === undefined && typeof stream[i] === 'function') { + this[i] = function (method) { + return function () { + return stream[method].apply(stream, arguments); + }; + }(i); + } + } - RIPEMD160.prototype._update = function () { - var m = new Array(16); - for (var i = 0; i < 16; ++i) { - m[i] = this._block.readInt32LE(i * 4); - }var al = this._a; - var bl = this._b; - var cl = this._c; - var dl = this._d; - var el = this._e; + // proxy certain important events. + for (var n = 0; n < kProxyEvents.length; n++) { + stream.on(kProxyEvents[n], self.emit.bind(self, kProxyEvents[n])); + } - // Mj = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 - // K = 0x00000000 - // Sj = 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8 - al = fn1(al, bl, cl, dl, el, m[0], 0x00000000, 11);cl = rotl(cl, 10); - el = fn1(el, al, bl, cl, dl, m[1], 0x00000000, 14);bl = rotl(bl, 10); - dl = fn1(dl, el, al, bl, cl, m[2], 0x00000000, 15);al = rotl(al, 10); - cl = fn1(cl, dl, el, al, bl, m[3], 0x00000000, 12);el = rotl(el, 10); - bl = fn1(bl, cl, dl, el, al, m[4], 0x00000000, 5);dl = rotl(dl, 10); - al = fn1(al, bl, cl, dl, el, m[5], 0x00000000, 8);cl = rotl(cl, 10); - el = fn1(el, al, bl, cl, dl, m[6], 0x00000000, 7);bl = rotl(bl, 10); - dl = fn1(dl, el, al, bl, cl, m[7], 0x00000000, 9);al = rotl(al, 10); - cl = fn1(cl, dl, el, al, bl, m[8], 0x00000000, 11);el = rotl(el, 10); - bl = fn1(bl, cl, dl, el, al, m[9], 0x00000000, 13);dl = rotl(dl, 10); - al = fn1(al, bl, cl, dl, el, m[10], 0x00000000, 14);cl = rotl(cl, 10); - el = fn1(el, al, bl, cl, dl, m[11], 0x00000000, 15);bl = rotl(bl, 10); - dl = fn1(dl, el, al, bl, cl, m[12], 0x00000000, 6);al = rotl(al, 10); - cl = fn1(cl, dl, el, al, bl, m[13], 0x00000000, 7);el = rotl(el, 10); - bl = fn1(bl, cl, dl, el, al, m[14], 0x00000000, 9);dl = rotl(dl, 10); - al = fn1(al, bl, cl, dl, el, m[15], 0x00000000, 8);cl = rotl(cl, 10); - - // Mj = 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8 - // K = 0x5a827999 - // Sj = 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12 - el = fn2(el, al, bl, cl, dl, m[7], 0x5a827999, 7);bl = rotl(bl, 10); - dl = fn2(dl, el, al, bl, cl, m[4], 0x5a827999, 6);al = rotl(al, 10); - cl = fn2(cl, dl, el, al, bl, m[13], 0x5a827999, 8);el = rotl(el, 10); - bl = fn2(bl, cl, dl, el, al, m[1], 0x5a827999, 13);dl = rotl(dl, 10); - al = fn2(al, bl, cl, dl, el, m[10], 0x5a827999, 11);cl = rotl(cl, 10); - el = fn2(el, al, bl, cl, dl, m[6], 0x5a827999, 9);bl = rotl(bl, 10); - dl = fn2(dl, el, al, bl, cl, m[15], 0x5a827999, 7);al = rotl(al, 10); - cl = fn2(cl, dl, el, al, bl, m[3], 0x5a827999, 15);el = rotl(el, 10); - bl = fn2(bl, cl, dl, el, al, m[12], 0x5a827999, 7);dl = rotl(dl, 10); - al = fn2(al, bl, cl, dl, el, m[0], 0x5a827999, 12);cl = rotl(cl, 10); - el = fn2(el, al, bl, cl, dl, m[9], 0x5a827999, 15);bl = rotl(bl, 10); - dl = fn2(dl, el, al, bl, cl, m[5], 0x5a827999, 9);al = rotl(al, 10); - cl = fn2(cl, dl, el, al, bl, m[2], 0x5a827999, 11);el = rotl(el, 10); - bl = fn2(bl, cl, dl, el, al, m[14], 0x5a827999, 7);dl = rotl(dl, 10); - al = fn2(al, bl, cl, dl, el, m[11], 0x5a827999, 13);cl = rotl(cl, 10); - el = fn2(el, al, bl, cl, dl, m[8], 0x5a827999, 12);bl = rotl(bl, 10); - - // Mj = 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12 - // K = 0x6ed9eba1 - // Sj = 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5 - dl = fn3(dl, el, al, bl, cl, m[3], 0x6ed9eba1, 11);al = rotl(al, 10); - cl = fn3(cl, dl, el, al, bl, m[10], 0x6ed9eba1, 13);el = rotl(el, 10); - bl = fn3(bl, cl, dl, el, al, m[14], 0x6ed9eba1, 6);dl = rotl(dl, 10); - al = fn3(al, bl, cl, dl, el, m[4], 0x6ed9eba1, 7);cl = rotl(cl, 10); - el = fn3(el, al, bl, cl, dl, m[9], 0x6ed9eba1, 14);bl = rotl(bl, 10); - dl = fn3(dl, el, al, bl, cl, m[15], 0x6ed9eba1, 9);al = rotl(al, 10); - cl = fn3(cl, dl, el, al, bl, m[8], 0x6ed9eba1, 13);el = rotl(el, 10); - bl = fn3(bl, cl, dl, el, al, m[1], 0x6ed9eba1, 15);dl = rotl(dl, 10); - al = fn3(al, bl, cl, dl, el, m[2], 0x6ed9eba1, 14);cl = rotl(cl, 10); - el = fn3(el, al, bl, cl, dl, m[7], 0x6ed9eba1, 8);bl = rotl(bl, 10); - dl = fn3(dl, el, al, bl, cl, m[0], 0x6ed9eba1, 13);al = rotl(al, 10); - cl = fn3(cl, dl, el, al, bl, m[6], 0x6ed9eba1, 6);el = rotl(el, 10); - bl = fn3(bl, cl, dl, el, al, m[13], 0x6ed9eba1, 5);dl = rotl(dl, 10); - al = fn3(al, bl, cl, dl, el, m[11], 0x6ed9eba1, 12);cl = rotl(cl, 10); - el = fn3(el, al, bl, cl, dl, m[5], 0x6ed9eba1, 7);bl = rotl(bl, 10); - dl = fn3(dl, el, al, bl, cl, m[12], 0x6ed9eba1, 5);al = rotl(al, 10); - - // Mj = 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2 - // K = 0x8f1bbcdc - // Sj = 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12 - cl = fn4(cl, dl, el, al, bl, m[1], 0x8f1bbcdc, 11);el = rotl(el, 10); - bl = fn4(bl, cl, dl, el, al, m[9], 0x8f1bbcdc, 12);dl = rotl(dl, 10); - al = fn4(al, bl, cl, dl, el, m[11], 0x8f1bbcdc, 14);cl = rotl(cl, 10); - el = fn4(el, al, bl, cl, dl, m[10], 0x8f1bbcdc, 15);bl = rotl(bl, 10); - dl = fn4(dl, el, al, bl, cl, m[0], 0x8f1bbcdc, 14);al = rotl(al, 10); - cl = fn4(cl, dl, el, al, bl, m[8], 0x8f1bbcdc, 15);el = rotl(el, 10); - bl = fn4(bl, cl, dl, el, al, m[12], 0x8f1bbcdc, 9);dl = rotl(dl, 10); - al = fn4(al, bl, cl, dl, el, m[4], 0x8f1bbcdc, 8);cl = rotl(cl, 10); - el = fn4(el, al, bl, cl, dl, m[13], 0x8f1bbcdc, 9);bl = rotl(bl, 10); - dl = fn4(dl, el, al, bl, cl, m[3], 0x8f1bbcdc, 14);al = rotl(al, 10); - cl = fn4(cl, dl, el, al, bl, m[7], 0x8f1bbcdc, 5);el = rotl(el, 10); - bl = fn4(bl, cl, dl, el, al, m[15], 0x8f1bbcdc, 6);dl = rotl(dl, 10); - al = fn4(al, bl, cl, dl, el, m[14], 0x8f1bbcdc, 8);cl = rotl(cl, 10); - el = fn4(el, al, bl, cl, dl, m[5], 0x8f1bbcdc, 6);bl = rotl(bl, 10); - dl = fn4(dl, el, al, bl, cl, m[6], 0x8f1bbcdc, 5);al = rotl(al, 10); - cl = fn4(cl, dl, el, al, bl, m[2], 0x8f1bbcdc, 12);el = rotl(el, 10); - - // Mj = 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13 - // K = 0xa953fd4e - // Sj = 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 - bl = fn5(bl, cl, dl, el, al, m[4], 0xa953fd4e, 9);dl = rotl(dl, 10); - al = fn5(al, bl, cl, dl, el, m[0], 0xa953fd4e, 15);cl = rotl(cl, 10); - el = fn5(el, al, bl, cl, dl, m[5], 0xa953fd4e, 5);bl = rotl(bl, 10); - dl = fn5(dl, el, al, bl, cl, m[9], 0xa953fd4e, 11);al = rotl(al, 10); - cl = fn5(cl, dl, el, al, bl, m[7], 0xa953fd4e, 6);el = rotl(el, 10); - bl = fn5(bl, cl, dl, el, al, m[12], 0xa953fd4e, 8);dl = rotl(dl, 10); - al = fn5(al, bl, cl, dl, el, m[2], 0xa953fd4e, 13);cl = rotl(cl, 10); - el = fn5(el, al, bl, cl, dl, m[10], 0xa953fd4e, 12);bl = rotl(bl, 10); - dl = fn5(dl, el, al, bl, cl, m[14], 0xa953fd4e, 5);al = rotl(al, 10); - cl = fn5(cl, dl, el, al, bl, m[1], 0xa953fd4e, 12);el = rotl(el, 10); - bl = fn5(bl, cl, dl, el, al, m[3], 0xa953fd4e, 13);dl = rotl(dl, 10); - al = fn5(al, bl, cl, dl, el, m[8], 0xa953fd4e, 14);cl = rotl(cl, 10); - el = fn5(el, al, bl, cl, dl, m[11], 0xa953fd4e, 11);bl = rotl(bl, 10); - dl = fn5(dl, el, al, bl, cl, m[6], 0xa953fd4e, 8);al = rotl(al, 10); - cl = fn5(cl, dl, el, al, bl, m[15], 0xa953fd4e, 5);el = rotl(el, 10); - bl = fn5(bl, cl, dl, el, al, m[13], 0xa953fd4e, 6);dl = rotl(dl, 10); + // when we try to consume some more bytes, simply unpause the + // underlying stream. + self._read = function (n) { + debug('wrapped _read', n); + if (paused) { + paused = false; + stream.resume(); + } + }; - var ar = this._a; - var br = this._b; - var cr = this._c; - var dr = this._d; - var er = this._e; + return self; + }; - // M'j = 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12 - // K' = 0x50a28be6 - // S'j = 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6 - ar = fn5(ar, br, cr, dr, er, m[5], 0x50a28be6, 8);cr = rotl(cr, 10); - er = fn5(er, ar, br, cr, dr, m[14], 0x50a28be6, 9);br = rotl(br, 10); - dr = fn5(dr, er, ar, br, cr, m[7], 0x50a28be6, 9);ar = rotl(ar, 10); - cr = fn5(cr, dr, er, ar, br, m[0], 0x50a28be6, 11);er = rotl(er, 10); - br = fn5(br, cr, dr, er, ar, m[9], 0x50a28be6, 13);dr = rotl(dr, 10); - ar = fn5(ar, br, cr, dr, er, m[2], 0x50a28be6, 15);cr = rotl(cr, 10); - er = fn5(er, ar, br, cr, dr, m[11], 0x50a28be6, 15);br = rotl(br, 10); - dr = fn5(dr, er, ar, br, cr, m[4], 0x50a28be6, 5);ar = rotl(ar, 10); - cr = fn5(cr, dr, er, ar, br, m[13], 0x50a28be6, 7);er = rotl(er, 10); - br = fn5(br, cr, dr, er, ar, m[6], 0x50a28be6, 7);dr = rotl(dr, 10); - ar = fn5(ar, br, cr, dr, er, m[15], 0x50a28be6, 8);cr = rotl(cr, 10); - er = fn5(er, ar, br, cr, dr, m[8], 0x50a28be6, 11);br = rotl(br, 10); - dr = fn5(dr, er, ar, br, cr, m[1], 0x50a28be6, 14);ar = rotl(ar, 10); - cr = fn5(cr, dr, er, ar, br, m[10], 0x50a28be6, 14);er = rotl(er, 10); - br = fn5(br, cr, dr, er, ar, m[3], 0x50a28be6, 12);dr = rotl(dr, 10); - ar = fn5(ar, br, cr, dr, er, m[12], 0x50a28be6, 6);cr = rotl(cr, 10); + // exposed for testing purposes only. + Readable._fromList = fromList; - // M'j = 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2 - // K' = 0x5c4dd124 - // S'j = 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11 - er = fn4(er, ar, br, cr, dr, m[6], 0x5c4dd124, 9);br = rotl(br, 10); - dr = fn4(dr, er, ar, br, cr, m[11], 0x5c4dd124, 13);ar = rotl(ar, 10); - cr = fn4(cr, dr, er, ar, br, m[3], 0x5c4dd124, 15);er = rotl(er, 10); - br = fn4(br, cr, dr, er, ar, m[7], 0x5c4dd124, 7);dr = rotl(dr, 10); - ar = fn4(ar, br, cr, dr, er, m[0], 0x5c4dd124, 12);cr = rotl(cr, 10); - er = fn4(er, ar, br, cr, dr, m[13], 0x5c4dd124, 8);br = rotl(br, 10); - dr = fn4(dr, er, ar, br, cr, m[5], 0x5c4dd124, 9);ar = rotl(ar, 10); - cr = fn4(cr, dr, er, ar, br, m[10], 0x5c4dd124, 11);er = rotl(er, 10); - br = fn4(br, cr, dr, er, ar, m[14], 0x5c4dd124, 7);dr = rotl(dr, 10); - ar = fn4(ar, br, cr, dr, er, m[15], 0x5c4dd124, 7);cr = rotl(cr, 10); - er = fn4(er, ar, br, cr, dr, m[8], 0x5c4dd124, 12);br = rotl(br, 10); - dr = fn4(dr, er, ar, br, cr, m[12], 0x5c4dd124, 7);ar = rotl(ar, 10); - cr = fn4(cr, dr, er, ar, br, m[4], 0x5c4dd124, 6);er = rotl(er, 10); - br = fn4(br, cr, dr, er, ar, m[9], 0x5c4dd124, 15);dr = rotl(dr, 10); - ar = fn4(ar, br, cr, dr, er, m[1], 0x5c4dd124, 13);cr = rotl(cr, 10); - er = fn4(er, ar, br, cr, dr, m[2], 0x5c4dd124, 11);br = rotl(br, 10); + // Pluck off n bytes from an array of buffers. + // Length is the combined lengths of all the buffers in the list. + // This function is designed to be inlinable, so please take care when making + // changes to the function body. + function fromList(n, state) { + // nothing buffered + if (state.length === 0) return null; - // M'j = 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13 - // K' = 0x6d703ef3 - // S'j = 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5 - dr = fn3(dr, er, ar, br, cr, m[15], 0x6d703ef3, 9);ar = rotl(ar, 10); - cr = fn3(cr, dr, er, ar, br, m[5], 0x6d703ef3, 7);er = rotl(er, 10); - br = fn3(br, cr, dr, er, ar, m[1], 0x6d703ef3, 15);dr = rotl(dr, 10); - ar = fn3(ar, br, cr, dr, er, m[3], 0x6d703ef3, 11);cr = rotl(cr, 10); - er = fn3(er, ar, br, cr, dr, m[7], 0x6d703ef3, 8);br = rotl(br, 10); - dr = fn3(dr, er, ar, br, cr, m[14], 0x6d703ef3, 6);ar = rotl(ar, 10); - cr = fn3(cr, dr, er, ar, br, m[6], 0x6d703ef3, 6);er = rotl(er, 10); - br = fn3(br, cr, dr, er, ar, m[9], 0x6d703ef3, 14);dr = rotl(dr, 10); - ar = fn3(ar, br, cr, dr, er, m[11], 0x6d703ef3, 12);cr = rotl(cr, 10); - er = fn3(er, ar, br, cr, dr, m[8], 0x6d703ef3, 13);br = rotl(br, 10); - dr = fn3(dr, er, ar, br, cr, m[12], 0x6d703ef3, 5);ar = rotl(ar, 10); - cr = fn3(cr, dr, er, ar, br, m[2], 0x6d703ef3, 14);er = rotl(er, 10); - br = fn3(br, cr, dr, er, ar, m[10], 0x6d703ef3, 13);dr = rotl(dr, 10); - ar = fn3(ar, br, cr, dr, er, m[0], 0x6d703ef3, 13);cr = rotl(cr, 10); - er = fn3(er, ar, br, cr, dr, m[4], 0x6d703ef3, 7);br = rotl(br, 10); - dr = fn3(dr, er, ar, br, cr, m[13], 0x6d703ef3, 5);ar = rotl(ar, 10); + var ret; + if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { + // read it all, truncate the list + 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); + state.buffer.clear(); + } else { + // read part of list + ret = fromListPartial(n, state.buffer, state.decoder); + } - // M'j = 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14 - // K' = 0x7a6d76e9 - // S'j = 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8 - cr = fn2(cr, dr, er, ar, br, m[8], 0x7a6d76e9, 15);er = rotl(er, 10); - br = fn2(br, cr, dr, er, ar, m[6], 0x7a6d76e9, 5);dr = rotl(dr, 10); - ar = fn2(ar, br, cr, dr, er, m[4], 0x7a6d76e9, 8);cr = rotl(cr, 10); - er = fn2(er, ar, br, cr, dr, m[1], 0x7a6d76e9, 11);br = rotl(br, 10); - dr = fn2(dr, er, ar, br, cr, m[3], 0x7a6d76e9, 14);ar = rotl(ar, 10); - cr = fn2(cr, dr, er, ar, br, m[11], 0x7a6d76e9, 14);er = rotl(er, 10); - br = fn2(br, cr, dr, er, ar, m[15], 0x7a6d76e9, 6);dr = rotl(dr, 10); - ar = fn2(ar, br, cr, dr, er, m[0], 0x7a6d76e9, 14);cr = rotl(cr, 10); - er = fn2(er, ar, br, cr, dr, m[5], 0x7a6d76e9, 6);br = rotl(br, 10); - dr = fn2(dr, er, ar, br, cr, m[12], 0x7a6d76e9, 9);ar = rotl(ar, 10); - cr = fn2(cr, dr, er, ar, br, m[2], 0x7a6d76e9, 12);er = rotl(er, 10); - br = fn2(br, cr, dr, er, ar, m[13], 0x7a6d76e9, 9);dr = rotl(dr, 10); - ar = fn2(ar, br, cr, dr, er, m[9], 0x7a6d76e9, 12);cr = rotl(cr, 10); - er = fn2(er, ar, br, cr, dr, m[7], 0x7a6d76e9, 5);br = rotl(br, 10); - dr = fn2(dr, er, ar, br, cr, m[10], 0x7a6d76e9, 15);ar = rotl(ar, 10); - cr = fn2(cr, dr, er, ar, br, m[14], 0x7a6d76e9, 8);er = rotl(er, 10); + return ret; + } - // M'j = 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11 - // K' = 0x00000000 - // S'j = 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 - br = fn1(br, cr, dr, er, ar, m[12], 0x00000000, 8);dr = rotl(dr, 10); - ar = fn1(ar, br, cr, dr, er, m[15], 0x00000000, 5);cr = rotl(cr, 10); - er = fn1(er, ar, br, cr, dr, m[10], 0x00000000, 12);br = rotl(br, 10); - dr = fn1(dr, er, ar, br, cr, m[4], 0x00000000, 9);ar = rotl(ar, 10); - cr = fn1(cr, dr, er, ar, br, m[1], 0x00000000, 12);er = rotl(er, 10); - br = fn1(br, cr, dr, er, ar, m[5], 0x00000000, 5);dr = rotl(dr, 10); - ar = fn1(ar, br, cr, dr, er, m[8], 0x00000000, 14);cr = rotl(cr, 10); - er = fn1(er, ar, br, cr, dr, m[7], 0x00000000, 6);br = rotl(br, 10); - dr = fn1(dr, er, ar, br, cr, m[6], 0x00000000, 8);ar = rotl(ar, 10); - cr = fn1(cr, dr, er, ar, br, m[2], 0x00000000, 13);er = rotl(er, 10); - br = fn1(br, cr, dr, er, ar, m[13], 0x00000000, 6);dr = rotl(dr, 10); - ar = fn1(ar, br, cr, dr, er, m[14], 0x00000000, 5);cr = rotl(cr, 10); - er = fn1(er, ar, br, cr, dr, m[0], 0x00000000, 15);br = rotl(br, 10); - dr = fn1(dr, er, ar, br, cr, m[3], 0x00000000, 13);ar = rotl(ar, 10); - cr = fn1(cr, dr, er, ar, br, m[9], 0x00000000, 11);er = rotl(er, 10); - br = fn1(br, cr, dr, er, ar, m[11], 0x00000000, 11);dr = rotl(dr, 10); + // Extracts only enough buffered data to satisfy the amount requested. + // This function is designed to be inlinable, so please take care when making + // changes to the function body. + function fromListPartial(n, list, hasStrings) { + var ret; + if (n < list.head.data.length) { + // slice is the same for buffers and strings + ret = list.head.data.slice(0, n); + list.head.data = list.head.data.slice(n); + } else if (n === list.head.data.length) { + // first chunk is a perfect match + ret = list.shift(); + } else { + // result spans more than one buffer + ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list); + } + return ret; + } - // change state - var t = this._b + cl + dr | 0; - this._b = this._c + dl + er | 0; - this._c = this._d + el + ar | 0; - this._d = this._e + al + br | 0; - this._e = this._a + bl + cr | 0; - this._a = t; - }; + // Copies a specified amount of characters from the list of buffered data + // chunks. + // This function is designed to be inlinable, so please take care when making + // changes to the function body. + function copyFromBufferString(n, list) { + var p = list.head; + var c = 1; + var ret = p.data; + n -= ret.length; + while (p = p.next) { + var str = p.data; + var nb = n > str.length ? str.length : n; + if (nb === str.length) ret += str;else ret += str.slice(0, n); + n -= nb; + if (n === 0) { + if (nb === str.length) { + ++c; + if (p.next) list.head = p.next;else list.head = list.tail = null; + } else { + list.head = p; + p.data = str.slice(nb); + } + break; + } + ++c; + } + list.length -= c; + return ret; + } - RIPEMD160.prototype._digest = function () { - // create padding and handle blocks - this._block[this._blockOffset++] = 0x80; - if (this._blockOffset > 56) { - this._block.fill(0, this._blockOffset, 64); - this._update(); - this._blockOffset = 0; + // Copies a specified amount of bytes from the list of buffered data chunks. + // This function is designed to be inlinable, so please take care when making + // changes to the function body. + function copyFromBuffer(n, list) { + var ret = Buffer.allocUnsafe(n); + var p = list.head; + var c = 1; + p.data.copy(ret); + n -= p.data.length; + while (p = p.next) { + var buf = p.data; + var nb = n > buf.length ? buf.length : n; + buf.copy(ret, ret.length - n, 0, nb); + n -= nb; + if (n === 0) { + if (nb === buf.length) { + ++c; + if (p.next) list.head = p.next;else list.head = list.tail = null; + } else { + list.head = p; + p.data = buf.slice(nb); + } + break; + } + ++c; } + list.length -= c; + return ret; + } - this._block.fill(0, this._blockOffset, 56); - this._block.writeUInt32LE(this._length[0], 56); - this._block.writeUInt32LE(this._length[1], 60); - this._update(); + function endReadable(stream) { + var state = stream._readableState; - // produce result - var buffer = new Buffer(20); - buffer.writeInt32LE(this._a, 0); - buffer.writeInt32LE(this._b, 4); - buffer.writeInt32LE(this._c, 8); - buffer.writeInt32LE(this._d, 12); - buffer.writeInt32LE(this._e, 16); - return buffer; - }; + // If we get here before consuming all the bytes, then that is a + // bug in node. Should never happen. + if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream'); - function rotl(x, n) { - return x << n | x >>> 32 - n; + if (!state.endEmitted) { + state.ended = true; + processNextTick(endReadableNT, state, stream); + } } - function fn1(a, b, c, d, e, m, k, s) { - return rotl(a + (b ^ c ^ d) + m + k | 0, s) + e | 0; + function endReadableNT(state, stream) { + // Check that we didn't get one last unshift. + if (!state.endEmitted && state.length === 0) { + state.endEmitted = true; + stream.readable = false; + stream.emit('end'); + } } - function fn2(a, b, c, d, e, m, k, s) { - return rotl(a + (b & c | ~b & d) + m + k | 0, s) + e | 0; + function forEach(xs, f) { + for (var i = 0, l = xs.length; i < l; i++) { + f(xs[i], i); + } } - function fn3(a, b, c, d, e, m, k, s) { - return rotl(a + ((b | ~c) ^ d) + m + k | 0, s) + e | 0; + function indexOf(xs, x) { + for (var i = 0, l = xs.length; i < l; i++) { + if (xs[i] === x) return i; + } + return -1; } + }).call(this, require('_process'), typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}); + }, { "./_stream_duplex": 142, "./internal/streams/BufferList": 147, "./internal/streams/destroy": 148, "./internal/streams/stream": 149, "_process": 120, "core-util-is": 50, "events": 84, "inherits": 102, "isarray": 140, "process-nextick-args": 119, "safe-buffer": 130, "string_decoder/": 154, "util": 17 }], 145: [function (require, module, exports) { + // Copyright Joyent, Inc. and other Node contributors. + // + // Permission is hereby granted, free of charge, to any person obtaining a + // copy of this software and associated documentation files (the + // "Software"), to deal in the Software without restriction, including + // without limitation the rights to use, copy, modify, merge, publish, + // distribute, sublicense, and/or sell copies of the Software, and to permit + // persons to whom the Software is furnished to do so, subject to the + // following conditions: + // + // The above copyright notice and this permission notice shall be included + // in all copies or substantial portions of the Software. + // + // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + // USE OR OTHER DEALINGS IN THE SOFTWARE. - function fn4(a, b, c, d, e, m, k, s) { - return rotl(a + (b & d | c & ~d) + m + k | 0, s) + e | 0; - } + // a transform stream is a readable/writable stream where you do + // something with the data. Sometimes it's called a "filter", + // but that's not a great name for it, since that implies a thing where + // some bits pass through, and others are simply ignored. (That would + // be a valid example of a transform, of course.) + // + // While the output is causally related to the input, it's not a + // necessarily symmetric or synchronous transformation. For example, + // a zlib stream might take multiple plain-text writes(), and then + // emit a single compressed chunk some time in the future. + // + // Here's how this works: + // + // The Transform stream has all the aspects of the readable and writable + // stream classes. When you write(chunk), that calls _write(chunk,cb) + // internally, and returns false if there's a lot of pending writes + // buffered up. When you call read(), that calls _read(n) until + // there's enough pending readable data buffered up. + // + // In a transform stream, the written data is placed in a buffer. When + // _read(n) is called, it transforms the queued up data, calling the + // buffered _write cb's as it consumes chunks. If consuming a single + // written chunk would result in multiple output chunks, then the first + // outputted bit calls the readcb, and subsequent chunks just go into + // the read buffer, and will cause it to emit 'readable' if necessary. + // + // This way, back-pressure is actually determined by the reading side, + // since _read has to be called to start processing a new chunk. However, + // a pathological inflate type of transform can cause excessive buffering + // here. For example, imagine a stream where every byte of input is + // interpreted as an integer from 0-255, and then results in that many + // bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in + // 1kb of data being output. In this case, you could write a very small + // amount of input, and end up with a very large amount of output. In + // such a pathological inflating mechanism, there'd be no way to tell + // the system to stop doing the transform. A single 4MB write could + // cause the system to run out of memory. + // + // However, even in such a pathological case, only a single written chunk + // would be consumed, and then the rest would wait (un-transformed) until + // the results of the previous transformed chunk were consumed. - function fn5(a, b, c, d, e, m, k, s) { - return rotl(a + (b ^ (c | ~d)) + m + k | 0, s) + e | 0; - } + 'use strict'; - module.exports = RIPEMD160; - }).call(this, require("buffer").Buffer); - }, { "buffer": 47, "hash-base": 85, "inherits": 101 }], 143: [function (require, module, exports) { - /* eslint-disable node/no-deprecated-api */ - var buffer = require('buffer'); - var Buffer = buffer.Buffer; + module.exports = Transform; - // alternative to using Object.keys for old browsers - function copyProps(src, dst) { - for (var key in src) { - dst[key] = src[key]; - } - } - if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { - module.exports = buffer; - } else { - // Copy properties from require('buffer') - copyProps(buffer, exports); - exports.Buffer = SafeBuffer; - } + var Duplex = require('./_stream_duplex'); - function SafeBuffer(arg, encodingOrOffset, length) { - return Buffer(arg, encodingOrOffset, length); + /**/ + var util = require('core-util-is'); + util.inherits = require('inherits'); + /**/ + + util.inherits(Transform, Duplex); + + function TransformState(stream) { + this.afterTransform = function (er, data) { + return afterTransform(stream, er, data); + }; + + this.needTransform = false; + this.transforming = false; + this.writecb = null; + this.writechunk = null; + this.writeencoding = null; } - // Copy static methods from Buffer - copyProps(Buffer, SafeBuffer); + function afterTransform(stream, er, data) { + var ts = stream._transformState; + ts.transforming = false; - SafeBuffer.from = function (arg, encodingOrOffset, length) { - if (typeof arg === 'number') { - throw new TypeError('Argument must not be a number'); - } - return Buffer(arg, encodingOrOffset, length); - }; + var cb = ts.writecb; - SafeBuffer.alloc = function (size, fill, encoding) { - if (typeof size !== 'number') { - throw new TypeError('Argument must be a number'); - } - var buf = Buffer(size); - if (fill !== undefined) { - if (typeof encoding === 'string') { - buf.fill(fill, encoding); - } else { - buf.fill(fill); - } - } else { - buf.fill(0); + if (!cb) { + return stream.emit('error', new Error('write callback called multiple times')); } - return buf; - }; - SafeBuffer.allocUnsafe = function (size) { - if (typeof size !== 'number') { - throw new TypeError('Argument must be a number'); - } - return Buffer(size); - }; + ts.writechunk = null; + ts.writecb = null; - SafeBuffer.allocUnsafeSlow = function (size) { - if (typeof size !== 'number') { - throw new TypeError('Argument must be a number'); - } - return buffer.SlowBuffer(size); - }; - }, { "buffer": 47 }], 144: [function (require, module, exports) { - var Buffer = require('safe-buffer').Buffer; + if (data !== null && data !== undefined) stream.push(data); - // prototype class for hash functions - function Hash(blockSize, finalSize) { - this._block = Buffer.alloc(blockSize); - this._finalSize = finalSize; - this._blockSize = blockSize; - this._len = 0; - } + cb(er); - Hash.prototype.update = function (data, enc) { - if (typeof data === 'string') { - enc = enc || 'utf8'; - data = Buffer.from(data, enc); + var rs = stream._readableState; + rs.reading = false; + if (rs.needReadable || rs.length < rs.highWaterMark) { + stream._read(rs.highWaterMark); } + } - var block = this._block; - var blockSize = this._blockSize; - var length = data.length; - var accum = this._len; - - for (var offset = 0; offset < length;) { - var assigned = accum % blockSize; - var remainder = Math.min(length - offset, blockSize - assigned); - - for (var i = 0; i < remainder; i++) { - block[assigned + i] = data[offset + i]; - } + function Transform(options) { + if (!(this instanceof Transform)) return new Transform(options); - accum += remainder; - offset += remainder; + Duplex.call(this, options); - if (accum % blockSize === 0) { - this._update(block); - } - } + this._transformState = new TransformState(this); - this._len += length; - return this; - }; + var stream = this; - Hash.prototype.digest = function (enc) { - var rem = this._len % this._blockSize; + // start out asking for a readable event once data is transformed. + this._readableState.needReadable = true; - this._block[rem] = 0x80; + // we have implemented the _read method, and done the other things + // that Readable wants before the first _read call, so unset the + // sync guard flag. + this._readableState.sync = false; - // zero (rem + 1) trailing bits, where (rem + 1) is the smallest - // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize - this._block.fill(0, rem + 1); + if (options) { + if (typeof options.transform === 'function') this._transform = options.transform; - if (rem >= this._finalSize) { - this._update(this._block); - this._block.fill(0); + if (typeof options.flush === 'function') this._flush = options.flush; } - var bits = this._len * 8; + // When the writable side finishes, then flush out anything remaining. + this.once('prefinish', function () { + if (typeof this._flush === 'function') this._flush(function (er, data) { + done(stream, er, data); + });else done(stream); + }); + } - // uint32 - if (bits <= 0xffffffff) { - this._block.writeUInt32BE(bits, this._blockSize - 4); + Transform.prototype.push = function (chunk, encoding) { + this._transformState.needTransform = false; + return Duplex.prototype.push.call(this, chunk, encoding); + }; - // uint64 - } else { - var lowBits = bits & 0xffffffff; - var highBits = (bits - lowBits) / 0x100000000; + // This is the part where you do stuff! + // override this function in implementation classes. + // 'chunk' is an input chunk. + // + // Call `push(newChunk)` to pass along transformed output + // to the readable side. You may call 'push' zero or more times. + // + // Call `cb(err)` when you are done with this chunk. If you pass + // an error, then that'll put the hurt on the whole operation. If you + // never call cb(), then you'll never get another chunk. + Transform.prototype._transform = function (chunk, encoding, cb) { + throw new Error('_transform() is not implemented'); + }; - this._block.writeUInt32BE(highBits, this._blockSize - 8); - this._block.writeUInt32BE(lowBits, this._blockSize - 4); + Transform.prototype._write = function (chunk, encoding, cb) { + var ts = this._transformState; + ts.writecb = cb; + ts.writechunk = chunk; + ts.writeencoding = encoding; + if (!ts.transforming) { + var rs = this._readableState; + if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); } - - this._update(this._block); - var hash = this._hash(); - - return enc ? hash.toString(enc) : hash; }; - Hash.prototype._update = function () { - throw new Error('_update must be implemented by subclass'); - }; + // Doesn't matter what the args are here. + // _transform does all the work. + // That we got here means that the readable side wants more data. + Transform.prototype._read = function (n) { + var ts = this._transformState; - module.exports = Hash; - }, { "safe-buffer": 143 }], 145: [function (require, module, exports) { - var exports = module.exports = function SHA(algorithm) { - algorithm = algorithm.toLowerCase(); + if (ts.writechunk !== null && ts.writecb && !ts.transforming) { + ts.transforming = true; + this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); + } else { + // mark that we need a transform, so that any data that comes in + // will get processed, now that we've asked for it. + ts.needTransform = true; + } + }; - var Algorithm = exports[algorithm]; - if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)'); + Transform.prototype._destroy = function (err, cb) { + var _this = this; - return new Algorithm(); + Duplex.prototype._destroy.call(this, err, function (err2) { + cb(err2); + _this.emit('close'); + }); }; - exports.sha = require('./sha'); - exports.sha1 = require('./sha1'); - exports.sha224 = require('./sha224'); - exports.sha256 = require('./sha256'); - exports.sha384 = require('./sha384'); - exports.sha512 = require('./sha512'); - }, { "./sha": 146, "./sha1": 147, "./sha224": 148, "./sha256": 149, "./sha384": 150, "./sha512": 151 }], 146: [function (require, module, exports) { - /* - * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined - * in FIPS PUB 180-1 - * This source code is derived from sha1.js of the same repository. - * The difference between SHA-0 and SHA-1 is just a bitwise rotate left - * operation was added. - */ + function done(stream, er, data) { + if (er) return stream.emit('error', er); - var inherits = require('inherits'); - var Hash = require('./hash'); - var Buffer = require('safe-buffer').Buffer; + if (data !== null && data !== undefined) stream.push(data); - var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0]; + // if there's nothing in the write buffer, then that means + // that nothing more will ever be provided + var ws = stream._writableState; + var ts = stream._transformState; - var W = new Array(80); + if (ws.length) throw new Error('Calling transform done when ws.length != 0'); - function Sha() { - this.init(); - this._w = W; + if (ts.transforming) throw new Error('Calling transform done when still transforming'); - Hash.call(this, 64, 56); + return stream.push(null); } + }, { "./_stream_duplex": 142, "core-util-is": 50, "inherits": 102 }], 146: [function (require, module, exports) { + (function (process, global) { + // Copyright Joyent, Inc. and other Node contributors. + // + // Permission is hereby granted, free of charge, to any person obtaining a + // copy of this software and associated documentation files (the + // "Software"), to deal in the Software without restriction, including + // without limitation the rights to use, copy, modify, merge, publish, + // distribute, sublicense, and/or sell copies of the Software, and to permit + // persons to whom the Software is furnished to do so, subject to the + // following conditions: + // + // The above copyright notice and this permission notice shall be included + // in all copies or substantial portions of the Software. + // + // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + // USE OR OTHER DEALINGS IN THE SOFTWARE. - inherits(Sha, Hash); - - Sha.prototype.init = function () { - this._a = 0x67452301; - this._b = 0xefcdab89; - this._c = 0x98badcfe; - this._d = 0x10325476; - this._e = 0xc3d2e1f0; - - return this; - }; + // A bit simpler than readable streams. + // Implement an async ._write(chunk, encoding, cb), and it'll handle all + // the drain event emission and buffering. - function rotl5(num) { - return num << 5 | num >>> 27; - } + 'use strict'; - function rotl30(num) { - return num << 30 | num >>> 2; - } + /**/ - function ft(s, b, c, d) { - if (s === 0) return b & c | ~b & d; - if (s === 2) return b & c | b & d | c & d; - return b ^ c ^ d; - } + var processNextTick = require('process-nextick-args'); + /**/ - Sha.prototype._update = function (M) { - var W = this._w; + module.exports = Writable; - var a = this._a | 0; - var b = this._b | 0; - var c = this._c | 0; - var d = this._d | 0; - var e = this._e | 0; + /* */ + function WriteReq(chunk, encoding, cb) { + this.chunk = chunk; + this.encoding = encoding; + this.callback = cb; + this.next = null; + } - for (var i = 0; i < 16; ++i) { - W[i] = M.readInt32BE(i * 4); - }for (; i < 80; ++i) { - W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]; - }for (var j = 0; j < 80; ++j) { - var s = ~~(j / 20); - var t = rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s] | 0; + // It seems a linked list but it is not + // there will be only 2 of these for each stream + function CorkedRequest(state) { + var _this = this; - e = d; - d = c; - c = rotl30(b); - b = a; - a = t; + this.next = null; + this.entry = null; + this.finish = function () { + onCorkedFinish(_this, state); + }; } + /* */ - this._a = a + this._a | 0; - this._b = b + this._b | 0; - this._c = c + this._c | 0; - this._d = d + this._d | 0; - this._e = e + this._e | 0; - }; - - Sha.prototype._hash = function () { - var H = Buffer.allocUnsafe(20); + /**/ + var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick; + /**/ - H.writeInt32BE(this._a | 0, 0); - H.writeInt32BE(this._b | 0, 4); - H.writeInt32BE(this._c | 0, 8); - H.writeInt32BE(this._d | 0, 12); - H.writeInt32BE(this._e | 0, 16); + /**/ + var Duplex; + /**/ - return H; - }; + Writable.WritableState = WritableState; - module.exports = Sha; - }, { "./hash": 144, "inherits": 101, "safe-buffer": 143 }], 147: [function (require, module, exports) { - /* - * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined - * in FIPS PUB 180-1 - * Version 2.1a Copyright Paul Johnston 2000 - 2002. - * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet - * Distributed under the BSD License - * See http://pajhome.org.uk/crypt/md5 for details. - */ + /**/ + var util = require('core-util-is'); + util.inherits = require('inherits'); + /**/ - var inherits = require('inherits'); - var Hash = require('./hash'); - var Buffer = require('safe-buffer').Buffer; + /**/ + var internalUtil = { + deprecate: require('util-deprecate') + }; + /**/ - var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0]; + /**/ + var Stream = require('./internal/streams/stream'); + /**/ - var W = new Array(80); + /**/ + var Buffer = require('safe-buffer').Buffer; + var OurUint8Array = global.Uint8Array || function () {}; + function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk); + } + function _isUint8Array(obj) { + return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; + } + /**/ - function Sha1() { - this.init(); - this._w = W; + var destroyImpl = require('./internal/streams/destroy'); - Hash.call(this, 64, 56); - } + util.inherits(Writable, Stream); - inherits(Sha1, Hash); + function nop() {} - Sha1.prototype.init = function () { - this._a = 0x67452301; - this._b = 0xefcdab89; - this._c = 0x98badcfe; - this._d = 0x10325476; - this._e = 0xc3d2e1f0; + function WritableState(options, stream) { + Duplex = Duplex || require('./_stream_duplex'); - return this; - }; + options = options || {}; - function rotl1(num) { - return num << 1 | num >>> 31; - } + // object stream flag to indicate whether or not this stream + // contains buffers or objects. + this.objectMode = !!options.objectMode; - function rotl5(num) { - return num << 5 | num >>> 27; - } + if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode; - function rotl30(num) { - return num << 30 | num >>> 2; - } + // the point at which write() starts returning false + // Note: 0 is a valid value, means that we always return false if + // the entire buffer is not flushed immediately on write() + var hwm = options.highWaterMark; + var defaultHwm = this.objectMode ? 16 : 16 * 1024; + this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; - function ft(s, b, c, d) { - if (s === 0) return b & c | ~b & d; - if (s === 2) return b & c | b & d | c & d; - return b ^ c ^ d; - } + // cast to ints. + this.highWaterMark = Math.floor(this.highWaterMark); - Sha1.prototype._update = function (M) { - var W = this._w; + // if _final has been called + this.finalCalled = false; - var a = this._a | 0; - var b = this._b | 0; - var c = this._c | 0; - var d = this._d | 0; - var e = this._e | 0; + // drain event flag. + this.needDrain = false; + // at the start of calling end() + this.ending = false; + // when end() has been called, and returned + this.ended = false; + // when 'finish' is emitted + this.finished = false; - for (var i = 0; i < 16; ++i) { - W[i] = M.readInt32BE(i * 4); - }for (; i < 80; ++i) { - W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]); - }for (var j = 0; j < 80; ++j) { - var s = ~~(j / 20); - var t = rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s] | 0; + // has it been destroyed + this.destroyed = false; - e = d; - d = c; - c = rotl30(b); - b = a; - a = t; - } + // should we decode strings into buffers before passing to _write? + // this is here so that some node-core streams can optimize string + // handling at a lower level. + var noDecode = options.decodeStrings === false; + this.decodeStrings = !noDecode; - this._a = a + this._a | 0; - this._b = b + this._b | 0; - this._c = c + this._c | 0; - this._d = d + this._d | 0; - this._e = e + this._e | 0; - }; + // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; - Sha1.prototype._hash = function () { - var H = Buffer.allocUnsafe(20); + // not an actual buffer we keep track of, but a measurement + // of how much we're waiting to get pushed to some underlying + // socket or file. + this.length = 0; - H.writeInt32BE(this._a | 0, 0); - H.writeInt32BE(this._b | 0, 4); - H.writeInt32BE(this._c | 0, 8); - H.writeInt32BE(this._d | 0, 12); - H.writeInt32BE(this._e | 0, 16); + // a flag to see when we're in the middle of a write. + this.writing = false; - return H; - }; + // when true all writes will be buffered until .uncork() call + this.corked = 0; - module.exports = Sha1; - }, { "./hash": 144, "inherits": 101, "safe-buffer": 143 }], 148: [function (require, module, exports) { - /** - * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined - * in FIPS 180-2 - * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009. - * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet - * - */ + // a flag to be able to tell if the onwrite cb is called immediately, + // or on a later tick. We set this to true at first, because any + // actions that shouldn't happen until "later" should generally also + // not happen before the first write call. + this.sync = true; - var inherits = require('inherits'); - var Sha256 = require('./sha256'); - var Hash = require('./hash'); - var Buffer = require('safe-buffer').Buffer; + // a flag to know if we're processing previously buffered items, which + // may call the _write() callback in the same tick, so that we don't + // end up in an overlapped onwrite situation. + this.bufferProcessing = false; - var W = new Array(64); + // the callback that's passed to _write(chunk,cb) + this.onwrite = function (er) { + onwrite(stream, er); + }; - function Sha224() { - this.init(); + // the callback that the user supplies to write(chunk,encoding,cb) + this.writecb = null; - this._w = W; // new Array(64) + // the amount that is being written when _write is called. + this.writelen = 0; - Hash.call(this, 64, 56); - } + this.bufferedRequest = null; + this.lastBufferedRequest = null; - inherits(Sha224, Sha256); + // number of pending user-supplied write callbacks + // this must be 0 before 'finish' can be emitted + this.pendingcb = 0; - Sha224.prototype.init = function () { - this._a = 0xc1059ed8; - this._b = 0x367cd507; - this._c = 0x3070dd17; - this._d = 0xf70e5939; - this._e = 0xffc00b31; - this._f = 0x68581511; - this._g = 0x64f98fa7; - this._h = 0xbefa4fa4; + // emit prefinish if the only thing we're waiting for is _write cbs + // This is relevant for synchronous Transform streams + this.prefinished = false; - return this; - }; + // True if the error was already emitted and should not be thrown again + this.errorEmitted = false; - Sha224.prototype._hash = function () { - var H = Buffer.allocUnsafe(28); + // count buffered requests + this.bufferedRequestCount = 0; - H.writeInt32BE(this._a, 0); - H.writeInt32BE(this._b, 4); - H.writeInt32BE(this._c, 8); - H.writeInt32BE(this._d, 12); - H.writeInt32BE(this._e, 16); - H.writeInt32BE(this._f, 20); - H.writeInt32BE(this._g, 24); + // allocate the first CorkedRequest, there is always + // one allocated and free to use, and we maintain at most two + this.corkedRequestsFree = new CorkedRequest(this); + } - return H; - }; + WritableState.prototype.getBuffer = function getBuffer() { + var current = this.bufferedRequest; + var out = []; + while (current) { + out.push(current); + current = current.next; + } + return out; + }; - module.exports = Sha224; - }, { "./hash": 144, "./sha256": 149, "inherits": 101, "safe-buffer": 143 }], 149: [function (require, module, exports) { - /** - * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined - * in FIPS 180-2 - * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009. - * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet - * - */ - - var inherits = require('inherits'); - var Hash = require('./hash'); - var Buffer = require('safe-buffer').Buffer; - - var K = [0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5, 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5, 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3, 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174, 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC, 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA, 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7, 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967, 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13, 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85, 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3, 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070, 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5, 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3, 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208, 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2]; - - var W = new Array(64); + (function () { + try { + Object.defineProperty(WritableState.prototype, 'buffer', { + get: internalUtil.deprecate(function () { + return this.getBuffer(); + }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') + }); + } catch (_) {} + })(); - function Sha256() { - this.init(); + // Test _writableState for inheritance to account for Duplex streams, + // whose prototype chain only points to Readable. + var realHasInstance; + if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { + realHasInstance = Function.prototype[Symbol.hasInstance]; + Object.defineProperty(Writable, Symbol.hasInstance, { + value: function value(object) { + if (realHasInstance.call(this, object)) return true; - this._w = W; // new Array(64) + return object && object._writableState instanceof WritableState; + } + }); + } else { + realHasInstance = function realHasInstance(object) { + return object instanceof this; + }; + } - Hash.call(this, 64, 56); - } + function Writable(options) { + Duplex = Duplex || require('./_stream_duplex'); - inherits(Sha256, Hash); + // Writable ctor is applied to Duplexes, too. + // `realHasInstance` is necessary because using plain `instanceof` + // would return false, as no `_writableState` property is attached. - Sha256.prototype.init = function () { - this._a = 0x6a09e667; - this._b = 0xbb67ae85; - this._c = 0x3c6ef372; - this._d = 0xa54ff53a; - this._e = 0x510e527f; - this._f = 0x9b05688c; - this._g = 0x1f83d9ab; - this._h = 0x5be0cd19; + // Trying to use the custom `instanceof` for Writable here will also break the + // Node.js LazyTransform implementation, which has a non-trivial getter for + // `_writableState` that would lead to infinite recursion. + if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) { + return new Writable(options); + } - return this; - }; + this._writableState = new WritableState(options, this); - function ch(x, y, z) { - return z ^ x & (y ^ z); - } + // legacy. + this.writable = true; - function maj(x, y, z) { - return x & y | z & (x | y); - } + if (options) { + if (typeof options.write === 'function') this._write = options.write; - function sigma0(x) { - return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10); - } + if (typeof options.writev === 'function') this._writev = options.writev; - function sigma1(x) { - return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7); - } + if (typeof options.destroy === 'function') this._destroy = options.destroy; - function gamma0(x) { - return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ x >>> 3; - } + if (typeof options.final === 'function') this._final = options.final; + } - function gamma1(x) { - return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ x >>> 10; - } + Stream.call(this); + } - Sha256.prototype._update = function (M) { - var W = this._w; + // Otherwise people can pipe Writable streams, which is just wrong. + Writable.prototype.pipe = function () { + this.emit('error', new Error('Cannot pipe, not readable')); + }; - var a = this._a | 0; - var b = this._b | 0; - var c = this._c | 0; - var d = this._d | 0; - var e = this._e | 0; - var f = this._f | 0; - var g = this._g | 0; - var h = this._h | 0; + function writeAfterEnd(stream, cb) { + var er = new Error('write after end'); + // TODO: defer error events consistently everywhere, not just the cb + stream.emit('error', er); + processNextTick(cb, er); + } - for (var i = 0; i < 16; ++i) { - W[i] = M.readInt32BE(i * 4); - }for (; i < 64; ++i) { - W[i] = gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16] | 0; - }for (var j = 0; j < 64; ++j) { - var T1 = h + sigma1(e) + ch(e, f, g) + K[j] + W[j] | 0; - var T2 = sigma0(a) + maj(a, b, c) | 0; + // Checks that a user-supplied chunk is valid, especially for the particular + // mode the stream is in. Currently this means that `null` is never accepted + // and undefined/non-string values are only allowed in object mode. + function validChunk(stream, state, chunk, cb) { + var valid = true; + var er = false; - h = g; - g = f; - f = e; - e = d + T1 | 0; - d = c; - c = b; - b = a; - a = T1 + T2 | 0; + if (chunk === null) { + er = new TypeError('May not write null values to stream'); + } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { + er = new TypeError('Invalid non-string/buffer chunk'); + } + if (er) { + stream.emit('error', er); + processNextTick(cb, er); + valid = false; + } + return valid; } - this._a = a + this._a | 0; - this._b = b + this._b | 0; - this._c = c + this._c | 0; - this._d = d + this._d | 0; - this._e = e + this._e | 0; - this._f = f + this._f | 0; - this._g = g + this._g | 0; - this._h = h + this._h | 0; - }; + Writable.prototype.write = function (chunk, encoding, cb) { + var state = this._writableState; + var ret = false; + var isBuf = _isUint8Array(chunk) && !state.objectMode; - Sha256.prototype._hash = function () { - var H = Buffer.allocUnsafe(32); + if (isBuf && !Buffer.isBuffer(chunk)) { + chunk = _uint8ArrayToBuffer(chunk); + } - H.writeInt32BE(this._a, 0); - H.writeInt32BE(this._b, 4); - H.writeInt32BE(this._c, 8); - H.writeInt32BE(this._d, 12); - H.writeInt32BE(this._e, 16); - H.writeInt32BE(this._f, 20); - H.writeInt32BE(this._g, 24); - H.writeInt32BE(this._h, 28); + if (typeof encoding === 'function') { + cb = encoding; + encoding = null; + } - return H; - }; + if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; - module.exports = Sha256; - }, { "./hash": 144, "inherits": 101, "safe-buffer": 143 }], 150: [function (require, module, exports) { - var inherits = require('inherits'); - var SHA512 = require('./sha512'); - var Hash = require('./hash'); - var Buffer = require('safe-buffer').Buffer; + if (typeof cb !== 'function') cb = nop; - var W = new Array(160); + if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { + state.pendingcb++; + ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); + } - function Sha384() { - this.init(); - this._w = W; + return ret; + }; - Hash.call(this, 128, 112); - } + Writable.prototype.cork = function () { + var state = this._writableState; - inherits(Sha384, SHA512); + state.corked++; + }; - Sha384.prototype.init = function () { - this._ah = 0xcbbb9d5d; - this._bh = 0x629a292a; - this._ch = 0x9159015a; - this._dh = 0x152fecd8; - this._eh = 0x67332667; - this._fh = 0x8eb44a87; - this._gh = 0xdb0c2e0d; - this._hh = 0x47b5481d; + Writable.prototype.uncork = function () { + var state = this._writableState; - this._al = 0xc1059ed8; - this._bl = 0x367cd507; - this._cl = 0x3070dd17; - this._dl = 0xf70e5939; - this._el = 0xffc00b31; - this._fl = 0x68581511; - this._gl = 0x64f98fa7; - this._hl = 0xbefa4fa4; + if (state.corked) { + state.corked--; - return this; - }; + if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); + } + }; - Sha384.prototype._hash = function () { - var H = Buffer.allocUnsafe(48); + Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { + // node::ParseEncoding() requires lower case. + if (typeof encoding === 'string') encoding = encoding.toLowerCase(); + 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); + this._writableState.defaultEncoding = encoding; + return this; + }; - function writeInt64BE(h, l, offset) { - H.writeInt32BE(h, offset); - H.writeInt32BE(l, offset + 4); + function decodeChunk(state, chunk, encoding) { + if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { + chunk = Buffer.from(chunk, encoding); + } + return chunk; } - writeInt64BE(this._ah, this._al, 0); - writeInt64BE(this._bh, this._bl, 8); - writeInt64BE(this._ch, this._cl, 16); - writeInt64BE(this._dh, this._dl, 24); - writeInt64BE(this._eh, this._el, 32); - writeInt64BE(this._fh, this._fl, 40); + // if we're already writing something, then just put this + // in the queue, and wait our turn. Otherwise, call _write + // If we return false, then we need a drain event, so set that flag. + function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { + if (!isBuf) { + var newChunk = decodeChunk(state, chunk, encoding); + if (chunk !== newChunk) { + isBuf = true; + encoding = 'buffer'; + chunk = newChunk; + } + } + var len = state.objectMode ? 1 : chunk.length; - return H; - }; + state.length += len; - module.exports = Sha384; - }, { "./hash": 144, "./sha512": 151, "inherits": 101, "safe-buffer": 143 }], 151: [function (require, module, exports) { - var inherits = require('inherits'); - var Hash = require('./hash'); - var Buffer = require('safe-buffer').Buffer; + var ret = state.length < state.highWaterMark; + // we must ensure that previous needDrain will not be reset to false. + if (!ret) state.needDrain = true; - var K = [0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd, 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc, 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019, 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118, 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe, 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2, 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1, 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694, 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3, 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65, 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483, 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5, 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210, 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4, 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725, 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70, 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926, 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df, 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8, 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b, 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001, 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30, 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910, 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8, 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53, 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8, 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb, 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3, 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60, 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec, 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9, 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b, 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207, 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178, 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6, 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b, 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493, 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c, 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a, 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817]; + if (state.writing || state.corked) { + var last = state.lastBufferedRequest; + state.lastBufferedRequest = { + chunk: chunk, + encoding: encoding, + isBuf: isBuf, + callback: cb, + next: null + }; + if (last) { + last.next = state.lastBufferedRequest; + } else { + state.bufferedRequest = state.lastBufferedRequest; + } + state.bufferedRequestCount += 1; + } else { + doWrite(stream, state, false, len, chunk, encoding, cb); + } - var W = new Array(160); + return ret; + } - function Sha512() { - this.init(); - this._w = W; + function doWrite(stream, state, writev, len, chunk, encoding, cb) { + state.writelen = len; + state.writecb = cb; + state.writing = true; + state.sync = true; + if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); + state.sync = false; + } - Hash.call(this, 128, 112); - } + function onwriteError(stream, state, sync, er, cb) { + --state.pendingcb; - inherits(Sha512, Hash); + if (sync) { + // defer the callback if we are being called synchronously + // to avoid piling up things on the stack + processNextTick(cb, er); + // this can emit finish, and it will always happen + // after error + processNextTick(finishMaybe, stream, state); + stream._writableState.errorEmitted = true; + stream.emit('error', er); + } else { + // the caller expect this to happen before if + // it is async + cb(er); + stream._writableState.errorEmitted = true; + stream.emit('error', er); + // this can emit finish, but finish must + // always follow error + finishMaybe(stream, state); + } + } - Sha512.prototype.init = function () { - this._ah = 0x6a09e667; - this._bh = 0xbb67ae85; - this._ch = 0x3c6ef372; - this._dh = 0xa54ff53a; - this._eh = 0x510e527f; - this._fh = 0x9b05688c; - this._gh = 0x1f83d9ab; - this._hh = 0x5be0cd19; + function onwriteStateUpdate(state) { + state.writing = false; + state.writecb = null; + state.length -= state.writelen; + state.writelen = 0; + } - this._al = 0xf3bcc908; - this._bl = 0x84caa73b; - this._cl = 0xfe94f82b; - this._dl = 0x5f1d36f1; - this._el = 0xade682d1; - this._fl = 0x2b3e6c1f; - this._gl = 0xfb41bd6b; - this._hl = 0x137e2179; + function onwrite(stream, er) { + var state = stream._writableState; + var sync = state.sync; + var cb = state.writecb; - return this; - }; + onwriteStateUpdate(state); - function Ch(x, y, z) { - return z ^ x & (y ^ z); - } + if (er) onwriteError(stream, state, sync, er, cb);else { + // Check if we're actually ready to finish, but don't emit yet + var finished = needFinish(state); - function maj(x, y, z) { - return x & y | z & (x | y); - } + if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { + clearBuffer(stream, state); + } - function sigma0(x, xl) { - return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25); - } + if (sync) { + /**/ + asyncWrite(afterWrite, stream, state, finished, cb); + /**/ + } else { + afterWrite(stream, state, finished, cb); + } + } + } - function sigma1(x, xl) { - return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23); - } + function afterWrite(stream, state, finished, cb) { + if (!finished) onwriteDrain(stream, state); + state.pendingcb--; + cb(); + finishMaybe(stream, state); + } - function Gamma0(x, xl) { - return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ x >>> 7; - } + // Must force callback to be called on nextTick, so that we don't + // emit 'drain' before the write() consumer gets the 'false' return + // value, and has a chance to attach a 'drain' listener. + function onwriteDrain(stream, state) { + if (state.length === 0 && state.needDrain) { + state.needDrain = false; + stream.emit('drain'); + } + } - function Gamma0l(x, xl) { - return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25); - } + // if there's something in the buffer waiting, then process it + function clearBuffer(stream, state) { + state.bufferProcessing = true; + var entry = state.bufferedRequest; - function Gamma1(x, xl) { - return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ x >>> 6; - } + if (stream._writev && entry && entry.next) { + // Fast case, write everything using _writev() + var l = state.bufferedRequestCount; + var buffer = new Array(l); + var holder = state.corkedRequestsFree; + holder.entry = entry; - function Gamma1l(x, xl) { - return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26); - } + var count = 0; + var allBuffers = true; + while (entry) { + buffer[count] = entry; + if (!entry.isBuf) allBuffers = false; + entry = entry.next; + count += 1; + } + buffer.allBuffers = allBuffers; - function getCarry(a, b) { - return a >>> 0 < b >>> 0 ? 1 : 0; - } + doWrite(stream, state, true, state.length, buffer, '', holder.finish); - Sha512.prototype._update = function (M) { - var W = this._w; + // doWrite is almost always async, defer these to save a bit of time + // as the hot path ends with doWrite + state.pendingcb++; + state.lastBufferedRequest = null; + if (holder.next) { + state.corkedRequestsFree = holder.next; + holder.next = null; + } else { + state.corkedRequestsFree = new CorkedRequest(state); + } + } else { + // Slow case, write chunks one-by-one + while (entry) { + var chunk = entry.chunk; + var encoding = entry.encoding; + var cb = entry.callback; + var len = state.objectMode ? 1 : chunk.length; - var ah = this._ah | 0; - var bh = this._bh | 0; - var ch = this._ch | 0; - var dh = this._dh | 0; - var eh = this._eh | 0; - var fh = this._fh | 0; - var gh = this._gh | 0; - var hh = this._hh | 0; + doWrite(stream, state, false, len, chunk, encoding, cb); + entry = entry.next; + // if we didn't call the onwrite immediately, then + // it means that we need to wait until it does. + // also, that means that the chunk and cb are currently + // being processed, so move the buffer counter past them. + if (state.writing) { + break; + } + } - var al = this._al | 0; - var bl = this._bl | 0; - var cl = this._cl | 0; - var dl = this._dl | 0; - var el = this._el | 0; - var fl = this._fl | 0; - var gl = this._gl | 0; - var hl = this._hl | 0; + if (entry === null) state.lastBufferedRequest = null; + } - for (var i = 0; i < 32; i += 2) { - W[i] = M.readInt32BE(i * 4); - W[i + 1] = M.readInt32BE(i * 4 + 4); + state.bufferedRequestCount = 0; + state.bufferedRequest = entry; + state.bufferProcessing = false; } - for (; i < 160; i += 2) { - var xh = W[i - 15 * 2]; - var xl = W[i - 15 * 2 + 1]; - var gamma0 = Gamma0(xh, xl); - var gamma0l = Gamma0l(xl, xh); - xh = W[i - 2 * 2]; - xl = W[i - 2 * 2 + 1]; - var gamma1 = Gamma1(xh, xl); - var gamma1l = Gamma1l(xl, xh); + Writable.prototype._write = function (chunk, encoding, cb) { + cb(new Error('_write() is not implemented')); + }; - // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16] - var Wi7h = W[i - 7 * 2]; - var Wi7l = W[i - 7 * 2 + 1]; + Writable.prototype._writev = null; - var Wi16h = W[i - 16 * 2]; - var Wi16l = W[i - 16 * 2 + 1]; + Writable.prototype.end = function (chunk, encoding, cb) { + var state = this._writableState; - var Wil = gamma0l + Wi7l | 0; - var Wih = gamma0 + Wi7h + getCarry(Wil, gamma0l) | 0; - Wil = Wil + gamma1l | 0; - Wih = Wih + gamma1 + getCarry(Wil, gamma1l) | 0; - Wil = Wil + Wi16l | 0; - Wih = Wih + Wi16h + getCarry(Wil, Wi16l) | 0; + if (typeof chunk === 'function') { + cb = chunk; + chunk = null; + encoding = null; + } else if (typeof encoding === 'function') { + cb = encoding; + encoding = null; + } - W[i] = Wih; - W[i + 1] = Wil; + if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); + + // .end() fully uncorks + if (state.corked) { + state.corked = 1; + this.uncork(); + } + + // ignore unnecessary end() calls. + if (!state.ending && !state.finished) endWritable(this, state, cb); + }; + + function needFinish(state) { + return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; + } + function callFinal(stream, state) { + stream._final(function (err) { + state.pendingcb--; + if (err) { + stream.emit('error', err); + } + state.prefinished = true; + stream.emit('prefinish'); + finishMaybe(stream, state); + }); + } + function prefinish(stream, state) { + if (!state.prefinished && !state.finalCalled) { + if (typeof stream._final === 'function') { + state.pendingcb++; + state.finalCalled = true; + processNextTick(callFinal, stream, state); + } else { + state.prefinished = true; + stream.emit('prefinish'); + } + } } - for (var j = 0; j < 160; j += 2) { - Wih = W[j]; - Wil = W[j + 1]; + function finishMaybe(stream, state) { + var need = needFinish(state); + if (need) { + prefinish(stream, state); + if (state.pendingcb === 0) { + state.finished = true; + stream.emit('finish'); + } + } + return need; + } - var majh = maj(ah, bh, ch); - var majl = maj(al, bl, cl); + function endWritable(stream, state, cb) { + state.ending = true; + finishMaybe(stream, state); + if (cb) { + if (state.finished) processNextTick(cb);else stream.once('finish', cb); + } + state.ended = true; + stream.writable = false; + } - var sigma0h = sigma0(ah, al); - var sigma0l = sigma0(al, ah); - var sigma1h = sigma1(eh, el); - var sigma1l = sigma1(el, eh); + function onCorkedFinish(corkReq, state, err) { + var entry = corkReq.entry; + corkReq.entry = null; + while (entry) { + var cb = entry.callback; + state.pendingcb--; + cb(err); + entry = entry.next; + } + if (state.corkedRequestsFree) { + state.corkedRequestsFree.next = corkReq; + } else { + state.corkedRequestsFree = corkReq; + } + } - // t1 = h + sigma1 + ch + K[j] + W[j] - var Kih = K[j]; - var Kil = K[j + 1]; + Object.defineProperty(Writable.prototype, 'destroyed', { + get: function get() { + if (this._writableState === undefined) { + return false; + } + return this._writableState.destroyed; + }, + set: function set(value) { + // we ignore the value if the stream + // has not been initialized yet + if (!this._writableState) { + return; + } - var chh = Ch(eh, fh, gh); - var chl = Ch(el, fl, gl); + // backward compatibility, the user is explicitly + // managing destroyed + this._writableState.destroyed = value; + } + }); - var t1l = hl + sigma1l | 0; - var t1h = hh + sigma1h + getCarry(t1l, hl) | 0; - t1l = t1l + chl | 0; - t1h = t1h + chh + getCarry(t1l, chl) | 0; - t1l = t1l + Kil | 0; - t1h = t1h + Kih + getCarry(t1l, Kil) | 0; - t1l = t1l + Wil | 0; - t1h = t1h + Wih + getCarry(t1l, Wil) | 0; + Writable.prototype.destroy = destroyImpl.destroy; + Writable.prototype._undestroy = destroyImpl.undestroy; + Writable.prototype._destroy = function (err, cb) { + this.end(); + cb(err); + }; + }).call(this, require('_process'), typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}); + }, { "./_stream_duplex": 142, "./internal/streams/destroy": 148, "./internal/streams/stream": 149, "_process": 120, "core-util-is": 50, "inherits": 102, "process-nextick-args": 119, "safe-buffer": 130, "util-deprecate": 155 }], 147: [function (require, module, exports) { + 'use strict'; - // t2 = sigma0 + maj - var t2l = sigma0l + majl | 0; - var t2h = sigma0h + majh + getCarry(t2l, sigma0l) | 0; + /**/ - hh = gh; - hl = gl; - gh = fh; - gl = fl; - fh = eh; - fl = el; - el = dl + t1l | 0; - eh = dh + t1h + getCarry(el, dl) | 0; - dh = ch; - dl = cl; - ch = bh; - cl = bl; - bh = ah; - bl = al; - al = t1l + t2l | 0; - ah = t1h + t2h + getCarry(al, t1l) | 0; + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); } + } - this._al = this._al + al | 0; - this._bl = this._bl + bl | 0; - this._cl = this._cl + cl | 0; - this._dl = this._dl + dl | 0; - this._el = this._el + el | 0; - this._fl = this._fl + fl | 0; - this._gl = this._gl + gl | 0; - this._hl = this._hl + hl | 0; + var Buffer = require('safe-buffer').Buffer; + /**/ - this._ah = this._ah + ah + getCarry(this._al, al) | 0; - this._bh = this._bh + bh + getCarry(this._bl, bl) | 0; - this._ch = this._ch + ch + getCarry(this._cl, cl) | 0; - this._dh = this._dh + dh + getCarry(this._dl, dl) | 0; - this._eh = this._eh + eh + getCarry(this._el, el) | 0; - this._fh = this._fh + fh + getCarry(this._fl, fl) | 0; - this._gh = this._gh + gh + getCarry(this._gl, gl) | 0; - this._hh = this._hh + hh + getCarry(this._hl, hl) | 0; - }; + function copyBuffer(src, target, offset) { + src.copy(target, offset); + } - Sha512.prototype._hash = function () { - var H = Buffer.allocUnsafe(64); + module.exports = function () { + function BufferList() { + _classCallCheck(this, BufferList); - function writeInt64BE(h, l, offset) { - H.writeInt32BE(h, offset); - H.writeInt32BE(l, offset + 4); + this.head = null; + this.tail = null; + this.length = 0; } - writeInt64BE(this._ah, this._al, 0); - writeInt64BE(this._bh, this._bl, 8); - writeInt64BE(this._ch, this._cl, 16); - writeInt64BE(this._dh, this._dl, 24); - writeInt64BE(this._eh, this._el, 32); - writeInt64BE(this._fh, this._fl, 40); - writeInt64BE(this._gh, this._gl, 48); - writeInt64BE(this._hh, this._hl, 56); - - return H; - }; + BufferList.prototype.push = function push(v) { + var entry = { data: v, next: null }; + if (this.length > 0) this.tail.next = entry;else this.head = entry; + this.tail = entry; + ++this.length; + }; - module.exports = Sha512; - }, { "./hash": 144, "inherits": 101, "safe-buffer": 143 }], 152: [function (require, module, exports) { - // Copyright Joyent, Inc. and other Node contributors. - // - // Permission is hereby granted, free of charge, to any person obtaining a - // copy of this software and associated documentation files (the - // "Software"), to deal in the Software without restriction, including - // without limitation the rights to use, copy, modify, merge, publish, - // distribute, sublicense, and/or sell copies of the Software, and to permit - // persons to whom the Software is furnished to do so, subject to the - // following conditions: - // - // The above copyright notice and this permission notice shall be included - // in all copies or substantial portions of the Software. - // - // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN - // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - // USE OR OTHER DEALINGS IN THE SOFTWARE. + BufferList.prototype.unshift = function unshift(v) { + var entry = { data: v, next: this.head }; + if (this.length === 0) this.tail = entry; + this.head = entry; + ++this.length; + }; - module.exports = Stream; + BufferList.prototype.shift = function shift() { + if (this.length === 0) return; + var ret = this.head.data; + if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; + --this.length; + return ret; + }; - var EE = require('events').EventEmitter; - var inherits = require('inherits'); + BufferList.prototype.clear = function clear() { + this.head = this.tail = null; + this.length = 0; + }; - inherits(Stream, EE); - Stream.Readable = require('readable-stream/readable.js'); - Stream.Writable = require('readable-stream/writable.js'); - Stream.Duplex = require('readable-stream/duplex.js'); - Stream.Transform = require('readable-stream/transform.js'); - Stream.PassThrough = require('readable-stream/passthrough.js'); + BufferList.prototype.join = function join(s) { + if (this.length === 0) return ''; + var p = this.head; + var ret = '' + p.data; + while (p = p.next) { + ret += s + p.data; + }return ret; + }; - // Backwards-compat with node 0.4.x - Stream.Stream = Stream; + BufferList.prototype.concat = function concat(n) { + if (this.length === 0) return Buffer.alloc(0); + if (this.length === 1) return this.head.data; + var ret = Buffer.allocUnsafe(n >>> 0); + var p = this.head; + var i = 0; + while (p) { + copyBuffer(p.data, ret, i); + i += p.data.length; + p = p.next; + } + return ret; + }; - // old-style streams. Note that the pipe method (the only relevant - // part of this class) is overridden in the Readable class. + return BufferList; + }(); + }, { "safe-buffer": 130 }], 148: [function (require, module, exports) { + 'use strict'; - function Stream() { - EE.call(this); - } + /**/ - Stream.prototype.pipe = function (dest, options) { - var source = this; + var processNextTick = require('process-nextick-args'); + /**/ - function ondata(chunk) { - if (dest.writable) { - if (false === dest.write(chunk) && source.pause) { - source.pause(); - } - } - } + // undocumented cb() API, needed for core, not for public API + function destroy(err, cb) { + var _this = this; - source.on('data', ondata); + var readableDestroyed = this._readableState && this._readableState.destroyed; + var writableDestroyed = this._writableState && this._writableState.destroyed; - function ondrain() { - if (source.readable && source.resume) { - source.resume(); + if (readableDestroyed || writableDestroyed) { + if (cb) { + cb(err); + } else if (err && (!this._writableState || !this._writableState.errorEmitted)) { + processNextTick(emitErrorNT, this, err); } + return; } - dest.on('drain', ondrain); + // we set destroyed to true before firing error callbacks in order + // to make it re-entrance safe in case destroy() is called within callbacks - // If the 'end' option is not supplied, dest.end() will be called when - // source gets the 'end' or 'close' events. Only dest.end() once. - if (!dest._isStdio && (!options || options.end !== false)) { - source.on('end', onend); - source.on('close', onclose); + if (this._readableState) { + this._readableState.destroyed = true; } - var didOnEnd = false; - function onend() { - if (didOnEnd) return; - didOnEnd = true; - - dest.end(); + // if this is a duplex stream mark the writable part as destroyed as well + if (this._writableState) { + this._writableState.destroyed = true; } - function onclose() { - if (didOnEnd) return; - didOnEnd = true; + this._destroy(err || null, function (err) { + if (!cb && err) { + processNextTick(emitErrorNT, _this, err); + if (_this._writableState) { + _this._writableState.errorEmitted = true; + } + } else if (cb) { + cb(err); + } + }); + } - if (typeof dest.destroy === 'function') dest.destroy(); + function undestroy() { + if (this._readableState) { + this._readableState.destroyed = false; + this._readableState.reading = false; + this._readableState.ended = false; + this._readableState.endEmitted = false; } - // don't leave dangling pipes when there are errors. - function onerror(er) { - cleanup(); - if (EE.listenerCount(this, 'error') === 0) { - throw er; // Unhandled stream error in pipe. - } + if (this._writableState) { + this._writableState.destroyed = false; + this._writableState.ended = false; + this._writableState.ending = false; + this._writableState.finished = false; + this._writableState.errorEmitted = false; } + } - source.on('error', onerror); - dest.on('error', onerror); - - // remove all the event listeners that were added. - function cleanup() { - source.removeListener('data', ondata); - dest.removeListener('drain', ondrain); - - source.removeListener('end', onend); - source.removeListener('close', onclose); + function emitErrorNT(self, err) { + self.emit('error', err); + } - source.removeListener('error', onerror); - dest.removeListener('error', onerror); + module.exports = { + destroy: destroy, + undestroy: undestroy + }; + }, { "process-nextick-args": 119 }], 149: [function (require, module, exports) { + module.exports = require('events').EventEmitter; + }, { "events": 84 }], 150: [function (require, module, exports) { + module.exports = require('./readable').PassThrough; + }, { "./readable": 151 }], 151: [function (require, module, exports) { + exports = module.exports = require('./lib/_stream_readable.js'); + exports.Stream = exports; + exports.Readable = exports; + exports.Writable = require('./lib/_stream_writable.js'); + exports.Duplex = require('./lib/_stream_duplex.js'); + exports.Transform = require('./lib/_stream_transform.js'); + exports.PassThrough = require('./lib/_stream_passthrough.js'); + }, { "./lib/_stream_duplex.js": 142, "./lib/_stream_passthrough.js": 143, "./lib/_stream_readable.js": 144, "./lib/_stream_transform.js": 145, "./lib/_stream_writable.js": 146 }], 152: [function (require, module, exports) { + module.exports = require('./readable').Transform; + }, { "./readable": 151 }], 153: [function (require, module, exports) { + module.exports = require('./lib/_stream_writable.js'); + }, { "./lib/_stream_writable.js": 146 }], 154: [function (require, module, exports) { + arguments[4][46][0].apply(exports, arguments); + }, { "dup": 46, "safe-buffer": 130 }], 155: [function (require, module, exports) { + (function (global) { - source.removeListener('end', cleanup); - source.removeListener('close', cleanup); + /** + * Module exports. + */ - dest.removeListener('close', cleanup); - } + module.exports = deprecate; - source.on('end', cleanup); - source.on('close', cleanup); + /** + * Mark that a method should not be used. + * Returns a modified function which warns once by default. + * + * If `localStorage.noDeprecation = true` is set, then it is a no-op. + * + * If `localStorage.throwDeprecation = true` is set, then deprecated functions + * will throw an Error when invoked. + * + * If `localStorage.traceDeprecation = true` is set, then deprecated functions + * will invoke `console.trace()` instead of `console.error()`. + * + * @param {Function} fn - the function to deprecate + * @param {String} msg - the string to print to the console when `fn` is invoked + * @returns {Function} a new "deprecated" version of `fn` + * @api public + */ - dest.on('close', cleanup); + function deprecate(fn, msg) { + if (config('noDeprecation')) { + return fn; + } - dest.emit('pipe', source); + var warned = false; + function deprecated() { + if (!warned) { + if (config('throwDeprecation')) { + throw new Error(msg); + } else if (config('traceDeprecation')) { + console.trace(msg); + } else { + console.warn(msg); + } + warned = true; + } + return fn.apply(this, arguments); + } - // Allow for unix-like usage: A.pipe(B).pipe(C) - return dest; - }; - }, { "events": 83, "inherits": 101, "readable-stream/duplex.js": 129, "readable-stream/passthrough.js": 138, "readable-stream/readable.js": 139, "readable-stream/transform.js": 140, "readable-stream/writable.js": 141 }], 153: [function (require, module, exports) { - 'use strict'; + return deprecated; + } - var Buffer = require('safe-buffer').Buffer; + /** + * Checks `localStorage` for boolean values for the given `name`. + * + * @param {String} name + * @returns {Boolean} + * @api private + */ - var isEncoding = Buffer.isEncoding || function (encoding) { - encoding = '' + encoding; - switch (encoding && encoding.toLowerCase()) { - 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': - return true; - default: + function config(name) { + // accessing global.localStorage can trigger a DOMException in sandboxed iframes + try { + if (!global.localStorage) return false; + } catch (_) { return false; + } + var val = global.localStorage[name]; + if (null == val) return false; + return String(val).toLowerCase() === 'true'; + } + }).call(this, typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}); + }, {}], 156: [function (require, module, exports) { + var indexOf = require('indexof'); + + var Object_keys = function Object_keys(obj) { + if (Object.keys) return Object.keys(obj);else { + var res = []; + for (var key in obj) { + res.push(key); + }return res; } }; - function _normalizeEncoding(enc) { - if (!enc) return 'utf8'; - var retried; - while (true) { - switch (enc) { - case 'utf8': - case 'utf-8': - return 'utf8'; - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return 'utf16le'; - case 'latin1': - case 'binary': - return 'latin1'; - case 'base64': - case 'ascii': - case 'hex': - return enc; - default: - if (retried) return; // undefined - enc = ('' + enc).toLowerCase(); - retried = true; - } - } - }; - - // Do not cache `Buffer.isEncoding` when checking encoding names as some - // modules monkey-patch it to support additional encodings - function normalizeEncoding(enc) { - var nenc = _normalizeEncoding(enc); - if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc); - return nenc || enc; - } - - // StringDecoder provides an interface for efficiently splitting a series of - // buffers into a series of JS strings without breaking apart multi-byte - // characters. - exports.StringDecoder = StringDecoder; - function StringDecoder(encoding) { - this.encoding = normalizeEncoding(encoding); - var nb; - switch (this.encoding) { - case 'utf16le': - this.text = utf16Text; - this.end = utf16End; - nb = 4; - break; - case 'utf8': - this.fillLast = utf8FillLast; - nb = 4; - break; - case 'base64': - this.text = base64Text; - this.end = base64End; - nb = 3; - break; - default: - this.write = simpleWrite; - this.end = simpleEnd; - return; - } - this.lastNeed = 0; - this.lastTotal = 0; - this.lastChar = Buffer.allocUnsafe(nb); - } - - StringDecoder.prototype.write = function (buf) { - if (buf.length === 0) return ''; - var r; - var i; - if (this.lastNeed) { - r = this.fillLast(buf); - if (r === undefined) return ''; - i = this.lastNeed; - this.lastNeed = 0; - } else { - i = 0; - } - if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i); - return r || ''; - }; - - StringDecoder.prototype.end = utf8End; - - // Returns only complete characters in a Buffer - StringDecoder.prototype.text = utf8Text; - - // Attempts to complete a partial non-UTF-8 character using bytes from a Buffer - StringDecoder.prototype.fillLast = function (buf) { - if (this.lastNeed <= buf.length) { - buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed); - return this.lastChar.toString(this.encoding, 0, this.lastTotal); - } - buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length); - this.lastNeed -= buf.length; - }; - - // Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a - // continuation byte. - function utf8CheckByte(byte) { - 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; - return -1; - } - - // Checks at most 3 bytes at the end of a Buffer in order to detect an - // incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4) - // needed to complete the UTF-8 character (if applicable) are returned. - function utf8CheckIncomplete(self, buf, i) { - var j = buf.length - 1; - if (j < i) return 0; - var nb = utf8CheckByte(buf[j]); - if (nb >= 0) { - if (nb > 0) self.lastNeed = nb - 1; - return nb; - } - if (--j < i) return 0; - nb = utf8CheckByte(buf[j]); - if (nb >= 0) { - if (nb > 0) self.lastNeed = nb - 2; - return nb; - } - if (--j < i) return 0; - nb = utf8CheckByte(buf[j]); - if (nb >= 0) { - if (nb > 0) { - if (nb === 2) nb = 0;else self.lastNeed = nb - 3; - } - return nb; - } - return 0; - } - - // Validates as many continuation bytes for a multi-byte UTF-8 character as - // needed or are available. If we see a non-continuation byte where we expect - // one, we "replace" the validated continuation bytes we've seen so far with - // UTF-8 replacement characters ('\ufffd'), to match v8's UTF-8 decoding - // behavior. The continuation byte check is included three times in the case - // where all of the continuation bytes for a character exist in the same buffer. - // It is also done this way as a slight performance increase instead of using a - // loop. - function utf8CheckExtraBytes(self, buf, p) { - if ((buf[0] & 0xC0) !== 0x80) { - self.lastNeed = 0; - return "\uFFFD".repeat(p); - } - if (self.lastNeed > 1 && buf.length > 1) { - if ((buf[1] & 0xC0) !== 0x80) { - self.lastNeed = 1; - return "\uFFFD".repeat(p + 1); - } - if (self.lastNeed > 2 && buf.length > 2) { - if ((buf[2] & 0xC0) !== 0x80) { - self.lastNeed = 2; - return "\uFFFD".repeat(p + 2); - } - } - } - } - - // Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer. - function utf8FillLast(buf) { - var p = this.lastTotal - this.lastNeed; - var r = utf8CheckExtraBytes(this, buf, p); - if (r !== undefined) return r; - if (this.lastNeed <= buf.length) { - buf.copy(this.lastChar, p, 0, this.lastNeed); - return this.lastChar.toString(this.encoding, 0, this.lastTotal); - } - buf.copy(this.lastChar, p, 0, buf.length); - this.lastNeed -= buf.length; - } - - // Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a - // partial character, the character's bytes are buffered until the required - // number of bytes are available. - function utf8Text(buf, i) { - var total = utf8CheckIncomplete(this, buf, i); - if (!this.lastNeed) return buf.toString('utf8', i); - this.lastTotal = total; - var end = buf.length - (total - this.lastNeed); - buf.copy(this.lastChar, 0, end); - return buf.toString('utf8', i, end); - } - - // For UTF-8, a replacement character for each buffered byte of a (partial) - // character needs to be added to the output. - function utf8End(buf) { - var r = buf && buf.length ? this.write(buf) : ''; - if (this.lastNeed) return r + "\uFFFD".repeat(this.lastTotal - this.lastNeed); - return r; - } - - // UTF-16LE typically needs two bytes per character, but even if we have an even - // number of bytes available, we need to check if we end on a leading/high - // surrogate. In that case, we need to wait for the next two bytes in order to - // decode the last character properly. - function utf16Text(buf, i) { - if ((buf.length - i) % 2 === 0) { - var r = buf.toString('utf16le', i); - if (r) { - var c = r.charCodeAt(r.length - 1); - if (c >= 0xD800 && c <= 0xDBFF) { - this.lastNeed = 2; - this.lastTotal = 4; - this.lastChar[0] = buf[buf.length - 2]; - this.lastChar[1] = buf[buf.length - 1]; - return r.slice(0, -1); - } - } - return r; - } - this.lastNeed = 1; - this.lastTotal = 2; - this.lastChar[0] = buf[buf.length - 1]; - return buf.toString('utf16le', i, buf.length - 1); - } - - // For UTF-16LE we do not explicitly append special replacement characters if we - // end on a partial character, we simply let v8 handle that. - function utf16End(buf) { - var r = buf && buf.length ? this.write(buf) : ''; - if (this.lastNeed) { - var end = this.lastTotal - this.lastNeed; - return r + this.lastChar.toString('utf16le', 0, end); - } - return r; - } - - function base64Text(buf, i) { - var n = (buf.length - i) % 3; - if (n === 0) return buf.toString('base64', i); - this.lastNeed = 3 - n; - this.lastTotal = 3; - if (n === 1) { - this.lastChar[0] = buf[buf.length - 1]; - } else { - this.lastChar[0] = buf[buf.length - 2]; - this.lastChar[1] = buf[buf.length - 1]; - } - return buf.toString('base64', i, buf.length - n); - } - - function base64End(buf) { - var r = buf && buf.length ? this.write(buf) : ''; - if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed); - return r; - } - - // Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex) - function simpleWrite(buf) { - return buf.toString(this.encoding); - } - - function simpleEnd(buf) { - return buf && buf.length ? this.write(buf) : ''; - } - }, { "safe-buffer": 143 }], 154: [function (require, module, exports) { - (function (global) { - - /** - * Module exports. - */ - - module.exports = deprecate; - - /** - * Mark that a method should not be used. - * Returns a modified function which warns once by default. - * - * If `localStorage.noDeprecation = true` is set, then it is a no-op. - * - * If `localStorage.throwDeprecation = true` is set, then deprecated functions - * will throw an Error when invoked. - * - * If `localStorage.traceDeprecation = true` is set, then deprecated functions - * will invoke `console.trace()` instead of `console.error()`. - * - * @param {Function} fn - the function to deprecate - * @param {String} msg - the string to print to the console when `fn` is invoked - * @returns {Function} a new "deprecated" version of `fn` - * @api public - */ - - function deprecate(fn, msg) { - if (config('noDeprecation')) { - return fn; - } - - var warned = false; - function deprecated() { - if (!warned) { - if (config('throwDeprecation')) { - throw new Error(msg); - } else if (config('traceDeprecation')) { - console.trace(msg); - } else { - console.warn(msg); - } - warned = true; - } - return fn.apply(this, arguments); - } - - return deprecated; - } - - /** - * Checks `localStorage` for boolean values for the given `name`. - * - * @param {String} name - * @returns {Boolean} - * @api private - */ - - function config(name) { - // accessing global.localStorage can trigger a DOMException in sandboxed iframes - try { - if (!global.localStorage) return false; - } catch (_) { - return false; - } - var val = global.localStorage[name]; - if (null == val) return false; - return String(val).toLowerCase() === 'true'; - } - }).call(this, typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}); - }, {}], 155: [function (require, module, exports) { - var indexOf = require('indexof'); - - var Object_keys = function Object_keys(obj) { - if (Object.keys) return Object.keys(obj);else { - var res = []; - for (var key in obj) { - res.push(key); - }return res; - } - }; - - var forEach = function forEach(xs, fn) { - if (xs.forEach) return xs.forEach(fn);else for (var i = 0; i < xs.length; i++) { - fn(xs[i], i, xs); + var forEach = function forEach(xs, fn) { + if (xs.forEach) return xs.forEach(fn);else for (var i = 0; i < xs.length; i++) { + fn(xs[i], i, xs); } }; @@ -16844,7 +16818,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol } return copy; }; - }, { "indexof": 100 }], 156: [function (require, module, exports) { + }, { "indexof": 101 }], 157: [function (require, module, exports) { var generate = function generate(num, fn) { var a = []; for (var i = 0; i < num; ++i) { @@ -16885,7 +16859,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol flatten: flatten, chunksOf: chunksOf }; - }, {}], 157: [function (require, module, exports) { + }, {}], 158: [function (require, module, exports) { var A = require("./array.js"); var at = function at(bytes, index) { @@ -17074,7 +17048,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol fromUint8Array: fromUint8Array, toUint8Array: toUint8Array }; - }, { "./array.js": 156 }], 158: [function (require, module, exports) { + }, { "./array.js": 157 }], 159: [function (require, module, exports) { // This was ported from https://github.com/emn178/js-sha3, with some minor // modifications and pruning. It is licensed under MIT: // @@ -17414,7 +17388,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol keccak256s: keccak(256), keccak512s: keccak(512) }; - }, {}], 159: [function (require, module, exports) { + }, {}], 160: [function (require, module, exports) { var isFunction = require('is-function'); module.exports = forEach; @@ -17456,7 +17430,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol } } } - }, { "is-function": 161 }], 160: [function (require, module, exports) { + }, { "is-function": 162 }], 161: [function (require, module, exports) { (function (global) { var win; @@ -17472,7 +17446,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol module.exports = win; }).call(this, typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}); - }, {}], 161: [function (require, module, exports) { + }, {}], 162: [function (require, module, exports) { module.exports = isFunction; var toString = Object.prototype.toString; @@ -17483,7 +17457,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol // IE8 and below fn === window.setTimeout || fn === window.alert || fn === window.confirm || fn === window.prompt); }; - }, {}], 162: [function (require, module, exports) { + }, {}], 163: [function (require, module, exports) { var trim = require('trim'), forEach = require('for-each'), isArray = function isArray(arg) { @@ -17511,7 +17485,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return result; }; - }, { "for-each": 159, "trim": 169 }], 163: [function (require, module, exports) { + }, { "for-each": 160, "trim": 170 }], 164: [function (require, module, exports) { 'use strict'; var strictUriEncode = require('strict-uri-encode'); @@ -17571,7 +17545,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return x.length > 0; }).join('&') : ''; }; - }, { "strict-uri-encode": 164 }], 164: [function (require, module, exports) { + }, { "strict-uri-encode": 165 }], 165: [function (require, module, exports) { 'use strict'; module.exports = function (str) { @@ -17579,7 +17553,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return '%' + c.charCodeAt(0).toString(16).toUpperCase(); }); }; - }, {}], 165: [function (require, module, exports) { + }, {}], 166: [function (require, module, exports) { var unavailable = function unavailable() { throw "This swarm.js function isn't available on the browser."; }; @@ -17612,7 +17586,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol hash: hash, pick: pick }); - }, { "./pick.js": 166, "./swarm": 168, "./swarm-hash.js": 167, "eth-lib/lib/bytes": 157, "xhr-request-promise": 172 }], 166: [function (require, module, exports) { + }, { "./pick.js": 167, "./swarm": 169, "./swarm-hash.js": 168, "eth-lib/lib/bytes": 158, "xhr-request-promise": 173 }], 167: [function (require, module, exports) { var picker = function picker(type) { return function () { return new Promise(function (resolve, reject) { @@ -17670,7 +17644,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol file: picker("file"), directory: picker("directory") }; - }, {}], 167: [function (require, module, exports) { + }, {}], 168: [function (require, module, exports) { // Thanks https://github.com/axic/swarmhash var keccak = require("eth-lib/lib/hash").keccak256; @@ -17711,7 +17685,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; module.exports = swarmHash; - }, { "eth-lib/lib/bytes": 157, "eth-lib/lib/hash": 158 }], 168: [function (require, module, exports) { + }, { "eth-lib/lib/bytes": 158, "eth-lib/lib/hash": 159 }], 169: [function (require, module, exports) { // TODO: this is a temporary fix to hide those libraries from the browser. A // slightly better long-term solution would be to split this file into two, // separating the functions that are used on Node.js from the functions that @@ -18334,7 +18308,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol toString: toString }; }; - }, {}], 169: [function (require, module, exports) { + }, {}], 170: [function (require, module, exports) { exports = module.exports = trim; @@ -18349,7 +18323,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol exports.right = function (str) { return str.replace(/\s*$/, ''); }; - }, {}], 170: [function (require, module, exports) { + }, {}], 171: [function (require, module, exports) { // Underscore.js 1.8.3 // http://underscorejs.org // (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors @@ -19918,7 +19892,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }); } }).call(this); - }, {}], 171: [function (require, module, exports) { + }, {}], 172: [function (require, module, exports) { module.exports = urlSetQuery; function urlSetQuery(url, query) { if (query) { @@ -19943,7 +19917,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol } return url; } - }, {}], 172: [function (require, module, exports) { + }, {}], 173: [function (require, module, exports) { var request = require('xhr-request'); module.exports = function (url, options) { @@ -19953,7 +19927,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }); }); }; - }, { "xhr-request": 173 }], 173: [function (require, module, exports) { + }, { "xhr-request": 174 }], 174: [function (require, module, exports) { var queryString = require('query-string'); var setQuery = require('url-set-query'); var assign = require('object-assign'); @@ -20013,7 +19987,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return request(opt, cb); } - }, { "./lib/ensure-header.js": 174, "./lib/request.js": 176, "object-assign": 177, "query-string": 163, "url-set-query": 171 }], 174: [function (require, module, exports) { + }, { "./lib/ensure-header.js": 175, "./lib/request.js": 177, "object-assign": 178, "query-string": 164, "url-set-query": 172 }], 175: [function (require, module, exports) { module.exports = ensureHeader; function ensureHeader(headers, key, value) { var lower = key.toLowerCase(); @@ -20021,7 +19995,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol headers[key] = value; } } - }, {}], 175: [function (require, module, exports) { + }, {}], 176: [function (require, module, exports) { module.exports = getResponse; function getResponse(opt, resp) { if (!resp) return null; @@ -20034,7 +20008,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol rawRequest: resp.rawRequest ? resp.rawRequest : resp }; } - }, {}], 176: [function (require, module, exports) { + }, {}], 177: [function (require, module, exports) { var xhr = require('xhr'); var normalize = require('./normalize-response'); @@ -20063,7 +20037,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol if (err) cb(err, null, resp);else cb(err, body, resp); }); } - }, { "./normalize-response": 175, "xhr": 178 }], 177: [function (require, module, exports) { + }, { "./normalize-response": 176, "xhr": 179 }], 178: [function (require, module, exports) { 'use strict'; var propIsEnumerable = Object.prototype.propertyIsEnumerable; @@ -20104,7 +20078,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return to; }; - }, {}], 178: [function (require, module, exports) { + }, {}], 179: [function (require, module, exports) { "use strict"; var window = require("global/window"); @@ -20332,19 +20306,23 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol } function getXml(xhr) { - if (xhr.responseType === "document") { - return xhr.responseXML; - } - var firefoxBugTakenEffect = xhr.responseXML && xhr.responseXML.documentElement.nodeName === "parsererror"; - if (xhr.responseType === "" && !firefoxBugTakenEffect) { - return xhr.responseXML; - } + // xhr.responseXML will throw Exception "InvalidStateError" or "DOMException" + // See https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseXML. + try { + if (xhr.responseType === "document") { + return xhr.responseXML; + } + var firefoxBugTakenEffect = xhr.responseXML && xhr.responseXML.documentElement.nodeName === "parsererror"; + if (xhr.responseType === "" && !firefoxBugTakenEffect) { + return xhr.responseXML; + } + } catch (e) {} return null; } function noop() {} - }, { "global/window": 160, "is-function": 161, "parse-headers": 162, "xtend": 179 }], 179: [function (require, module, exports) { + }, { "global/window": 161, "is-function": 162, "parse-headers": 163, "xtend": 180 }], 180: [function (require, module, exports) { module.exports = extend; var hasOwnProperty = Object.prototype.hasOwnProperty; @@ -20364,7 +20342,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return target; } - }, {}], 180: [function (require, module, exports) { + }, {}], 181: [function (require, module, exports) { /* This file is part of web3.js. @@ -20450,9 +20428,9 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; module.exports = Bzz; - }, { "swarm-js": 165, "underscore": 170 }], 181: [function (require, module, exports) { - arguments[4][170][0].apply(exports, arguments); - }, { "dup": 170 }], 182: [function (require, module, exports) { + }, { "swarm-js": 166, "underscore": 171 }], 182: [function (require, module, exports) { + arguments[4][171][0].apply(exports, arguments); + }, { "dup": 171 }], 183: [function (require, module, exports) { /* This file is part of web3.js. @@ -20500,7 +20478,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return new Error('CONNECTION TIMEOUT: timeout of ' + ms + ' ms achived'); } }; - }, {}], 183: [function (require, module, exports) { + }, {}], 184: [function (require, module, exports) { /* This file is part of web3.js. @@ -20897,7 +20875,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol outputPostFormatter: outputPostFormatter, outputSyncingFormatter: outputSyncingFormatter }; - }, { "underscore": 181, "web3-eth-iban": 365, "web3-utils": 390 }], 184: [function (require, module, exports) { + }, { "underscore": 182, "web3-eth-iban": 358, "web3-utils": 383 }], 185: [function (require, module, exports) { /* This file is part of web3.js. @@ -20929,9 +20907,9 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol errors: errors, formatters: formatters }; - }, { "./errors": 182, "./formatters": 183 }], 185: [function (require, module, exports) { - arguments[4][170][0].apply(exports, arguments); - }, { "dup": 170 }], 186: [function (require, module, exports) { + }, { "./errors": 183, "./formatters": 184 }], 186: [function (require, module, exports) { + arguments[4][171][0].apply(exports, arguments); + }, { "dup": 171 }], 187: [function (require, module, exports) { /* This file is part of web3.js. @@ -21490,7 +21468,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; module.exports = Method; - }, { "underscore": 185, "web3-core-helpers": 184, "web3-core-promievent": 189, "web3-core-subscriptions": 197, "web3-utils": 390 }], 187: [function (require, module, exports) { + }, { "underscore": 186, "web3-core-helpers": 185, "web3-core-promievent": 190, "web3-core-subscriptions": 198, "web3-utils": 383 }], 188: [function (require, module, exports) { (function (process, global) { /* @preserve * The MIT License (MIT) @@ -26632,7 +26610,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol self.P = self.Promise; } }).call(this, require('_process'), typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}); - }, { "_process": 120 }], 188: [function (require, module, exports) { + }, { "_process": 120 }], 189: [function (require, module, exports) { 'use strict'; // @@ -26888,7 +26866,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol if ('undefined' !== typeof module) { module.exports = EventEmitter; } - }, {}], 189: [function (require, module, exports) { + }, {}], 190: [function (require, module, exports) { /* This file is part of web3.js. @@ -26965,9 +26943,9 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; module.exports = PromiEvent; - }, { "bluebird": 187, "eventemitter3": 188 }], 190: [function (require, module, exports) { - arguments[4][170][0].apply(exports, arguments); - }, { "dup": 170 }], 191: [function (require, module, exports) { + }, { "bluebird": 188, "eventemitter3": 189 }], 191: [function (require, module, exports) { + arguments[4][171][0].apply(exports, arguments); + }, { "dup": 171 }], 192: [function (require, module, exports) { /* This file is part of web3.js. @@ -27039,7 +27017,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; module.exports = Batch; - }, { "./jsonrpc": 194, "web3-core-helpers": 184 }], 192: [function (require, module, exports) { + }, { "./jsonrpc": 195, "web3-core-helpers": 185 }], 193: [function (require, module, exports) { /* This file is part of web3.js. @@ -27121,7 +27099,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol /* jshint ignore:end */ module.exports = givenProvider; - }, {}], 193: [function (require, module, exports) { + }, {}], 194: [function (require, module, exports) { /* This file is part of web3.js. @@ -27346,7 +27324,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol Manager: RequestManager, BatchManager: BatchManager }; - }, { "./batch.js": 191, "./givenProvider.js": 192, "./jsonrpc.js": 194, "underscore": 190, "web3-core-helpers": 184, "web3-providers-http": 372, "web3-providers-ipc": 375, "web3-providers-ws": 377 }], 194: [function (require, module, exports) { + }, { "./batch.js": 192, "./givenProvider.js": 193, "./jsonrpc.js": 195, "underscore": 191, "web3-core-helpers": 185, "web3-providers-http": 365, "web3-providers-ipc": 368, "web3-providers-ws": 370 }], 195: [function (require, module, exports) { /* This file is part of web3.js. @@ -27432,11 +27410,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; module.exports = Jsonrpc; - }, {}], 195: [function (require, module, exports) { - arguments[4][188][0].apply(exports, arguments); - }, { "dup": 188 }], 196: [function (require, module, exports) { - arguments[4][170][0].apply(exports, arguments); - }, { "dup": 170 }], 197: [function (require, module, exports) { + }, {}], 196: [function (require, module, exports) { + arguments[4][189][0].apply(exports, arguments); + }, { "dup": 189 }], 197: [function (require, module, exports) { + arguments[4][171][0].apply(exports, arguments); + }, { "dup": 171 }], 198: [function (require, module, exports) { /* This file is part of web3.js. @@ -27508,7 +27486,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol subscriptions: Subscriptions, subscription: Subscription }; - }, { "./subscription.js": 198 }], 198: [function (require, module, exports) { + }, { "./subscription.js": 199 }], 199: [function (require, module, exports) { /* This file is part of web3.js. @@ -27804,7 +27782,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; module.exports = Subscription; - }, { "eventemitter3": 195, "underscore": 196, "web3-core-helpers": 184 }], 199: [function (require, module, exports) { + }, { "eventemitter3": 196, "underscore": 197, "web3-core-helpers": 185 }], 200: [function (require, module, exports) { /* This file is part of web3.js. @@ -27869,7 +27847,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; module.exports = extend; - }, { "web3-core-helpers": 184, "web3-core-method": 186, "web3-utils": 390 }], 200: [function (require, module, exports) { + }, { "web3-core-helpers": 185, "web3-core-method": 187, "web3-utils": 383 }], 201: [function (require, module, exports) { /* This file is part of web3.js. @@ -27953,7 +27931,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol pkg.providers = requestManager.Manager.providers; } }; - }, { "./extend.js": 199, "web3-core-requestmanager": 193 }], 201: [function (require, module, exports) { + }, { "./extend.js": 200, "web3-core-requestmanager": 194 }], 202: [function (require, module, exports) { (function (module, exports) { 'use strict'; @@ -31313,9 +31291,9 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return res._forceRed(this); }; })(typeof module === 'undefined' || module, this); - }, {}], 202: [function (require, module, exports) { - arguments[4][170][0].apply(exports, arguments); - }, { "dup": 170 }], 203: [function (require, module, exports) { + }, {}], 203: [function (require, module, exports) { + arguments[4][171][0].apply(exports, arguments); + }, { "dup": 171 }], 204: [function (require, module, exports) { /* This file is part of web3.js. @@ -31599,7 +31577,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol formatOutputAddress: formatOutputAddress, toTwosComplement: utils.toTwosComplement }; - }, { "./param": 205, "bn.js": 201, "underscore": 202, "web3-utils": 390 }], 204: [function (require, module, exports) { + }, { "./param": 206, "bn.js": 202, "underscore": 203, "web3-utils": 383 }], 205: [function (require, module, exports) { /* This file is part of web3.js. @@ -31983,7 +31961,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol var coder = new ABICoder([new SolidityTypeAddress(), new SolidityTypeBool(), new SolidityTypeInt(), new SolidityTypeUInt(), new SolidityTypeDynamicBytes(), new SolidityTypeBytes(), new SolidityTypeString()]); module.exports = coder; - }, { "./formatters": 203, "./types/address": 207, "./types/bool": 208, "./types/bytes": 209, "./types/dynamicbytes": 210, "./types/int": 211, "./types/string": 212, "./types/uint": 213, "underscore": 202, "web3-utils": 390 }], 205: [function (require, module, exports) { + }, { "./formatters": 204, "./types/address": 208, "./types/bool": 209, "./types/bytes": 210, "./types/dynamicbytes": 211, "./types/int": 212, "./types/string": 213, "./types/uint": 214, "underscore": 203, "web3-utils": 383 }], 206: [function (require, module, exports) { /* This file is part of web3.js. @@ -32134,7 +32112,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; module.exports = SolidityParam; - }, { "./formatters.js": 203 }], 206: [function (require, module, exports) { + }, { "./formatters.js": 204 }], 207: [function (require, module, exports) { var f = require('./formatters'); var SolidityParam = require('./param'); @@ -32385,7 +32363,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; module.exports = SolidityType; - }, { "./formatters": 203, "./param": 205 }], 207: [function (require, module, exports) { + }, { "./formatters": 204, "./param": 206 }], 208: [function (require, module, exports) { var f = require('../formatters'); var formatters = require('web3-core-helpers').formatters; var SolidityType = require('../type'); @@ -32417,7 +32395,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; module.exports = SolidityTypeAddress; - }, { "../formatters": 203, "../type": 206, "web3-core-helpers": 184 }], 208: [function (require, module, exports) { + }, { "../formatters": 204, "../type": 207, "web3-core-helpers": 185 }], 209: [function (require, module, exports) { var f = require('../formatters'); var SolidityType = require('../type'); @@ -32444,7 +32422,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; module.exports = SolidityTypeBool; - }, { "../formatters": 203, "../type": 206 }], 209: [function (require, module, exports) { + }, { "../formatters": 204, "../type": 207 }], 210: [function (require, module, exports) { var f = require('../formatters'); var SolidityType = require('../type'); @@ -32474,7 +32452,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; module.exports = SolidityTypeBytes; - }, { "../formatters": 203, "../type": 206 }], 210: [function (require, module, exports) { + }, { "../formatters": 204, "../type": 207 }], 211: [function (require, module, exports) { var f = require('../formatters'); var SolidityType = require('../type'); @@ -32495,7 +32473,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; module.exports = SolidityTypeDynamicBytes; - }, { "../formatters": 203, "../type": 206 }], 211: [function (require, module, exports) { + }, { "../formatters": 204, "../type": 207 }], 212: [function (require, module, exports) { var f = require('../formatters'); var SolidityType = require('../type'); @@ -32528,7 +32506,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; module.exports = SolidityTypeInt; - }, { "../formatters": 203, "../type": 206 }], 212: [function (require, module, exports) { + }, { "../formatters": 204, "../type": 207 }], 213: [function (require, module, exports) { var f = require('../formatters'); var SolidityType = require('../type'); @@ -32549,7 +32527,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; module.exports = SolidityTypeString; - }, { "../formatters": 203, "../type": 206 }], 213: [function (require, module, exports) { + }, { "../formatters": 204, "../type": 207 }], 214: [function (require, module, exports) { var f = require('../formatters'); var SolidityType = require('../type'); @@ -32582,8569 +32560,8569 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; module.exports = SolidityTypeUInt; - }, { "../formatters": 203, "../type": 206 }], 214: [function (require, module, exports) { + }, { "../formatters": 204, "../type": 207 }], 215: [function (require, module, exports) { arguments[4][1][0].apply(exports, arguments); - }, { "./asn1/api": 215, "./asn1/base": 217, "./asn1/constants": 221, "./asn1/decoders": 223, "./asn1/encoders": 226, "bn.js": 228, "dup": 1 }], 215: [function (require, module, exports) { + }, { "./asn1/api": 216, "./asn1/base": 218, "./asn1/constants": 222, "./asn1/decoders": 224, "./asn1/encoders": 227, "bn.js": 230, "dup": 1 }], 216: [function (require, module, exports) { arguments[4][2][0].apply(exports, arguments); - }, { "../asn1": 214, "dup": 2, "inherits": 320, "vm": 155 }], 216: [function (require, module, exports) { + }, { "../asn1": 215, "dup": 2, "inherits": 315, "vm": 156 }], 217: [function (require, module, exports) { arguments[4][3][0].apply(exports, arguments); - }, { "../base": 217, "buffer": 47, "dup": 3, "inherits": 320 }], 217: [function (require, module, exports) { + }, { "../base": 218, "buffer": 48, "dup": 3, "inherits": 315 }], 218: [function (require, module, exports) { arguments[4][4][0].apply(exports, arguments); - }, { "./buffer": 216, "./node": 218, "./reporter": 219, "dup": 4 }], 218: [function (require, module, exports) { + }, { "./buffer": 217, "./node": 219, "./reporter": 220, "dup": 4 }], 219: [function (require, module, exports) { arguments[4][5][0].apply(exports, arguments); - }, { "../base": 217, "dup": 5, "minimalistic-assert": 325 }], 219: [function (require, module, exports) { + }, { "../base": 218, "dup": 5, "minimalistic-assert": 319 }], 220: [function (require, module, exports) { arguments[4][6][0].apply(exports, arguments); - }, { "dup": 6, "inherits": 320 }], 220: [function (require, module, exports) { + }, { "dup": 6, "inherits": 315 }], 221: [function (require, module, exports) { arguments[4][7][0].apply(exports, arguments); - }, { "../constants": 221, "dup": 7 }], 221: [function (require, module, exports) { + }, { "../constants": 222, "dup": 7 }], 222: [function (require, module, exports) { arguments[4][8][0].apply(exports, arguments); - }, { "./der": 220, "dup": 8 }], 222: [function (require, module, exports) { + }, { "./der": 221, "dup": 8 }], 223: [function (require, module, exports) { arguments[4][9][0].apply(exports, arguments); - }, { "../../asn1": 214, "dup": 9, "inherits": 320 }], 223: [function (require, module, exports) { + }, { "../../asn1": 215, "dup": 9, "inherits": 315 }], 224: [function (require, module, exports) { arguments[4][10][0].apply(exports, arguments); - }, { "./der": 222, "./pem": 224, "dup": 10 }], 224: [function (require, module, exports) { + }, { "./der": 223, "./pem": 225, "dup": 10 }], 225: [function (require, module, exports) { arguments[4][11][0].apply(exports, arguments); - }, { "./der": 222, "buffer": 47, "dup": 11, "inherits": 320 }], 225: [function (require, module, exports) { + }, { "./der": 223, "buffer": 48, "dup": 11, "inherits": 315 }], 226: [function (require, module, exports) { arguments[4][12][0].apply(exports, arguments); - }, { "../../asn1": 214, "buffer": 47, "dup": 12, "inherits": 320 }], 226: [function (require, module, exports) { + }, { "../../asn1": 215, "buffer": 48, "dup": 12, "inherits": 315 }], 227: [function (require, module, exports) { arguments[4][13][0].apply(exports, arguments); - }, { "./der": 225, "./pem": 227, "dup": 13 }], 227: [function (require, module, exports) { + }, { "./der": 226, "./pem": 228, "dup": 13 }], 228: [function (require, module, exports) { arguments[4][14][0].apply(exports, arguments); - }, { "./der": 225, "dup": 14, "inherits": 320 }], 228: [function (require, module, exports) { - (function (module, exports) { - 'use strict'; + }, { "./der": 226, "dup": 14, "inherits": 315 }], 229: [function (require, module, exports) { + (function (process, global) { + /* @preserve + * The MIT License (MIT) + * + * Copyright (c) 2013-2015 Petka Antonov + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + */ + /** + * bluebird build version 3.3.1 + * Features enabled: core, race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each + */ + !function (e) { + if ("object" == (typeof exports === "undefined" ? "undefined" : _typeof(exports)) && "undefined" != typeof module) module.exports = e();else if ("function" == typeof define && define.amd) define([], e);else { + var f;"undefined" != typeof window ? f = window : "undefined" != typeof global ? f = global : "undefined" != typeof self && (f = self), f.Promise = e(); + } + }(function () { + var define, module, exports;return function e(t, n, r) { + function s(o, u) { + if (!n[o]) { + if (!t[o]) { + var a = typeof _dereq_ == "function" && _dereq_;if (!u && a) return a(o, !0);if (i) return i(o, !0);var f = new Error("Cannot find module '" + o + "'");throw f.code = "MODULE_NOT_FOUND", f; + }var l = n[o] = { exports: {} };t[o][0].call(l.exports, function (e) { + var n = t[o][1][e];return s(n ? n : e); + }, l, l.exports, e, t, n, r); + }return n[o].exports; + }var i = typeof _dereq_ == "function" && _dereq_;for (var o = 0; o < r.length; o++) { + s(r[o]); + }return s; + }({ 1: [function (_dereq_, module, exports) { + "use strict"; - // Utils + module.exports = function (Promise) { + var SomePromiseArray = Promise._SomePromiseArray; + function any(promises) { + var ret = new SomePromiseArray(promises); + var promise = ret.promise(); + ret.setHowMany(1); + ret.setUnwrap(); + ret.init(); + return promise; + } - function assert(val, msg) { - if (!val) throw new Error(msg || 'Assertion failed'); - } + Promise.any = function (promises) { + return any(promises); + }; - // Could use `inherits` module, but don't want to move from single file - // architecture yet. - function inherits(ctor, superCtor) { - ctor.super_ = superCtor; - var TempCtor = function TempCtor() {}; - TempCtor.prototype = superCtor.prototype; - ctor.prototype = new TempCtor(); - ctor.prototype.constructor = ctor; - } + Promise.prototype.any = function () { + return any(this); + }; + }; + }, {}], 2: [function (_dereq_, module, exports) { + "use strict"; - // BN + var firstLineError; + try { + throw new Error(); + } catch (e) { + firstLineError = e; + } + var schedule = _dereq_("./schedule"); + var Queue = _dereq_("./queue"); + var util = _dereq_("./util"); - function BN(number, base, endian) { - if (BN.isBN(number)) { - return number; - } + function Async() { + this._isTickUsed = false; + this._lateQueue = new Queue(16); + this._normalQueue = new Queue(16); + this._haveDrainedQueues = false; + this._trampolineEnabled = true; + var self = this; + this.drainQueues = function () { + self._drainQueues(); + }; + this._schedule = schedule; + } - this.negative = 0; - this.words = null; - this.length = 0; + Async.prototype.enableTrampoline = function () { + this._trampolineEnabled = true; + }; - // Reduction context - this.red = null; + Async.prototype.disableTrampolineIfNecessary = function () { + if (util.hasDevTools) { + this._trampolineEnabled = false; + } + }; - if (number !== null) { - if (base === 'le' || base === 'be') { - endian = base; - base = 10; - } + Async.prototype.haveItemsQueued = function () { + return this._isTickUsed || this._haveDrainedQueues; + }; - this._init(number || 0, base || 10, endian || 'be'); - } - } - if ((typeof module === "undefined" ? "undefined" : _typeof(module)) === 'object') { - module.exports = BN; - } else { - exports.BN = BN; - } + Async.prototype.fatalError = function (e, isNode) { + if (isNode) { + process.stderr.write("Fatal " + (e instanceof Error ? e.stack : e)); + process.exit(2); + } else { + this.throwLater(e); + } + }; - BN.BN = BN; - BN.wordSize = 26; + Async.prototype.throwLater = function (fn, arg) { + if (arguments.length === 1) { + arg = fn; + fn = function fn() { + throw arg; + }; + } + if (typeof setTimeout !== "undefined") { + setTimeout(function () { + fn(arg); + }, 0); + } else try { + this._schedule(function () { + fn(arg); + }); + } catch (e) { + throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n"); + } + }; - var Buffer; - try { - Buffer = require('buffer').Buffer; - } catch (e) {} + function AsyncInvokeLater(fn, receiver, arg) { + this._lateQueue.push(fn, receiver, arg); + this._queueTick(); + } - BN.isBN = function isBN(num) { - if (num instanceof BN) { - return true; - } + function AsyncInvoke(fn, receiver, arg) { + this._normalQueue.push(fn, receiver, arg); + this._queueTick(); + } - return num !== null && (typeof num === "undefined" ? "undefined" : _typeof(num)) === 'object' && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words); - }; + function AsyncSettlePromises(promise) { + this._normalQueue._pushOne(promise); + this._queueTick(); + } - BN.max = function max(left, right) { - if (left.cmp(right) > 0) return left; - return right; - }; + if (!util.hasDevTools) { + Async.prototype.invokeLater = AsyncInvokeLater; + Async.prototype.invoke = AsyncInvoke; + Async.prototype.settlePromises = AsyncSettlePromises; + } else { + Async.prototype.invokeLater = function (fn, receiver, arg) { + if (this._trampolineEnabled) { + AsyncInvokeLater.call(this, fn, receiver, arg); + } else { + this._schedule(function () { + setTimeout(function () { + fn.call(receiver, arg); + }, 100); + }); + } + }; - BN.min = function min(left, right) { - if (left.cmp(right) < 0) return left; - return right; - }; + Async.prototype.invoke = function (fn, receiver, arg) { + if (this._trampolineEnabled) { + AsyncInvoke.call(this, fn, receiver, arg); + } else { + this._schedule(function () { + fn.call(receiver, arg); + }); + } + }; - BN.prototype._init = function init(number, base, endian) { - if (typeof number === 'number') { - return this._initNumber(number, base, endian); - } + Async.prototype.settlePromises = function (promise) { + if (this._trampolineEnabled) { + AsyncSettlePromises.call(this, promise); + } else { + this._schedule(function () { + promise._settlePromises(); + }); + } + }; + } - if ((typeof number === "undefined" ? "undefined" : _typeof(number)) === 'object') { - return this._initArray(number, base, endian); - } + Async.prototype.invokeFirst = function (fn, receiver, arg) { + this._normalQueue.unshift(fn, receiver, arg); + this._queueTick(); + }; - if (base === 'hex') { - base = 16; - } - assert(base === (base | 0) && base >= 2 && base <= 36); + Async.prototype._drainQueue = function (queue) { + while (queue.length() > 0) { + var fn = queue.shift(); + if (typeof fn !== "function") { + fn._settlePromises(); + continue; + } + var receiver = queue.shift(); + var arg = queue.shift(); + fn.call(receiver, arg); + } + }; - number = number.toString().replace(/\s+/g, ''); - var start = 0; - if (number[0] === '-') { - start++; - } + Async.prototype._drainQueues = function () { + this._drainQueue(this._normalQueue); + this._reset(); + this._haveDrainedQueues = true; + this._drainQueue(this._lateQueue); + }; - if (base === 16) { - this._parseHex(number, start); - } else { - this._parseBase(number, base, start); - } + Async.prototype._queueTick = function () { + if (!this._isTickUsed) { + this._isTickUsed = true; + this._schedule(this.drainQueues); + } + }; - if (number[0] === '-') { - this.negative = 1; - } + Async.prototype._reset = function () { + this._isTickUsed = false; + }; - this.strip(); + module.exports = Async; + module.exports.firstLineError = firstLineError; + }, { "./queue": 26, "./schedule": 29, "./util": 36 }], 3: [function (_dereq_, module, exports) { + "use strict"; - if (endian !== 'le') return; + module.exports = function (Promise, INTERNAL, tryConvertToPromise, debug) { + var calledBind = false; + var rejectThis = function rejectThis(_, e) { + this._reject(e); + }; - this._initArray(this.toArray(), base, endian); - }; + var targetRejected = function targetRejected(e, context) { + context.promiseRejectionQueued = true; + context.bindingPromise._then(rejectThis, rejectThis, null, this, e); + }; - BN.prototype._initNumber = function _initNumber(number, base, endian) { - if (number < 0) { - this.negative = 1; - number = -number; - } - if (number < 0x4000000) { - this.words = [number & 0x3ffffff]; - this.length = 1; - } else if (number < 0x10000000000000) { - this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff]; - this.length = 2; - } else { - assert(number < 0x20000000000000); // 2 ^ 53 (unsafe) - this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff, 1]; - this.length = 3; - } + var bindingResolved = function bindingResolved(thisArg, context) { + if ((this._bitField & 50397184) === 0) { + this._resolveCallback(context.target); + } + }; - if (endian !== 'le') return; + var bindingRejected = function bindingRejected(e, context) { + if (!context.promiseRejectionQueued) this._reject(e); + }; - // Reverse the bytes - this._initArray(this.toArray(), base, endian); - }; + Promise.prototype.bind = function (thisArg) { + if (!calledBind) { + calledBind = true; + Promise.prototype._propagateFrom = debug.propagateFromFunction(); + Promise.prototype._boundValue = debug.boundValueFunction(); + } + var maybePromise = tryConvertToPromise(thisArg); + var ret = new Promise(INTERNAL); + ret._propagateFrom(this, 1); + var target = this._target(); + ret._setBoundTo(maybePromise); + if (maybePromise instanceof Promise) { + var context = { + promiseRejectionQueued: false, + promise: ret, + target: target, + bindingPromise: maybePromise + }; + target._then(INTERNAL, targetRejected, undefined, ret, context); + maybePromise._then(bindingResolved, bindingRejected, undefined, ret, context); + ret._setOnCancel(maybePromise); + } else { + ret._resolveCallback(target); + } + return ret; + }; - BN.prototype._initArray = function _initArray(number, base, endian) { - // Perhaps a Uint8Array - assert(typeof number.length === 'number'); - if (number.length <= 0) { - this.words = [0]; - this.length = 1; - return this; - } + Promise.prototype._setBoundTo = function (obj) { + if (obj !== undefined) { + this._bitField = this._bitField | 2097152; + this._boundTo = obj; + } else { + this._bitField = this._bitField & ~2097152; + } + }; - this.length = Math.ceil(number.length / 3); - this.words = new Array(this.length); - for (var i = 0; i < this.length; i++) { - this.words[i] = 0; - } + Promise.prototype._isBound = function () { + return (this._bitField & 2097152) === 2097152; + }; - var j, w; - var off = 0; - if (endian === 'be') { - for (i = number.length - 1, j = 0; i >= 0; i -= 3) { - w = number[i] | number[i - 1] << 8 | number[i - 2] << 16; - this.words[j] |= w << off & 0x3ffffff; - this.words[j + 1] = w >>> 26 - off & 0x3ffffff; - off += 24; - if (off >= 26) { - off -= 26; - j++; + Promise.bind = function (thisArg, value) { + return Promise.resolve(value).bind(thisArg); + }; + }; + }, {}], 4: [function (_dereq_, module, exports) { + "use strict"; + + var old; + if (typeof Promise !== "undefined") old = Promise; + function noConflict() { + try { + if (Promise === bluebird) Promise = old; + } catch (e) {} + return bluebird; } - } - } else if (endian === 'le') { - for (i = 0, j = 0; i < number.length; i += 3) { - w = number[i] | number[i + 1] << 8 | number[i + 2] << 16; - this.words[j] |= w << off & 0x3ffffff; - this.words[j + 1] = w >>> 26 - off & 0x3ffffff; - off += 24; - if (off >= 26) { - off -= 26; - j++; + var bluebird = _dereq_("./promise")(); + bluebird.noConflict = noConflict; + module.exports = bluebird; + }, { "./promise": 22 }], 5: [function (_dereq_, module, exports) { + "use strict"; + + var cr = Object.create; + if (cr) { + var callerCache = cr(null); + var getterCache = cr(null); + callerCache[" size"] = getterCache[" size"] = 0; } - } - } - return this.strip(); - }; - function parseHex(str, start, end) { - var r = 0; - var len = Math.min(str.length, end); - for (var i = start; i < len; i++) { - var c = str.charCodeAt(i) - 48; + module.exports = function (Promise) { + var util = _dereq_("./util"); + var canEvaluate = util.canEvaluate; + var isIdentifier = util.isIdentifier; - r <<= 4; + var getMethodCaller; + var getGetter; + if (!true) { + var makeMethodCaller = function makeMethodCaller(methodName) { + return new Function("ensureMethod", " \n\ + return function(obj) { \n\ + 'use strict' \n\ + var len = this.length; \n\ + ensureMethod(obj, 'methodName'); \n\ + switch(len) { \n\ + case 1: return obj.methodName(this[0]); \n\ + case 2: return obj.methodName(this[0], this[1]); \n\ + case 3: return obj.methodName(this[0], this[1], this[2]); \n\ + case 0: return obj.methodName(); \n\ + default: \n\ + return obj.methodName.apply(obj, this); \n\ + } \n\ + }; \n\ + ".replace(/methodName/g, methodName))(ensureMethod); + }; - // 'a' - 'f' - if (c >= 49 && c <= 54) { - r |= c - 49 + 0xa; + var makeGetter = function makeGetter(propertyName) { + return new Function("obj", " \n\ + 'use strict'; \n\ + return obj.propertyName; \n\ + ".replace("propertyName", propertyName)); + }; - // 'A' - 'F' - } else if (c >= 17 && c <= 22) { - r |= c - 17 + 0xa; + var getCompiled = function getCompiled(name, compiler, cache) { + var ret = cache[name]; + if (typeof ret !== "function") { + if (!isIdentifier(name)) { + return null; + } + ret = compiler(name); + cache[name] = ret; + cache[" size"]++; + if (cache[" size"] > 512) { + var keys = Object.keys(cache); + for (var i = 0; i < 256; ++i) { + delete cache[keys[i]]; + }cache[" size"] = keys.length - 256; + } + } + return ret; + }; - // '0' - '9' - } else { - r |= c & 0xf; - } - } - return r; - } - - BN.prototype._parseHex = function _parseHex(number, start) { - // Create possibly bigger array to ensure that it fits the number - this.length = Math.ceil((number.length - start) / 6); - this.words = new Array(this.length); - for (var i = 0; i < this.length; i++) { - this.words[i] = 0; - } - - var j, w; - // Scan 24-bit chunks and add them to the number - var off = 0; - for (i = number.length - 6, j = 0; i >= start; i -= 6) { - w = parseHex(number, i, i + 6); - this.words[j] |= w << off & 0x3ffffff; - // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb - this.words[j + 1] |= w >>> 26 - off & 0x3fffff; - off += 24; - if (off >= 26) { - off -= 26; - j++; - } - } - if (i + 6 !== start) { - w = parseHex(number, start, i + 6); - this.words[j] |= w << off & 0x3ffffff; - this.words[j + 1] |= w >>> 26 - off & 0x3fffff; - } - this.strip(); - }; + getMethodCaller = function getMethodCaller(name) { + return getCompiled(name, makeMethodCaller, callerCache); + }; - function parseBase(str, start, end, mul) { - var r = 0; - var len = Math.min(str.length, end); - for (var i = start; i < len; i++) { - var c = str.charCodeAt(i) - 48; + getGetter = function getGetter(name) { + return getCompiled(name, makeGetter, getterCache); + }; + } - r *= mul; + function ensureMethod(obj, methodName) { + var fn; + if (obj != null) fn = obj[methodName]; + if (typeof fn !== "function") { + var message = "Object " + util.classString(obj) + " has no method '" + util.toString(methodName) + "'"; + throw new Promise.TypeError(message); + } + return fn; + } - // 'a' - if (c >= 49) { - r += c - 49 + 0xa; + function caller(obj) { + var methodName = this.pop(); + var fn = ensureMethod(obj, methodName); + return fn.apply(obj, this); + } + Promise.prototype.call = function (methodName) { + var args = [].slice.call(arguments, 1);; + if (!true) { + if (canEvaluate) { + var maybeCaller = getMethodCaller(methodName); + if (maybeCaller !== null) { + return this._then(maybeCaller, undefined, undefined, args, undefined); + } + } + } + args.push(methodName); + return this._then(caller, undefined, undefined, args, undefined); + }; - // 'A' - } else if (c >= 17) { - r += c - 17 + 0xa; + function namedGetter(obj) { + return obj[this]; + } + function indexedGetter(obj) { + var index = +this; + if (index < 0) index = Math.max(0, index + obj.length); + return obj[index]; + } + Promise.prototype.get = function (propertyName) { + var isIndex = typeof propertyName === "number"; + var getter; + if (!isIndex) { + if (canEvaluate) { + var maybeGetter = getGetter(propertyName); + getter = maybeGetter !== null ? maybeGetter : namedGetter; + } else { + getter = namedGetter; + } + } else { + getter = indexedGetter; + } + return this._then(getter, undefined, undefined, propertyName, undefined); + }; + }; + }, { "./util": 36 }], 6: [function (_dereq_, module, exports) { + "use strict"; - // '0' - '9' - } else { - r += c; - } - } - return r; - } + module.exports = function (Promise, PromiseArray, apiRejection, debug) { + var util = _dereq_("./util"); + var tryCatch = util.tryCatch; + var errorObj = util.errorObj; + var async = Promise._async; - BN.prototype._parseBase = function _parseBase(number, base, start) { - // Initialize as zero - this.words = [0]; - this.length = 1; + Promise.prototype["break"] = Promise.prototype.cancel = function () { + if (!debug.cancellation()) return this._warn("cancellation is disabled"); - // Find length of limb in base - for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) { - limbLen++; - } - limbLen--; - limbPow = limbPow / base | 0; + var promise = this; + var child = promise; + while (promise.isCancellable()) { + if (!promise._cancelBy(child)) { + if (child._isFollowing()) { + child._followee().cancel(); + } else { + child._cancelBranched(); + } + break; + } - var total = number.length - start; - var mod = total % limbLen; - var end = Math.min(total, total - mod) + start; + var parent = promise._cancellationParent; + if (parent == null || !parent.isCancellable()) { + if (promise._isFollowing()) { + promise._followee().cancel(); + } else { + promise._cancelBranched(); + } + break; + } else { + if (promise._isFollowing()) promise._followee().cancel(); + child = promise; + promise = parent; + } + } + }; - var word = 0; - for (var i = start; i < end; i += limbLen) { - word = parseBase(number, i, i + limbLen, base); + Promise.prototype._branchHasCancelled = function () { + this._branchesRemainingToCancel--; + }; - this.imuln(limbPow); - if (this.words[0] + word < 0x4000000) { - this.words[0] += word; - } else { - this._iaddn(word); - } - } + Promise.prototype._enoughBranchesHaveCancelled = function () { + return this._branchesRemainingToCancel === undefined || this._branchesRemainingToCancel <= 0; + }; - if (mod !== 0) { - var pow = 1; - word = parseBase(number, i, number.length, base); + Promise.prototype._cancelBy = function (canceller) { + if (canceller === this) { + this._branchesRemainingToCancel = 0; + this._invokeOnCancel(); + return true; + } else { + this._branchHasCancelled(); + if (this._enoughBranchesHaveCancelled()) { + this._invokeOnCancel(); + return true; + } + } + return false; + }; - for (i = 0; i < mod; i++) { - pow *= base; - } + Promise.prototype._cancelBranched = function () { + if (this._enoughBranchesHaveCancelled()) { + this._cancel(); + } + }; - this.imuln(pow); - if (this.words[0] + word < 0x4000000) { - this.words[0] += word; - } else { - this._iaddn(word); - } - } - }; + Promise.prototype._cancel = function () { + if (!this.isCancellable()) return; - BN.prototype.copy = function copy(dest) { - dest.words = new Array(this.length); - for (var i = 0; i < this.length; i++) { - dest.words[i] = this.words[i]; - } - dest.length = this.length; - dest.negative = this.negative; - dest.red = this.red; - }; + this._setCancelled(); + async.invoke(this._cancelPromises, this, undefined); + }; - BN.prototype.clone = function clone() { - var r = new BN(null); - this.copy(r); - return r; - }; + Promise.prototype._cancelPromises = function () { + if (this._length() > 0) this._settlePromises(); + }; - BN.prototype._expand = function _expand(size) { - while (this.length < size) { - this.words[this.length++] = 0; - } - return this; - }; + Promise.prototype._unsetOnCancel = function () { + this._onCancelField = undefined; + }; - // Remove leading `0` from `this` - BN.prototype.strip = function strip() { - while (this.length > 1 && this.words[this.length - 1] === 0) { - this.length--; - } - return this._normSign(); - }; + Promise.prototype.isCancellable = function () { + return this.isPending() && !this.isCancelled(); + }; - BN.prototype._normSign = function _normSign() { - // -0 = 0 - if (this.length === 1 && this.words[0] === 0) { - this.negative = 0; - } - return this; - }; + Promise.prototype._doInvokeOnCancel = function (onCancelCallback, internalOnly) { + if (util.isArray(onCancelCallback)) { + for (var i = 0; i < onCancelCallback.length; ++i) { + this._doInvokeOnCancel(onCancelCallback[i], internalOnly); + } + } else if (onCancelCallback !== undefined) { + if (typeof onCancelCallback === "function") { + if (!internalOnly) { + var e = tryCatch(onCancelCallback).call(this._boundValue()); + if (e === errorObj) { + this._attachExtraTrace(e.e); + async.throwLater(e.e); + } + } + } else { + onCancelCallback._resultCancelled(this); + } + } + }; - BN.prototype.inspect = function inspect() { - return (this.red ? ''; - }; + Promise.prototype._invokeOnCancel = function () { + var onCancelCallback = this._onCancel(); + this._unsetOnCancel(); + async.invoke(this._doInvokeOnCancel, this, onCancelCallback); + }; - /* - var zeros = []; - var groupSizes = []; - var groupBases = []; - var s = ''; - var i = -1; - while (++i < BN.wordSize) { - zeros[i] = s; - s += '0'; - } - groupSizes[0] = 0; - groupSizes[1] = 0; - groupBases[0] = 0; - groupBases[1] = 0; - var base = 2 - 1; - while (++base < 36 + 1) { - var groupSize = 0; - var groupBase = 1; - while (groupBase < (1 << BN.wordSize) / base) { - groupBase *= base; - groupSize += 1; - } - groupSizes[base] = groupSize; - groupBases[base] = groupBase; - } - */ + Promise.prototype._invokeInternalOnCancel = function () { + if (this.isCancellable()) { + this._doInvokeOnCancel(this._onCancel(), true); + this._unsetOnCancel(); + } + }; - var zeros = ['', '0', '00', '000', '0000', '00000', '000000', '0000000', '00000000', '000000000', '0000000000', '00000000000', '000000000000', '0000000000000', '00000000000000', '000000000000000', '0000000000000000', '00000000000000000', '000000000000000000', '0000000000000000000', '00000000000000000000', '000000000000000000000', '0000000000000000000000', '00000000000000000000000', '000000000000000000000000', '0000000000000000000000000']; + Promise.prototype._resultCancelled = function () { + this.cancel(); + }; + }; + }, { "./util": 36 }], 7: [function (_dereq_, module, exports) { + "use strict"; - var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]; + module.exports = function (NEXT_FILTER) { + var util = _dereq_("./util"); + var getKeys = _dereq_("./es5").keys; + var tryCatch = util.tryCatch; + var errorObj = util.errorObj; - var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176]; + function catchFilter(instances, cb, promise) { + return function (e) { + var boundTo = promise._boundValue(); + predicateLoop: for (var i = 0; i < instances.length; ++i) { + var item = instances[i]; - BN.prototype.toString = function toString(base, padding) { - base = base || 10; - padding = padding | 0 || 1; + if (item === Error || item != null && item.prototype instanceof Error) { + if (e instanceof item) { + return tryCatch(cb).call(boundTo, e); + } + } else if (typeof item === "function") { + var matchesPredicate = tryCatch(item).call(boundTo, e); + if (matchesPredicate === errorObj) { + return matchesPredicate; + } else if (matchesPredicate) { + return tryCatch(cb).call(boundTo, e); + } + } else if (util.isObject(e)) { + var keys = getKeys(item); + for (var j = 0; j < keys.length; ++j) { + var key = keys[j]; + if (item[key] != e[key]) { + continue predicateLoop; + } + } + return tryCatch(cb).call(boundTo, e); + } + } + return NEXT_FILTER; + }; + } - var out; - if (base === 16 || base === 'hex') { - out = ''; - var off = 0; - var carry = 0; - for (var i = 0; i < this.length; i++) { - var w = this.words[i]; - var word = ((w << off | carry) & 0xffffff).toString(16); - carry = w >>> 24 - off & 0xffffff; - if (carry !== 0 || i !== this.length - 1) { - out = zeros[6 - word.length] + word + out; - } else { - out = word + out; - } - off += 2; - if (off >= 26) { - off -= 26; - i--; - } - } - if (carry !== 0) { - out = carry.toString(16) + out; - } - while (out.length % padding !== 0) { - out = '0' + out; - } - if (this.negative !== 0) { - out = '-' + out; - } - return out; - } + return catchFilter; + }; + }, { "./es5": 13, "./util": 36 }], 8: [function (_dereq_, module, exports) { + "use strict"; - if (base === (base | 0) && base >= 2 && base <= 36) { - // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base)); - var groupSize = groupSizes[base]; - // var groupBase = Math.pow(base, groupSize); - var groupBase = groupBases[base]; - out = ''; - var c = this.clone(); - c.negative = 0; - while (!c.isZero()) { - var r = c.modn(groupBase).toString(base); - c = c.idivn(groupBase); + module.exports = function (Promise) { + var longStackTraces = false; + var contextStack = []; - if (!c.isZero()) { - out = zeros[groupSize - r.length] + r + out; - } else { - out = r + out; - } - } - if (this.isZero()) { - out = '0' + out; - } - while (out.length % padding !== 0) { - out = '0' + out; - } - if (this.negative !== 0) { - out = '-' + out; - } - return out; - } + Promise.prototype._promiseCreated = function () {}; + Promise.prototype._pushContext = function () {}; + Promise.prototype._popContext = function () { + return null; + }; + Promise._peekContext = Promise.prototype._peekContext = function () {}; - assert(false, 'Base should be between 2 and 36'); - }; + function Context() { + this._trace = new Context.CapturedTrace(peekContext()); + } + Context.prototype._pushContext = function () { + if (this._trace !== undefined) { + this._trace._promiseCreated = null; + contextStack.push(this._trace); + } + }; - BN.prototype.toNumber = function toNumber() { - var ret = this.words[0]; - if (this.length === 2) { - ret += this.words[1] * 0x4000000; - } else if (this.length === 3 && this.words[2] === 0x01) { - // NOTE: at this stage it is known that the top bit is set - ret += 0x10000000000000 + this.words[1] * 0x4000000; - } else if (this.length > 2) { - assert(false, 'Number can only safely store up to 53 bits'); - } - return this.negative !== 0 ? -ret : ret; - }; + Context.prototype._popContext = function () { + if (this._trace !== undefined) { + var trace = contextStack.pop(); + var ret = trace._promiseCreated; + trace._promiseCreated = null; + return ret; + } + return null; + }; - BN.prototype.toJSON = function toJSON() { - return this.toString(16); - }; + function createContext() { + if (longStackTraces) return new Context(); + } - BN.prototype.toBuffer = function toBuffer(endian, length) { - assert(typeof Buffer !== 'undefined'); - return this.toArrayLike(Buffer, endian, length); - }; + function peekContext() { + var lastIndex = contextStack.length - 1; + if (lastIndex >= 0) { + return contextStack[lastIndex]; + } + return undefined; + } + Context.CapturedTrace = null; + Context.create = createContext; + Context.deactivateLongStackTraces = function () {}; + Context.activateLongStackTraces = function () { + var Promise_pushContext = Promise.prototype._pushContext; + var Promise_popContext = Promise.prototype._popContext; + var Promise_PeekContext = Promise._peekContext; + var Promise_peekContext = Promise.prototype._peekContext; + var Promise_promiseCreated = Promise.prototype._promiseCreated; + Context.deactivateLongStackTraces = function () { + Promise.prototype._pushContext = Promise_pushContext; + Promise.prototype._popContext = Promise_popContext; + Promise._peekContext = Promise_PeekContext; + Promise.prototype._peekContext = Promise_peekContext; + Promise.prototype._promiseCreated = Promise_promiseCreated; + longStackTraces = false; + }; + longStackTraces = true; + Promise.prototype._pushContext = Context.prototype._pushContext; + Promise.prototype._popContext = Context.prototype._popContext; + Promise._peekContext = Promise.prototype._peekContext = peekContext; + Promise.prototype._promiseCreated = function () { + var ctx = this._peekContext(); + if (ctx && ctx._promiseCreated == null) ctx._promiseCreated = this; + }; + }; + return Context; + }; + }, {}], 9: [function (_dereq_, module, exports) { + "use strict"; - BN.prototype.toArray = function toArray(endian, length) { - return this.toArrayLike(Array, endian, length); - }; - - BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) { - var byteLength = this.byteLength(); - var reqLength = length || Math.max(1, byteLength); - assert(byteLength <= reqLength, 'byte array longer than desired length'); - assert(reqLength > 0, 'Requested array length <= 0'); - - this.strip(); - var littleEndian = endian === 'le'; - var res = new ArrayType(reqLength); + module.exports = function (Promise, Context) { + var getDomain = Promise._getDomain; + var async = Promise._async; + var Warning = _dereq_("./errors").Warning; + var util = _dereq_("./util"); + var canAttachTrace = util.canAttachTrace; + var unhandledRejectionHandled; + var possiblyUnhandledRejection; + var bluebirdFramePattern = /[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/; + var stackFramePattern = null; + var formatStack = null; + var indentStackFrames = false; + var printWarning; + var debugging = !!(util.env("BLUEBIRD_DEBUG") != 0 && (true || util.env("BLUEBIRD_DEBUG") || util.env("NODE_ENV") === "development")); - var b, i; - var q = this.clone(); - if (!littleEndian) { - // Assume big-endian - for (i = 0; i < reqLength - byteLength; i++) { - res[i] = 0; - } + var warnings = !!(util.env("BLUEBIRD_WARNINGS") != 0 && (debugging || util.env("BLUEBIRD_WARNINGS"))); - for (i = 0; !q.isZero(); i++) { - b = q.andln(0xff); - q.iushrn(8); + var longStackTraces = !!(util.env("BLUEBIRD_LONG_STACK_TRACES") != 0 && (debugging || util.env("BLUEBIRD_LONG_STACK_TRACES"))); - res[reqLength - i - 1] = b; - } - } else { - for (i = 0; !q.isZero(); i++) { - b = q.andln(0xff); - q.iushrn(8); + var wForgottenReturn = util.env("BLUEBIRD_W_FORGOTTEN_RETURN") != 0 && (warnings || !!util.env("BLUEBIRD_W_FORGOTTEN_RETURN")); - res[i] = b; - } + Promise.prototype.suppressUnhandledRejections = function () { + var target = this._target(); + target._bitField = target._bitField & ~1048576 | 524288; + }; - for (; i < reqLength; i++) { - res[i] = 0; - } - } + Promise.prototype._ensurePossibleRejectionHandled = function () { + if ((this._bitField & 524288) !== 0) return; + this._setRejectionIsUnhandled(); + async.invokeLater(this._notifyUnhandledRejection, this, undefined); + }; - return res; - }; + Promise.prototype._notifyUnhandledRejectionIsHandled = function () { + fireRejectionEvent("rejectionHandled", unhandledRejectionHandled, undefined, this); + }; - if (Math.clz32) { - BN.prototype._countBits = function _countBits(w) { - return 32 - Math.clz32(w); - }; - } else { - BN.prototype._countBits = function _countBits(w) { - var t = w; - var r = 0; - if (t >= 0x1000) { - r += 13; - t >>>= 13; - } - if (t >= 0x40) { - r += 7; - t >>>= 7; - } - if (t >= 0x8) { - r += 4; - t >>>= 4; - } - if (t >= 0x02) { - r += 2; - t >>>= 2; - } - return r + t; - }; - } + Promise.prototype._setReturnedNonUndefined = function () { + this._bitField = this._bitField | 268435456; + }; - BN.prototype._zeroBits = function _zeroBits(w) { - // Short-cut - if (w === 0) return 26; + Promise.prototype._returnedNonUndefined = function () { + return (this._bitField & 268435456) !== 0; + }; - var t = w; - var r = 0; - if ((t & 0x1fff) === 0) { - r += 13; - t >>>= 13; - } - if ((t & 0x7f) === 0) { - r += 7; - t >>>= 7; - } - if ((t & 0xf) === 0) { - r += 4; - t >>>= 4; - } - if ((t & 0x3) === 0) { - r += 2; - t >>>= 2; - } - if ((t & 0x1) === 0) { - r++; - } - return r; - }; + Promise.prototype._notifyUnhandledRejection = function () { + if (this._isRejectionUnhandled()) { + var reason = this._settledValue(); + this._setUnhandledRejectionIsNotified(); + fireRejectionEvent("unhandledRejection", possiblyUnhandledRejection, reason, this); + } + }; - // Return number of used bits in a BN - BN.prototype.bitLength = function bitLength() { - var w = this.words[this.length - 1]; - var hi = this._countBits(w); - return (this.length - 1) * 26 + hi; - }; + Promise.prototype._setUnhandledRejectionIsNotified = function () { + this._bitField = this._bitField | 262144; + }; - function toBitArray(num) { - var w = new Array(num.bitLength()); + Promise.prototype._unsetUnhandledRejectionIsNotified = function () { + this._bitField = this._bitField & ~262144; + }; - for (var bit = 0; bit < w.length; bit++) { - var off = bit / 26 | 0; - var wbit = bit % 26; + Promise.prototype._isUnhandledRejectionNotified = function () { + return (this._bitField & 262144) > 0; + }; - w[bit] = (num.words[off] & 1 << wbit) >>> wbit; - } + Promise.prototype._setRejectionIsUnhandled = function () { + this._bitField = this._bitField | 1048576; + }; - return w; - } + Promise.prototype._unsetRejectionIsUnhandled = function () { + this._bitField = this._bitField & ~1048576; + if (this._isUnhandledRejectionNotified()) { + this._unsetUnhandledRejectionIsNotified(); + this._notifyUnhandledRejectionIsHandled(); + } + }; - // Number of trailing zero bits - BN.prototype.zeroBits = function zeroBits() { - if (this.isZero()) return 0; + Promise.prototype._isRejectionUnhandled = function () { + return (this._bitField & 1048576) > 0; + }; - var r = 0; - for (var i = 0; i < this.length; i++) { - var b = this._zeroBits(this.words[i]); - r += b; - if (b !== 26) break; - } - return r; - }; + Promise.prototype._warn = function (message, shouldUseOwnTrace, promise) { + return warn(message, shouldUseOwnTrace, promise || this); + }; - BN.prototype.byteLength = function byteLength() { - return Math.ceil(this.bitLength() / 8); - }; + Promise.onPossiblyUnhandledRejection = function (fn) { + var domain = getDomain(); + possiblyUnhandledRejection = typeof fn === "function" ? domain === null ? fn : domain.bind(fn) : undefined; + }; - BN.prototype.toTwos = function toTwos(width) { - if (this.negative !== 0) { - return this.abs().inotn(width).iaddn(1); - } - return this.clone(); - }; + Promise.onUnhandledRejectionHandled = function (fn) { + var domain = getDomain(); + unhandledRejectionHandled = typeof fn === "function" ? domain === null ? fn : domain.bind(fn) : undefined; + }; - BN.prototype.fromTwos = function fromTwos(width) { - if (this.testn(width - 1)) { - return this.notn(width).iaddn(1).ineg(); - } - return this.clone(); - }; + var disableLongStackTraces = function disableLongStackTraces() {}; + Promise.longStackTraces = function () { + if (async.haveItemsQueued() && !config.longStackTraces) { + throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n"); + } + if (!config.longStackTraces && longStackTracesIsSupported()) { + var Promise_captureStackTrace = Promise.prototype._captureStackTrace; + var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace; + config.longStackTraces = true; + disableLongStackTraces = function disableLongStackTraces() { + if (async.haveItemsQueued() && !config.longStackTraces) { + throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n"); + } + Promise.prototype._captureStackTrace = Promise_captureStackTrace; + Promise.prototype._attachExtraTrace = Promise_attachExtraTrace; + Context.deactivateLongStackTraces(); + async.enableTrampoline(); + config.longStackTraces = false; + }; + Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace; + Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace; + Context.activateLongStackTraces(); + async.disableTrampolineIfNecessary(); + } + }; - BN.prototype.isNeg = function isNeg() { - return this.negative !== 0; - }; + Promise.hasLongStackTraces = function () { + return config.longStackTraces && longStackTracesIsSupported(); + }; - // Return negative clone of `this` - BN.prototype.neg = function neg() { - return this.clone().ineg(); - }; + var fireDomEvent = function () { + try { + var event = document.createEvent("CustomEvent"); + event.initCustomEvent("testingtheevent", false, true, {}); + util.global.dispatchEvent(event); + return function (name, event) { + var domEvent = document.createEvent("CustomEvent"); + domEvent.initCustomEvent(name.toLowerCase(), false, true, event); + return !util.global.dispatchEvent(domEvent); + }; + } catch (e) {} + return function () { + return false; + }; + }(); - BN.prototype.ineg = function ineg() { - if (!this.isZero()) { - this.negative ^= 1; - } + var fireGlobalEvent = function () { + if (util.isNode) { + return function () { + return process.emit.apply(process, arguments); + }; + } else { + if (!util.global) { + return function () { + return false; + }; + } + return function (name) { + var methodName = "on" + name.toLowerCase(); + var method = util.global[methodName]; + if (!method) return false; + method.apply(util.global, [].slice.call(arguments, 1)); + return true; + }; + } + }(); - return this; - }; + function generatePromiseLifecycleEventObject(name, promise) { + return { promise: promise }; + } - // Or `num` with `this` in-place - BN.prototype.iuor = function iuor(num) { - while (this.length < num.length) { - this.words[this.length++] = 0; - } + var eventToObjectGenerator = { + promiseCreated: generatePromiseLifecycleEventObject, + promiseFulfilled: generatePromiseLifecycleEventObject, + promiseRejected: generatePromiseLifecycleEventObject, + promiseResolved: generatePromiseLifecycleEventObject, + promiseCancelled: generatePromiseLifecycleEventObject, + promiseChained: function promiseChained(name, promise, child) { + return { promise: promise, child: child }; + }, + warning: function warning(name, _warning2) { + return { warning: _warning2 }; + }, + unhandledRejection: function unhandledRejection(name, reason, promise) { + return { reason: reason, promise: promise }; + }, + rejectionHandled: generatePromiseLifecycleEventObject + }; - for (var i = 0; i < num.length; i++) { - this.words[i] = this.words[i] | num.words[i]; - } + var activeFireEvent = function activeFireEvent(name) { + var globalEventFired = false; + try { + globalEventFired = fireGlobalEvent.apply(null, arguments); + } catch (e) { + async.throwLater(e); + globalEventFired = true; + } - return this.strip(); - }; + var domEventFired = false; + try { + domEventFired = fireDomEvent(name, eventToObjectGenerator[name].apply(null, arguments)); + } catch (e) { + async.throwLater(e); + domEventFired = true; + } - BN.prototype.ior = function ior(num) { - assert((this.negative | num.negative) === 0); - return this.iuor(num); - }; + return domEventFired || globalEventFired; + }; - // Or `num` with `this` - BN.prototype.or = function or(num) { - if (this.length > num.length) return this.clone().ior(num); - return num.clone().ior(this); - }; + Promise.config = function (opts) { + opts = Object(opts); + if ("longStackTraces" in opts) { + if (opts.longStackTraces) { + Promise.longStackTraces(); + } else if (!opts.longStackTraces && Promise.hasLongStackTraces()) { + disableLongStackTraces(); + } + } + if ("warnings" in opts) { + var warningsOption = opts.warnings; + config.warnings = !!warningsOption; + wForgottenReturn = config.warnings; - BN.prototype.uor = function uor(num) { - if (this.length > num.length) return this.clone().iuor(num); - return num.clone().iuor(this); - }; + if (util.isObject(warningsOption)) { + if ("wForgottenReturn" in warningsOption) { + wForgottenReturn = !!warningsOption.wForgottenReturn; + } + } + } + if ("cancellation" in opts && opts.cancellation && !config.cancellation) { + if (async.haveItemsQueued()) { + throw new Error("cannot enable cancellation after promises are in use"); + } + Promise.prototype._clearCancellationData = cancellationClearCancellationData; + Promise.prototype._propagateFrom = cancellationPropagateFrom; + Promise.prototype._onCancel = cancellationOnCancel; + Promise.prototype._setOnCancel = cancellationSetOnCancel; + Promise.prototype._attachCancellationCallback = cancellationAttachCancellationCallback; + Promise.prototype._execute = cancellationExecute; + _propagateFromFunction2 = cancellationPropagateFrom; + config.cancellation = true; + } + if ("monitoring" in opts) { + if (opts.monitoring && !config.monitoring) { + config.monitoring = true; + Promise.prototype._fireEvent = activeFireEvent; + } else if (!opts.monitoring && config.monitoring) { + config.monitoring = false; + Promise.prototype._fireEvent = defaultFireEvent; + } + } + }; - // And `num` with `this` in-place - BN.prototype.iuand = function iuand(num) { - // b = min-length(num, this) - var b; - if (this.length > num.length) { - b = num; - } else { - b = this; - } + function defaultFireEvent() { + return false; + } - for (var i = 0; i < b.length; i++) { - this.words[i] = this.words[i] & num.words[i]; - } + Promise.prototype._fireEvent = defaultFireEvent; + Promise.prototype._execute = function (executor, resolve, reject) { + try { + executor(resolve, reject); + } catch (e) { + return e; + } + }; + Promise.prototype._onCancel = function () {}; + Promise.prototype._setOnCancel = function (handler) { + ; + }; + Promise.prototype._attachCancellationCallback = function (onCancel) { + ; + }; + Promise.prototype._captureStackTrace = function () {}; + Promise.prototype._attachExtraTrace = function () {}; + Promise.prototype._clearCancellationData = function () {}; + Promise.prototype._propagateFrom = function (parent, flags) { + ; + ; + }; - this.length = b.length; + function cancellationExecute(executor, resolve, reject) { + var promise = this; + try { + executor(resolve, reject, function (onCancel) { + if (typeof onCancel !== "function") { + throw new TypeError("onCancel must be a function, got: " + util.toString(onCancel)); + } + promise._attachCancellationCallback(onCancel); + }); + } catch (e) { + return e; + } + } - return this.strip(); - }; + function cancellationAttachCancellationCallback(onCancel) { + if (!this.isCancellable()) return this; - BN.prototype.iand = function iand(num) { - assert((this.negative | num.negative) === 0); - return this.iuand(num); - }; + var previousOnCancel = this._onCancel(); + if (previousOnCancel !== undefined) { + if (util.isArray(previousOnCancel)) { + previousOnCancel.push(onCancel); + } else { + this._setOnCancel([previousOnCancel, onCancel]); + } + } else { + this._setOnCancel(onCancel); + } + } - // And `num` with `this` - BN.prototype.and = function and(num) { - if (this.length > num.length) return this.clone().iand(num); - return num.clone().iand(this); - }; + function cancellationOnCancel() { + return this._onCancelField; + } - BN.prototype.uand = function uand(num) { - if (this.length > num.length) return this.clone().iuand(num); - return num.clone().iuand(this); - }; + function cancellationSetOnCancel(onCancel) { + this._onCancelField = onCancel; + } - // Xor `num` with `this` in-place - BN.prototype.iuxor = function iuxor(num) { - // a.length > b.length - var a; - var b; - if (this.length > num.length) { - a = this; - b = num; - } else { - a = num; - b = this; - } + function cancellationClearCancellationData() { + this._cancellationParent = undefined; + this._onCancelField = undefined; + } - for (var i = 0; i < b.length; i++) { - this.words[i] = a.words[i] ^ b.words[i]; - } + function cancellationPropagateFrom(parent, flags) { + if ((flags & 1) !== 0) { + this._cancellationParent = parent; + var branchesRemainingToCancel = parent._branchesRemainingToCancel; + if (branchesRemainingToCancel === undefined) { + branchesRemainingToCancel = 0; + } + parent._branchesRemainingToCancel = branchesRemainingToCancel + 1; + } + if ((flags & 2) !== 0 && parent._isBound()) { + this._setBoundTo(parent._boundTo); + } + } - if (this !== a) { - for (; i < a.length; i++) { - this.words[i] = a.words[i]; - } - } + function bindingPropagateFrom(parent, flags) { + if ((flags & 2) !== 0 && parent._isBound()) { + this._setBoundTo(parent._boundTo); + } + } + var _propagateFromFunction2 = bindingPropagateFrom; - this.length = a.length; - - return this.strip(); - }; - - BN.prototype.ixor = function ixor(num) { - assert((this.negative | num.negative) === 0); - return this.iuxor(num); - }; + function _boundValueFunction2() { + var ret = this._boundTo; + if (ret !== undefined) { + if (ret instanceof Promise) { + if (ret.isFulfilled()) { + return ret.value(); + } else { + return undefined; + } + } + } + return ret; + } - // Xor `num` with `this` - BN.prototype.xor = function xor(num) { - if (this.length > num.length) return this.clone().ixor(num); - return num.clone().ixor(this); - }; + function longStackTracesCaptureStackTrace() { + this._trace = new CapturedTrace(this._peekContext()); + } - BN.prototype.uxor = function uxor(num) { - if (this.length > num.length) return this.clone().iuxor(num); - return num.clone().iuxor(this); - }; + function longStackTracesAttachExtraTrace(error, ignoreSelf) { + if (canAttachTrace(error)) { + var trace = this._trace; + if (trace !== undefined) { + if (ignoreSelf) trace = trace._parent; + } + if (trace !== undefined) { + trace.attachExtraTrace(error); + } else if (!error.__stackCleaned__) { + var parsed = parseStackAndMessage(error); + util.notEnumerableProp(error, "stack", parsed.message + "\n" + parsed.stack.join("\n")); + util.notEnumerableProp(error, "__stackCleaned__", true); + } + } + } - // Not ``this`` with ``width`` bitwidth - BN.prototype.inotn = function inotn(width) { - assert(typeof width === 'number' && width >= 0); + function checkForgottenReturns(returnValue, promiseCreated, name, promise, parent) { + if (returnValue === undefined && promiseCreated !== null && wForgottenReturn) { + if (parent !== undefined && parent._returnedNonUndefined()) return; - var bytesNeeded = Math.ceil(width / 26) | 0; - var bitsLeft = width % 26; + if (name) name = name + " "; + var msg = "a promise was created in a " + name + "handler but was not returned from it"; + promise._warn(msg, true, promiseCreated); + } + } - // Extend the buffer with leading zeroes - this._expand(bytesNeeded); + function deprecated(name, replacement) { + var message = name + " is deprecated and will be removed in a future version."; + if (replacement) message += " Use " + replacement + " instead."; + return warn(message); + } - if (bitsLeft > 0) { - bytesNeeded--; - } + function warn(message, shouldUseOwnTrace, promise) { + if (!config.warnings) return; + var warning = new Warning(message); + var ctx; + if (shouldUseOwnTrace) { + promise._attachExtraTrace(warning); + } else if (config.longStackTraces && (ctx = Promise._peekContext())) { + ctx.attachExtraTrace(warning); + } else { + var parsed = parseStackAndMessage(warning); + warning.stack = parsed.message + "\n" + parsed.stack.join("\n"); + } - // Handle complete words - for (var i = 0; i < bytesNeeded; i++) { - this.words[i] = ~this.words[i] & 0x3ffffff; - } + if (!activeFireEvent("warning", warning)) { + formatAndLogError(warning, "", true); + } + } - // Handle the residue - if (bitsLeft > 0) { - this.words[i] = ~this.words[i] & 0x3ffffff >> 26 - bitsLeft; - } + function reconstructStack(message, stacks) { + for (var i = 0; i < stacks.length - 1; ++i) { + stacks[i].push("From previous event:"); + stacks[i] = stacks[i].join("\n"); + } + if (i < stacks.length) { + stacks[i] = stacks[i].join("\n"); + } + return message + "\n" + stacks.join("\n"); + } - // And remove leading zeroes - return this.strip(); - }; + function removeDuplicateOrEmptyJumps(stacks) { + for (var i = 0; i < stacks.length; ++i) { + if (stacks[i].length === 0 || i + 1 < stacks.length && stacks[i][0] === stacks[i + 1][0]) { + stacks.splice(i, 1); + i--; + } + } + } - BN.prototype.notn = function notn(width) { - return this.clone().inotn(width); - }; + function removeCommonRoots(stacks) { + var current = stacks[0]; + for (var i = 1; i < stacks.length; ++i) { + var prev = stacks[i]; + var currentLastIndex = current.length - 1; + var currentLastLine = current[currentLastIndex]; + var commonRootMeetPoint = -1; - // Set `bit` of `this` - BN.prototype.setn = function setn(bit, val) { - assert(typeof bit === 'number' && bit >= 0); + for (var j = prev.length - 1; j >= 0; --j) { + if (prev[j] === currentLastLine) { + commonRootMeetPoint = j; + break; + } + } - var off = bit / 26 | 0; - var wbit = bit % 26; + for (var j = commonRootMeetPoint; j >= 0; --j) { + var line = prev[j]; + if (current[currentLastIndex] === line) { + current.pop(); + currentLastIndex--; + } else { + break; + } + } + current = prev; + } + } - this._expand(off + 1); + function cleanStack(stack) { + var ret = []; + for (var i = 0; i < stack.length; ++i) { + var line = stack[i]; + var isTraceLine = " (No stack trace)" === line || stackFramePattern.test(line); + var isInternalFrame = isTraceLine && shouldIgnore(line); + if (isTraceLine && !isInternalFrame) { + if (indentStackFrames && line.charAt(0) !== " ") { + line = " " + line; + } + ret.push(line); + } + } + return ret; + } - if (val) { - this.words[off] = this.words[off] | 1 << wbit; - } else { - this.words[off] = this.words[off] & ~(1 << wbit); - } + function stackFramesAsArray(error) { + var stack = error.stack.replace(/\s+$/g, "").split("\n"); + for (var i = 0; i < stack.length; ++i) { + var line = stack[i]; + if (" (No stack trace)" === line || stackFramePattern.test(line)) { + break; + } + } + if (i > 0) { + stack = stack.slice(i); + } + return stack; + } - return this.strip(); - }; + function parseStackAndMessage(error) { + var stack = error.stack; + var message = error.toString(); + stack = typeof stack === "string" && stack.length > 0 ? stackFramesAsArray(error) : [" (No stack trace)"]; + return { + message: message, + stack: cleanStack(stack) + }; + } - // Add `num` to `this` in-place - BN.prototype.iadd = function iadd(num) { - var r; + function formatAndLogError(error, title, isSoft) { + if (typeof console !== "undefined") { + var message; + if (util.isObject(error)) { + var stack = error.stack; + message = title + formatStack(stack, error); + } else { + message = title + String(error); + } + if (typeof printWarning === "function") { + printWarning(message, isSoft); + } else if (typeof console.log === "function" || _typeof(console.log) === "object") { + console.log(message); + } + } + } - // negative + positive - if (this.negative !== 0 && num.negative === 0) { - this.negative = 0; - r = this.isub(num); - this.negative ^= 1; - return this._normSign(); + function fireRejectionEvent(name, localHandler, reason, promise) { + var localEventFired = false; + try { + if (typeof localHandler === "function") { + localEventFired = true; + if (name === "rejectionHandled") { + localHandler(promise); + } else { + localHandler(reason, promise); + } + } + } catch (e) { + async.throwLater(e); + } - // positive + negative - } else if (this.negative === 0 && num.negative !== 0) { - num.negative = 0; - r = this.isub(num); - num.negative = 1; - return r._normSign(); - } + if (name === "unhandledRejection") { + if (!activeFireEvent(name, reason, promise) && !localEventFired) { + formatAndLogError(reason, "Unhandled rejection "); + } + } else { + activeFireEvent(name, promise); + } + } - // a.length > b.length - var a, b; - if (this.length > num.length) { - a = this; - b = num; - } else { - a = num; - b = this; - } + function formatNonError(obj) { + var str; + if (typeof obj === "function") { + str = "[function " + (obj.name || "anonymous") + "]"; + } else { + str = obj && typeof obj.toString === "function" ? obj.toString() : util.toString(obj); + var ruselessToString = /\[object [a-zA-Z0-9$_]+\]/; + if (ruselessToString.test(str)) { + try { + var newStr = JSON.stringify(obj); + str = newStr; + } catch (e) {} + } + if (str.length === 0) { + str = "(empty array)"; + } + } + return "(<" + snip(str) + ">, no stack trace)"; + } - var carry = 0; - for (var i = 0; i < b.length; i++) { - r = (a.words[i] | 0) + (b.words[i] | 0) + carry; - this.words[i] = r & 0x3ffffff; - carry = r >>> 26; - } - for (; carry !== 0 && i < a.length; i++) { - r = (a.words[i] | 0) + carry; - this.words[i] = r & 0x3ffffff; - carry = r >>> 26; - } + function snip(str) { + var maxChars = 41; + if (str.length < maxChars) { + return str; + } + return str.substr(0, maxChars - 3) + "..."; + } - this.length = a.length; - if (carry !== 0) { - this.words[this.length] = carry; - this.length++; - // Copy the rest of the words - } else if (a !== this) { - for (; i < a.length; i++) { - this.words[i] = a.words[i]; - } - } + function longStackTracesIsSupported() { + return typeof captureStackTrace === "function"; + } - return this; - }; + var shouldIgnore = function shouldIgnore() { + return false; + }; + var parseLineInfoRegex = /[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/; + function parseLineInfo(line) { + var matches = line.match(parseLineInfoRegex); + if (matches) { + return { + fileName: matches[1], + line: parseInt(matches[2], 10) + }; + } + } - // Add `num` to `this` - BN.prototype.add = function add(num) { - var res; - if (num.negative !== 0 && this.negative === 0) { - num.negative = 0; - res = this.sub(num); - num.negative ^= 1; - return res; - } else if (num.negative === 0 && this.negative !== 0) { - this.negative = 0; - res = num.sub(this); - this.negative = 1; - return res; - } + function setBounds(firstLineError, lastLineError) { + if (!longStackTracesIsSupported()) return; + var firstStackLines = firstLineError.stack.split("\n"); + var lastStackLines = lastLineError.stack.split("\n"); + var firstIndex = -1; + var lastIndex = -1; + var firstFileName; + var lastFileName; + for (var i = 0; i < firstStackLines.length; ++i) { + var result = parseLineInfo(firstStackLines[i]); + if (result) { + firstFileName = result.fileName; + firstIndex = result.line; + break; + } + } + for (var i = 0; i < lastStackLines.length; ++i) { + var result = parseLineInfo(lastStackLines[i]); + if (result) { + lastFileName = result.fileName; + lastIndex = result.line; + break; + } + } + if (firstIndex < 0 || lastIndex < 0 || !firstFileName || !lastFileName || firstFileName !== lastFileName || firstIndex >= lastIndex) { + return; + } - if (this.length > num.length) return this.clone().iadd(num); + shouldIgnore = function shouldIgnore(line) { + if (bluebirdFramePattern.test(line)) return true; + var info = parseLineInfo(line); + if (info) { + if (info.fileName === firstFileName && firstIndex <= info.line && info.line <= lastIndex) { + return true; + } + } + return false; + }; + } - return num.clone().iadd(this); - }; + function CapturedTrace(parent) { + this._parent = parent; + this._promisesCreated = 0; + var length = this._length = 1 + (parent === undefined ? 0 : parent._length); + captureStackTrace(this, CapturedTrace); + if (length > 32) this.uncycle(); + } + util.inherits(CapturedTrace, Error); + Context.CapturedTrace = CapturedTrace; - // Subtract `num` from `this` in-place - BN.prototype.isub = function isub(num) { - // this - (-num) = this + num - if (num.negative !== 0) { - num.negative = 0; - var r = this.iadd(num); - num.negative = 1; - return r._normSign(); + CapturedTrace.prototype.uncycle = function () { + var length = this._length; + if (length < 2) return; + var nodes = []; + var stackToIndex = {}; - // -this - num = -(this + num) - } else if (this.negative !== 0) { - this.negative = 0; - this.iadd(num); - this.negative = 1; - return this._normSign(); - } + for (var i = 0, node = this; node !== undefined; ++i) { + nodes.push(node); + node = node._parent; + } + length = this._length = i; + for (var i = length - 1; i >= 0; --i) { + var stack = nodes[i].stack; + if (stackToIndex[stack] === undefined) { + stackToIndex[stack] = i; + } + } + for (var i = 0; i < length; ++i) { + var currentStack = nodes[i].stack; + var index = stackToIndex[currentStack]; + if (index !== undefined && index !== i) { + if (index > 0) { + nodes[index - 1]._parent = undefined; + nodes[index - 1]._length = 1; + } + nodes[i]._parent = undefined; + nodes[i]._length = 1; + var cycleEdgeNode = i > 0 ? nodes[i - 1] : this; - // At this point both numbers are positive - var cmp = this.cmp(num); + if (index < length - 1) { + cycleEdgeNode._parent = nodes[index + 1]; + cycleEdgeNode._parent.uncycle(); + cycleEdgeNode._length = cycleEdgeNode._parent._length + 1; + } else { + cycleEdgeNode._parent = undefined; + cycleEdgeNode._length = 1; + } + var currentChildLength = cycleEdgeNode._length + 1; + for (var j = i - 2; j >= 0; --j) { + nodes[j]._length = currentChildLength; + currentChildLength++; + } + return; + } + } + }; - // Optimization - zeroify - if (cmp === 0) { - this.negative = 0; - this.length = 1; - this.words[0] = 0; - return this; - } + CapturedTrace.prototype.attachExtraTrace = function (error) { + if (error.__stackCleaned__) return; + this.uncycle(); + var parsed = parseStackAndMessage(error); + var message = parsed.message; + var stacks = [parsed.stack]; - // a > b - var a, b; - if (cmp > 0) { - a = this; - b = num; - } else { - a = num; - b = this; - } + var trace = this; + while (trace !== undefined) { + stacks.push(cleanStack(trace.stack.split("\n"))); + trace = trace._parent; + } + removeCommonRoots(stacks); + removeDuplicateOrEmptyJumps(stacks); + util.notEnumerableProp(error, "stack", reconstructStack(message, stacks)); + util.notEnumerableProp(error, "__stackCleaned__", true); + }; - var carry = 0; - for (var i = 0; i < b.length; i++) { - r = (a.words[i] | 0) - (b.words[i] | 0) + carry; - carry = r >> 26; - this.words[i] = r & 0x3ffffff; - } - for (; carry !== 0 && i < a.length; i++) { - r = (a.words[i] | 0) + carry; - carry = r >> 26; - this.words[i] = r & 0x3ffffff; - } + var captureStackTrace = function stackDetection() { + var v8stackFramePattern = /^\s*at\s*/; + var v8stackFormatter = function v8stackFormatter(stack, error) { + if (typeof stack === "string") return stack; - // Copy rest of the words - if (carry === 0 && i < a.length && a !== this) { - for (; i < a.length; i++) { - this.words[i] = a.words[i]; - } - } + if (error.name !== undefined && error.message !== undefined) { + return error.toString(); + } + return formatNonError(error); + }; - this.length = Math.max(this.length, i); + if (typeof Error.stackTraceLimit === "number" && typeof Error.captureStackTrace === "function") { + Error.stackTraceLimit += 6; + stackFramePattern = v8stackFramePattern; + formatStack = v8stackFormatter; + var captureStackTrace = Error.captureStackTrace; - if (a !== this) { - this.negative = 1; - } + shouldIgnore = function shouldIgnore(line) { + return bluebirdFramePattern.test(line); + }; + return function (receiver, ignoreUntil) { + Error.stackTraceLimit += 6; + captureStackTrace(receiver, ignoreUntil); + Error.stackTraceLimit -= 6; + }; + } + var err = new Error(); - return this.strip(); - }; + if (typeof err.stack === "string" && err.stack.split("\n")[0].indexOf("stackDetection@") >= 0) { + stackFramePattern = /@/; + formatStack = v8stackFormatter; + indentStackFrames = true; + return function captureStackTrace(o) { + o.stack = new Error().stack; + }; + } - // Subtract `num` from `this` - BN.prototype.sub = function sub(num) { - return this.clone().isub(num); - }; + var hasStackAfterThrow; + try { + throw new Error(); + } catch (e) { + hasStackAfterThrow = "stack" in e; + } + if (!("stack" in err) && hasStackAfterThrow && typeof Error.stackTraceLimit === "number") { + stackFramePattern = v8stackFramePattern; + formatStack = v8stackFormatter; + return function captureStackTrace(o) { + Error.stackTraceLimit += 6; + try { + throw new Error(); + } catch (e) { + o.stack = e.stack; + } + Error.stackTraceLimit -= 6; + }; + } - function smallMulTo(self, num, out) { - out.negative = num.negative ^ self.negative; - var len = self.length + num.length | 0; - out.length = len; - len = len - 1 | 0; + formatStack = function formatStack(stack, error) { + if (typeof stack === "string") return stack; - // Peel one iteration (compiler can't do it, because of code complexity) - var a = self.words[0] | 0; - var b = num.words[0] | 0; - var r = a * b; + if (((typeof error === "undefined" ? "undefined" : _typeof(error)) === "object" || typeof error === "function") && error.name !== undefined && error.message !== undefined) { + return error.toString(); + } + return formatNonError(error); + }; - var lo = r & 0x3ffffff; - var carry = r / 0x4000000 | 0; - out.words[0] = lo; + return null; + }([]); - for (var k = 1; k < len; k++) { - // Sum all words with the same `i + j = k` and accumulate `ncarry`, - // note that ncarry could be >= 0x3ffffff - var ncarry = carry >>> 26; - var rword = carry & 0x3ffffff; - var maxJ = Math.min(k, num.length - 1); - for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { - var i = k - j | 0; - a = self.words[i] | 0; - b = num.words[j] | 0; - r = a * b + rword; - ncarry += r / 0x4000000 | 0; - rword = r & 0x3ffffff; - } - out.words[k] = rword | 0; - carry = ncarry | 0; - } - if (carry !== 0) { - out.words[k] = carry | 0; - } else { - out.length--; - } + if (typeof console !== "undefined" && typeof console.warn !== "undefined") { + printWarning = function printWarning(message) { + console.warn(message); + }; + if (util.isNode && process.stderr.isTTY) { + printWarning = function printWarning(message, isSoft) { + var color = isSoft ? "\x1B[33m" : "\x1B[31m"; + console.warn(color + message + "\x1B[0m\n"); + }; + } else if (!util.isNode && typeof new Error().stack === "string") { + printWarning = function printWarning(message, isSoft) { + console.warn("%c" + message, isSoft ? "color: darkorange" : "color: red"); + }; + } + } - return out.strip(); - } + var config = { + warnings: warnings, + longStackTraces: false, + cancellation: false, + monitoring: false + }; - // TODO(indutny): it may be reasonable to omit it for users who don't need - // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit - // multiplication (like elliptic secp256k1). - var comb10MulTo = function comb10MulTo(self, num, out) { - var a = self.words; - var b = num.words; - var o = out.words; - var c = 0; - var lo; - var mid; - var hi; - var a0 = a[0] | 0; - var al0 = a0 & 0x1fff; - var ah0 = a0 >>> 13; - var a1 = a[1] | 0; - var al1 = a1 & 0x1fff; - var ah1 = a1 >>> 13; - var a2 = a[2] | 0; - var al2 = a2 & 0x1fff; - var ah2 = a2 >>> 13; - var a3 = a[3] | 0; - var al3 = a3 & 0x1fff; - var ah3 = a3 >>> 13; - var a4 = a[4] | 0; - var al4 = a4 & 0x1fff; - var ah4 = a4 >>> 13; - var a5 = a[5] | 0; - var al5 = a5 & 0x1fff; - var ah5 = a5 >>> 13; - var a6 = a[6] | 0; - var al6 = a6 & 0x1fff; - var ah6 = a6 >>> 13; - var a7 = a[7] | 0; - var al7 = a7 & 0x1fff; - var ah7 = a7 >>> 13; - var a8 = a[8] | 0; - var al8 = a8 & 0x1fff; - var ah8 = a8 >>> 13; - var a9 = a[9] | 0; - var al9 = a9 & 0x1fff; - var ah9 = a9 >>> 13; - var b0 = b[0] | 0; - var bl0 = b0 & 0x1fff; - var bh0 = b0 >>> 13; - var b1 = b[1] | 0; - var bl1 = b1 & 0x1fff; - var bh1 = b1 >>> 13; - var b2 = b[2] | 0; - var bl2 = b2 & 0x1fff; - var bh2 = b2 >>> 13; - var b3 = b[3] | 0; - var bl3 = b3 & 0x1fff; - var bh3 = b3 >>> 13; - var b4 = b[4] | 0; - var bl4 = b4 & 0x1fff; - var bh4 = b4 >>> 13; - var b5 = b[5] | 0; - var bl5 = b5 & 0x1fff; - var bh5 = b5 >>> 13; - var b6 = b[6] | 0; - var bl6 = b6 & 0x1fff; - var bh6 = b6 >>> 13; - var b7 = b[7] | 0; - var bl7 = b7 & 0x1fff; - var bh7 = b7 >>> 13; - var b8 = b[8] | 0; - var bl8 = b8 & 0x1fff; - var bh8 = b8 >>> 13; - var b9 = b[9] | 0; - var bl9 = b9 & 0x1fff; - var bh9 = b9 >>> 13; + if (longStackTraces) Promise.longStackTraces(); - out.negative = self.negative ^ num.negative; - out.length = 19; - /* k = 0 */ - lo = Math.imul(al0, bl0); - mid = Math.imul(al0, bh0); - mid = mid + Math.imul(ah0, bl0) | 0; - hi = Math.imul(ah0, bh0); - var w0 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0; - w0 &= 0x3ffffff; - /* k = 1 */ - lo = Math.imul(al1, bl0); - mid = Math.imul(al1, bh0); - mid = mid + Math.imul(ah1, bl0) | 0; - hi = Math.imul(ah1, bh0); - lo = lo + Math.imul(al0, bl1) | 0; - mid = mid + Math.imul(al0, bh1) | 0; - mid = mid + Math.imul(ah0, bl1) | 0; - hi = hi + Math.imul(ah0, bh1) | 0; - var w1 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0; - w1 &= 0x3ffffff; - /* k = 2 */ - lo = Math.imul(al2, bl0); - mid = Math.imul(al2, bh0); - mid = mid + Math.imul(ah2, bl0) | 0; - hi = Math.imul(ah2, bh0); - lo = lo + Math.imul(al1, bl1) | 0; - mid = mid + Math.imul(al1, bh1) | 0; - mid = mid + Math.imul(ah1, bl1) | 0; - hi = hi + Math.imul(ah1, bh1) | 0; - lo = lo + Math.imul(al0, bl2) | 0; - mid = mid + Math.imul(al0, bh2) | 0; - mid = mid + Math.imul(ah0, bl2) | 0; - hi = hi + Math.imul(ah0, bh2) | 0; - var w2 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w2 >>> 26) | 0; - w2 &= 0x3ffffff; - /* k = 3 */ - lo = Math.imul(al3, bl0); - mid = Math.imul(al3, bh0); - mid = mid + Math.imul(ah3, bl0) | 0; - hi = Math.imul(ah3, bh0); - lo = lo + Math.imul(al2, bl1) | 0; - mid = mid + Math.imul(al2, bh1) | 0; - mid = mid + Math.imul(ah2, bl1) | 0; - hi = hi + Math.imul(ah2, bh1) | 0; - lo = lo + Math.imul(al1, bl2) | 0; - mid = mid + Math.imul(al1, bh2) | 0; - mid = mid + Math.imul(ah1, bl2) | 0; - hi = hi + Math.imul(ah1, bh2) | 0; - lo = lo + Math.imul(al0, bl3) | 0; - mid = mid + Math.imul(al0, bh3) | 0; - mid = mid + Math.imul(ah0, bl3) | 0; - hi = hi + Math.imul(ah0, bh3) | 0; - var w3 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w3 >>> 26) | 0; - w3 &= 0x3ffffff; - /* k = 4 */ - lo = Math.imul(al4, bl0); - mid = Math.imul(al4, bh0); - mid = mid + Math.imul(ah4, bl0) | 0; - hi = Math.imul(ah4, bh0); - lo = lo + Math.imul(al3, bl1) | 0; - mid = mid + Math.imul(al3, bh1) | 0; - mid = mid + Math.imul(ah3, bl1) | 0; - hi = hi + Math.imul(ah3, bh1) | 0; - lo = lo + Math.imul(al2, bl2) | 0; - mid = mid + Math.imul(al2, bh2) | 0; - mid = mid + Math.imul(ah2, bl2) | 0; - hi = hi + Math.imul(ah2, bh2) | 0; - lo = lo + Math.imul(al1, bl3) | 0; - mid = mid + Math.imul(al1, bh3) | 0; - mid = mid + Math.imul(ah1, bl3) | 0; - hi = hi + Math.imul(ah1, bh3) | 0; - lo = lo + Math.imul(al0, bl4) | 0; - mid = mid + Math.imul(al0, bh4) | 0; - mid = mid + Math.imul(ah0, bl4) | 0; - hi = hi + Math.imul(ah0, bh4) | 0; - var w4 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0; - w4 &= 0x3ffffff; - /* k = 5 */ - lo = Math.imul(al5, bl0); - mid = Math.imul(al5, bh0); - mid = mid + Math.imul(ah5, bl0) | 0; - hi = Math.imul(ah5, bh0); - lo = lo + Math.imul(al4, bl1) | 0; - mid = mid + Math.imul(al4, bh1) | 0; - mid = mid + Math.imul(ah4, bl1) | 0; - hi = hi + Math.imul(ah4, bh1) | 0; - lo = lo + Math.imul(al3, bl2) | 0; - mid = mid + Math.imul(al3, bh2) | 0; - mid = mid + Math.imul(ah3, bl2) | 0; - hi = hi + Math.imul(ah3, bh2) | 0; - lo = lo + Math.imul(al2, bl3) | 0; - mid = mid + Math.imul(al2, bh3) | 0; - mid = mid + Math.imul(ah2, bl3) | 0; - hi = hi + Math.imul(ah2, bh3) | 0; - lo = lo + Math.imul(al1, bl4) | 0; - mid = mid + Math.imul(al1, bh4) | 0; - mid = mid + Math.imul(ah1, bl4) | 0; - hi = hi + Math.imul(ah1, bh4) | 0; - lo = lo + Math.imul(al0, bl5) | 0; - mid = mid + Math.imul(al0, bh5) | 0; - mid = mid + Math.imul(ah0, bl5) | 0; - hi = hi + Math.imul(ah0, bh5) | 0; - var w5 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0; - w5 &= 0x3ffffff; - /* k = 6 */ - lo = Math.imul(al6, bl0); - mid = Math.imul(al6, bh0); - mid = mid + Math.imul(ah6, bl0) | 0; - hi = Math.imul(ah6, bh0); - lo = lo + Math.imul(al5, bl1) | 0; - mid = mid + Math.imul(al5, bh1) | 0; - mid = mid + Math.imul(ah5, bl1) | 0; - hi = hi + Math.imul(ah5, bh1) | 0; - lo = lo + Math.imul(al4, bl2) | 0; - mid = mid + Math.imul(al4, bh2) | 0; - mid = mid + Math.imul(ah4, bl2) | 0; - hi = hi + Math.imul(ah4, bh2) | 0; - lo = lo + Math.imul(al3, bl3) | 0; - mid = mid + Math.imul(al3, bh3) | 0; - mid = mid + Math.imul(ah3, bl3) | 0; - hi = hi + Math.imul(ah3, bh3) | 0; - lo = lo + Math.imul(al2, bl4) | 0; - mid = mid + Math.imul(al2, bh4) | 0; - mid = mid + Math.imul(ah2, bl4) | 0; - hi = hi + Math.imul(ah2, bh4) | 0; - lo = lo + Math.imul(al1, bl5) | 0; - mid = mid + Math.imul(al1, bh5) | 0; - mid = mid + Math.imul(ah1, bl5) | 0; - hi = hi + Math.imul(ah1, bh5) | 0; - lo = lo + Math.imul(al0, bl6) | 0; - mid = mid + Math.imul(al0, bh6) | 0; - mid = mid + Math.imul(ah0, bl6) | 0; - hi = hi + Math.imul(ah0, bh6) | 0; - var w6 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0; - w6 &= 0x3ffffff; - /* k = 7 */ - lo = Math.imul(al7, bl0); - mid = Math.imul(al7, bh0); - mid = mid + Math.imul(ah7, bl0) | 0; - hi = Math.imul(ah7, bh0); - lo = lo + Math.imul(al6, bl1) | 0; - mid = mid + Math.imul(al6, bh1) | 0; - mid = mid + Math.imul(ah6, bl1) | 0; - hi = hi + Math.imul(ah6, bh1) | 0; - lo = lo + Math.imul(al5, bl2) | 0; - mid = mid + Math.imul(al5, bh2) | 0; - mid = mid + Math.imul(ah5, bl2) | 0; - hi = hi + Math.imul(ah5, bh2) | 0; - lo = lo + Math.imul(al4, bl3) | 0; - mid = mid + Math.imul(al4, bh3) | 0; - mid = mid + Math.imul(ah4, bl3) | 0; - hi = hi + Math.imul(ah4, bh3) | 0; - lo = lo + Math.imul(al3, bl4) | 0; - mid = mid + Math.imul(al3, bh4) | 0; - mid = mid + Math.imul(ah3, bl4) | 0; - hi = hi + Math.imul(ah3, bh4) | 0; - lo = lo + Math.imul(al2, bl5) | 0; - mid = mid + Math.imul(al2, bh5) | 0; - mid = mid + Math.imul(ah2, bl5) | 0; - hi = hi + Math.imul(ah2, bh5) | 0; - lo = lo + Math.imul(al1, bl6) | 0; - mid = mid + Math.imul(al1, bh6) | 0; - mid = mid + Math.imul(ah1, bl6) | 0; - hi = hi + Math.imul(ah1, bh6) | 0; - lo = lo + Math.imul(al0, bl7) | 0; - mid = mid + Math.imul(al0, bh7) | 0; - mid = mid + Math.imul(ah0, bl7) | 0; - hi = hi + Math.imul(ah0, bh7) | 0; - var w7 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0; - w7 &= 0x3ffffff; - /* k = 8 */ - lo = Math.imul(al8, bl0); - mid = Math.imul(al8, bh0); - mid = mid + Math.imul(ah8, bl0) | 0; - hi = Math.imul(ah8, bh0); - lo = lo + Math.imul(al7, bl1) | 0; - mid = mid + Math.imul(al7, bh1) | 0; - mid = mid + Math.imul(ah7, bl1) | 0; - hi = hi + Math.imul(ah7, bh1) | 0; - lo = lo + Math.imul(al6, bl2) | 0; - mid = mid + Math.imul(al6, bh2) | 0; - mid = mid + Math.imul(ah6, bl2) | 0; - hi = hi + Math.imul(ah6, bh2) | 0; - lo = lo + Math.imul(al5, bl3) | 0; - mid = mid + Math.imul(al5, bh3) | 0; - mid = mid + Math.imul(ah5, bl3) | 0; - hi = hi + Math.imul(ah5, bh3) | 0; - lo = lo + Math.imul(al4, bl4) | 0; - mid = mid + Math.imul(al4, bh4) | 0; - mid = mid + Math.imul(ah4, bl4) | 0; - hi = hi + Math.imul(ah4, bh4) | 0; - lo = lo + Math.imul(al3, bl5) | 0; - mid = mid + Math.imul(al3, bh5) | 0; - mid = mid + Math.imul(ah3, bl5) | 0; - hi = hi + Math.imul(ah3, bh5) | 0; - lo = lo + Math.imul(al2, bl6) | 0; - mid = mid + Math.imul(al2, bh6) | 0; - mid = mid + Math.imul(ah2, bl6) | 0; - hi = hi + Math.imul(ah2, bh6) | 0; - lo = lo + Math.imul(al1, bl7) | 0; - mid = mid + Math.imul(al1, bh7) | 0; - mid = mid + Math.imul(ah1, bl7) | 0; - hi = hi + Math.imul(ah1, bh7) | 0; - lo = lo + Math.imul(al0, bl8) | 0; - mid = mid + Math.imul(al0, bh8) | 0; - mid = mid + Math.imul(ah0, bl8) | 0; - hi = hi + Math.imul(ah0, bh8) | 0; - var w8 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0; - w8 &= 0x3ffffff; - /* k = 9 */ - lo = Math.imul(al9, bl0); - mid = Math.imul(al9, bh0); - mid = mid + Math.imul(ah9, bl0) | 0; - hi = Math.imul(ah9, bh0); - lo = lo + Math.imul(al8, bl1) | 0; - mid = mid + Math.imul(al8, bh1) | 0; - mid = mid + Math.imul(ah8, bl1) | 0; - hi = hi + Math.imul(ah8, bh1) | 0; - lo = lo + Math.imul(al7, bl2) | 0; - mid = mid + Math.imul(al7, bh2) | 0; - mid = mid + Math.imul(ah7, bl2) | 0; - hi = hi + Math.imul(ah7, bh2) | 0; - lo = lo + Math.imul(al6, bl3) | 0; - mid = mid + Math.imul(al6, bh3) | 0; - mid = mid + Math.imul(ah6, bl3) | 0; - hi = hi + Math.imul(ah6, bh3) | 0; - lo = lo + Math.imul(al5, bl4) | 0; - mid = mid + Math.imul(al5, bh4) | 0; - mid = mid + Math.imul(ah5, bl4) | 0; - hi = hi + Math.imul(ah5, bh4) | 0; - lo = lo + Math.imul(al4, bl5) | 0; - mid = mid + Math.imul(al4, bh5) | 0; - mid = mid + Math.imul(ah4, bl5) | 0; - hi = hi + Math.imul(ah4, bh5) | 0; - lo = lo + Math.imul(al3, bl6) | 0; - mid = mid + Math.imul(al3, bh6) | 0; - mid = mid + Math.imul(ah3, bl6) | 0; - hi = hi + Math.imul(ah3, bh6) | 0; - lo = lo + Math.imul(al2, bl7) | 0; - mid = mid + Math.imul(al2, bh7) | 0; - mid = mid + Math.imul(ah2, bl7) | 0; - hi = hi + Math.imul(ah2, bh7) | 0; - lo = lo + Math.imul(al1, bl8) | 0; - mid = mid + Math.imul(al1, bh8) | 0; - mid = mid + Math.imul(ah1, bl8) | 0; - hi = hi + Math.imul(ah1, bh8) | 0; - lo = lo + Math.imul(al0, bl9) | 0; - mid = mid + Math.imul(al0, bh9) | 0; - mid = mid + Math.imul(ah0, bl9) | 0; - hi = hi + Math.imul(ah0, bh9) | 0; - var w9 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0; - w9 &= 0x3ffffff; - /* k = 10 */ - lo = Math.imul(al9, bl1); - mid = Math.imul(al9, bh1); - mid = mid + Math.imul(ah9, bl1) | 0; - hi = Math.imul(ah9, bh1); - lo = lo + Math.imul(al8, bl2) | 0; - mid = mid + Math.imul(al8, bh2) | 0; - mid = mid + Math.imul(ah8, bl2) | 0; - hi = hi + Math.imul(ah8, bh2) | 0; - lo = lo + Math.imul(al7, bl3) | 0; - mid = mid + Math.imul(al7, bh3) | 0; - mid = mid + Math.imul(ah7, bl3) | 0; - hi = hi + Math.imul(ah7, bh3) | 0; - lo = lo + Math.imul(al6, bl4) | 0; - mid = mid + Math.imul(al6, bh4) | 0; - mid = mid + Math.imul(ah6, bl4) | 0; - hi = hi + Math.imul(ah6, bh4) | 0; - lo = lo + Math.imul(al5, bl5) | 0; - mid = mid + Math.imul(al5, bh5) | 0; - mid = mid + Math.imul(ah5, bl5) | 0; - hi = hi + Math.imul(ah5, bh5) | 0; - lo = lo + Math.imul(al4, bl6) | 0; - mid = mid + Math.imul(al4, bh6) | 0; - mid = mid + Math.imul(ah4, bl6) | 0; - hi = hi + Math.imul(ah4, bh6) | 0; - lo = lo + Math.imul(al3, bl7) | 0; - mid = mid + Math.imul(al3, bh7) | 0; - mid = mid + Math.imul(ah3, bl7) | 0; - hi = hi + Math.imul(ah3, bh7) | 0; - lo = lo + Math.imul(al2, bl8) | 0; - mid = mid + Math.imul(al2, bh8) | 0; - mid = mid + Math.imul(ah2, bl8) | 0; - hi = hi + Math.imul(ah2, bh8) | 0; - lo = lo + Math.imul(al1, bl9) | 0; - mid = mid + Math.imul(al1, bh9) | 0; - mid = mid + Math.imul(ah1, bl9) | 0; - hi = hi + Math.imul(ah1, bh9) | 0; - var w10 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0; - w10 &= 0x3ffffff; - /* k = 11 */ - lo = Math.imul(al9, bl2); - mid = Math.imul(al9, bh2); - mid = mid + Math.imul(ah9, bl2) | 0; - hi = Math.imul(ah9, bh2); - lo = lo + Math.imul(al8, bl3) | 0; - mid = mid + Math.imul(al8, bh3) | 0; - mid = mid + Math.imul(ah8, bl3) | 0; - hi = hi + Math.imul(ah8, bh3) | 0; - lo = lo + Math.imul(al7, bl4) | 0; - mid = mid + Math.imul(al7, bh4) | 0; - mid = mid + Math.imul(ah7, bl4) | 0; - hi = hi + Math.imul(ah7, bh4) | 0; - lo = lo + Math.imul(al6, bl5) | 0; - mid = mid + Math.imul(al6, bh5) | 0; - mid = mid + Math.imul(ah6, bl5) | 0; - hi = hi + Math.imul(ah6, bh5) | 0; - lo = lo + Math.imul(al5, bl6) | 0; - mid = mid + Math.imul(al5, bh6) | 0; - mid = mid + Math.imul(ah5, bl6) | 0; - hi = hi + Math.imul(ah5, bh6) | 0; - lo = lo + Math.imul(al4, bl7) | 0; - mid = mid + Math.imul(al4, bh7) | 0; - mid = mid + Math.imul(ah4, bl7) | 0; - hi = hi + Math.imul(ah4, bh7) | 0; - lo = lo + Math.imul(al3, bl8) | 0; - mid = mid + Math.imul(al3, bh8) | 0; - mid = mid + Math.imul(ah3, bl8) | 0; - hi = hi + Math.imul(ah3, bh8) | 0; - lo = lo + Math.imul(al2, bl9) | 0; - mid = mid + Math.imul(al2, bh9) | 0; - mid = mid + Math.imul(ah2, bl9) | 0; - hi = hi + Math.imul(ah2, bh9) | 0; - var w11 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0; - w11 &= 0x3ffffff; - /* k = 12 */ - lo = Math.imul(al9, bl3); - mid = Math.imul(al9, bh3); - mid = mid + Math.imul(ah9, bl3) | 0; - hi = Math.imul(ah9, bh3); - lo = lo + Math.imul(al8, bl4) | 0; - mid = mid + Math.imul(al8, bh4) | 0; - mid = mid + Math.imul(ah8, bl4) | 0; - hi = hi + Math.imul(ah8, bh4) | 0; - lo = lo + Math.imul(al7, bl5) | 0; - mid = mid + Math.imul(al7, bh5) | 0; - mid = mid + Math.imul(ah7, bl5) | 0; - hi = hi + Math.imul(ah7, bh5) | 0; - lo = lo + Math.imul(al6, bl6) | 0; - mid = mid + Math.imul(al6, bh6) | 0; - mid = mid + Math.imul(ah6, bl6) | 0; - hi = hi + Math.imul(ah6, bh6) | 0; - lo = lo + Math.imul(al5, bl7) | 0; - mid = mid + Math.imul(al5, bh7) | 0; - mid = mid + Math.imul(ah5, bl7) | 0; - hi = hi + Math.imul(ah5, bh7) | 0; - lo = lo + Math.imul(al4, bl8) | 0; - mid = mid + Math.imul(al4, bh8) | 0; - mid = mid + Math.imul(ah4, bl8) | 0; - hi = hi + Math.imul(ah4, bh8) | 0; - lo = lo + Math.imul(al3, bl9) | 0; - mid = mid + Math.imul(al3, bh9) | 0; - mid = mid + Math.imul(ah3, bl9) | 0; - hi = hi + Math.imul(ah3, bh9) | 0; - var w12 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0; - w12 &= 0x3ffffff; - /* k = 13 */ - lo = Math.imul(al9, bl4); - mid = Math.imul(al9, bh4); - mid = mid + Math.imul(ah9, bl4) | 0; - hi = Math.imul(ah9, bh4); - lo = lo + Math.imul(al8, bl5) | 0; - mid = mid + Math.imul(al8, bh5) | 0; - mid = mid + Math.imul(ah8, bl5) | 0; - hi = hi + Math.imul(ah8, bh5) | 0; - lo = lo + Math.imul(al7, bl6) | 0; - mid = mid + Math.imul(al7, bh6) | 0; - mid = mid + Math.imul(ah7, bl6) | 0; - hi = hi + Math.imul(ah7, bh6) | 0; - lo = lo + Math.imul(al6, bl7) | 0; - mid = mid + Math.imul(al6, bh7) | 0; - mid = mid + Math.imul(ah6, bl7) | 0; - hi = hi + Math.imul(ah6, bh7) | 0; - lo = lo + Math.imul(al5, bl8) | 0; - mid = mid + Math.imul(al5, bh8) | 0; - mid = mid + Math.imul(ah5, bl8) | 0; - hi = hi + Math.imul(ah5, bh8) | 0; - lo = lo + Math.imul(al4, bl9) | 0; - mid = mid + Math.imul(al4, bh9) | 0; - mid = mid + Math.imul(ah4, bl9) | 0; - hi = hi + Math.imul(ah4, bh9) | 0; - var w13 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0; - w13 &= 0x3ffffff; - /* k = 14 */ - lo = Math.imul(al9, bl5); - mid = Math.imul(al9, bh5); - mid = mid + Math.imul(ah9, bl5) | 0; - hi = Math.imul(ah9, bh5); - lo = lo + Math.imul(al8, bl6) | 0; - mid = mid + Math.imul(al8, bh6) | 0; - mid = mid + Math.imul(ah8, bl6) | 0; - hi = hi + Math.imul(ah8, bh6) | 0; - lo = lo + Math.imul(al7, bl7) | 0; - mid = mid + Math.imul(al7, bh7) | 0; - mid = mid + Math.imul(ah7, bl7) | 0; - hi = hi + Math.imul(ah7, bh7) | 0; - lo = lo + Math.imul(al6, bl8) | 0; - mid = mid + Math.imul(al6, bh8) | 0; - mid = mid + Math.imul(ah6, bl8) | 0; - hi = hi + Math.imul(ah6, bh8) | 0; - lo = lo + Math.imul(al5, bl9) | 0; - mid = mid + Math.imul(al5, bh9) | 0; - mid = mid + Math.imul(ah5, bl9) | 0; - hi = hi + Math.imul(ah5, bh9) | 0; - var w14 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0; - w14 &= 0x3ffffff; - /* k = 15 */ - lo = Math.imul(al9, bl6); - mid = Math.imul(al9, bh6); - mid = mid + Math.imul(ah9, bl6) | 0; - hi = Math.imul(ah9, bh6); - lo = lo + Math.imul(al8, bl7) | 0; - mid = mid + Math.imul(al8, bh7) | 0; - mid = mid + Math.imul(ah8, bl7) | 0; - hi = hi + Math.imul(ah8, bh7) | 0; - lo = lo + Math.imul(al7, bl8) | 0; - mid = mid + Math.imul(al7, bh8) | 0; - mid = mid + Math.imul(ah7, bl8) | 0; - hi = hi + Math.imul(ah7, bh8) | 0; - lo = lo + Math.imul(al6, bl9) | 0; - mid = mid + Math.imul(al6, bh9) | 0; - mid = mid + Math.imul(ah6, bl9) | 0; - hi = hi + Math.imul(ah6, bh9) | 0; - var w15 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0; - w15 &= 0x3ffffff; - /* k = 16 */ - lo = Math.imul(al9, bl7); - mid = Math.imul(al9, bh7); - mid = mid + Math.imul(ah9, bl7) | 0; - hi = Math.imul(ah9, bh7); - lo = lo + Math.imul(al8, bl8) | 0; - mid = mid + Math.imul(al8, bh8) | 0; - mid = mid + Math.imul(ah8, bl8) | 0; - hi = hi + Math.imul(ah8, bh8) | 0; - lo = lo + Math.imul(al7, bl9) | 0; - mid = mid + Math.imul(al7, bh9) | 0; - mid = mid + Math.imul(ah7, bl9) | 0; - hi = hi + Math.imul(ah7, bh9) | 0; - var w16 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0; - w16 &= 0x3ffffff; - /* k = 17 */ - lo = Math.imul(al9, bl8); - mid = Math.imul(al9, bh8); - mid = mid + Math.imul(ah9, bl8) | 0; - hi = Math.imul(ah9, bh8); - lo = lo + Math.imul(al8, bl9) | 0; - mid = mid + Math.imul(al8, bh9) | 0; - mid = mid + Math.imul(ah8, bl9) | 0; - hi = hi + Math.imul(ah8, bh9) | 0; - var w17 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0; - w17 &= 0x3ffffff; - /* k = 18 */ - lo = Math.imul(al9, bl9); - mid = Math.imul(al9, bh9); - mid = mid + Math.imul(ah9, bl9) | 0; - hi = Math.imul(ah9, bh9); - var w18 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0; - w18 &= 0x3ffffff; - o[0] = w0; - o[1] = w1; - o[2] = w2; - o[3] = w3; - o[4] = w4; - o[5] = w5; - o[6] = w6; - o[7] = w7; - o[8] = w8; - o[9] = w9; - o[10] = w10; - o[11] = w11; - o[12] = w12; - o[13] = w13; - o[14] = w14; - o[15] = w15; - o[16] = w16; - o[17] = w17; - o[18] = w18; - if (c !== 0) { - o[19] = c; - out.length++; - } - return out; - }; - - // Polyfill comb - if (!Math.imul) { - comb10MulTo = smallMulTo; - } - - function bigMulTo(self, num, out) { - out.negative = num.negative ^ self.negative; - out.length = self.length + num.length; - - var carry = 0; - var hncarry = 0; - for (var k = 0; k < out.length - 1; k++) { - // Sum all words with the same `i + j = k` and accumulate `ncarry`, - // note that ncarry could be >= 0x3ffffff - var ncarry = hncarry; - hncarry = 0; - var rword = carry & 0x3ffffff; - var maxJ = Math.min(k, num.length - 1); - for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { - var i = k - j; - var a = self.words[i] | 0; - var b = num.words[j] | 0; - var r = a * b; - - var lo = r & 0x3ffffff; - ncarry = ncarry + (r / 0x4000000 | 0) | 0; - lo = lo + rword | 0; - rword = lo & 0x3ffffff; - ncarry = ncarry + (lo >>> 26) | 0; - - hncarry += ncarry >>> 26; - ncarry &= 0x3ffffff; - } - out.words[k] = rword; - carry = ncarry; - ncarry = hncarry; - } - if (carry !== 0) { - out.words[k] = carry; - } else { - out.length--; - } - - return out.strip(); - } - - function jumboMulTo(self, num, out) { - var fftm = new FFTM(); - return fftm.mulp(self, num, out); - } - - BN.prototype.mulTo = function mulTo(num, out) { - var res; - var len = this.length + num.length; - if (this.length === 10 && num.length === 10) { - res = comb10MulTo(this, num, out); - } else if (len < 63) { - res = smallMulTo(this, num, out); - } else if (len < 1024) { - res = bigMulTo(this, num, out); - } else { - res = jumboMulTo(this, num, out); - } - - return res; - }; + return { + longStackTraces: function longStackTraces() { + return config.longStackTraces; + }, + warnings: function warnings() { + return config.warnings; + }, + cancellation: function cancellation() { + return config.cancellation; + }, + monitoring: function monitoring() { + return config.monitoring; + }, + propagateFromFunction: function propagateFromFunction() { + return _propagateFromFunction2; + }, + boundValueFunction: function boundValueFunction() { + return _boundValueFunction2; + }, + checkForgottenReturns: checkForgottenReturns, + setBounds: setBounds, + warn: warn, + deprecated: deprecated, + CapturedTrace: CapturedTrace, + fireDomEvent: fireDomEvent, + fireGlobalEvent: fireGlobalEvent + }; + }; + }, { "./errors": 12, "./util": 36 }], 10: [function (_dereq_, module, exports) { + "use strict"; - // Cooley-Tukey algorithm for FFT - // slightly revisited to rely on looping instead of recursion + module.exports = function (Promise) { + function returner() { + return this.value; + } + function thrower() { + throw this.reason; + } - function FFTM(x, y) { - this.x = x; - this.y = y; - } + Promise.prototype["return"] = Promise.prototype.thenReturn = function (value) { + if (value instanceof Promise) value.suppressUnhandledRejections(); + return this._then(returner, undefined, undefined, { value: value }, undefined); + }; - FFTM.prototype.makeRBT = function makeRBT(N) { - var t = new Array(N); - var l = BN.prototype._countBits(N) - 1; - for (var i = 0; i < N; i++) { - t[i] = this.revBin(i, l, N); - } + Promise.prototype["throw"] = Promise.prototype.thenThrow = function (reason) { + return this._then(thrower, undefined, undefined, { reason: reason }, undefined); + }; - return t; - }; + Promise.prototype.catchThrow = function (reason) { + if (arguments.length <= 1) { + return this._then(undefined, thrower, undefined, { reason: reason }, undefined); + } else { + var _reason = arguments[1]; + var handler = function handler() { + throw _reason; + }; + return this.caught(reason, handler); + } + }; - // Returns binary-reversed representation of `x` - FFTM.prototype.revBin = function revBin(x, l, N) { - if (x === 0 || x === N - 1) return x; + Promise.prototype.catchReturn = function (value) { + if (arguments.length <= 1) { + if (value instanceof Promise) value.suppressUnhandledRejections(); + return this._then(undefined, returner, undefined, { value: value }, undefined); + } else { + var _value = arguments[1]; + if (_value instanceof Promise) _value.suppressUnhandledRejections(); + var handler = function handler() { + return _value; + }; + return this.caught(value, handler); + } + }; + }; + }, {}], 11: [function (_dereq_, module, exports) { + "use strict"; - var rb = 0; - for (var i = 0; i < l; i++) { - rb |= (x & 1) << l - i - 1; - x >>= 1; - } + module.exports = function (Promise, INTERNAL) { + var PromiseReduce = Promise.reduce; + var PromiseAll = Promise.all; - return rb; - }; + function promiseAllThis() { + return PromiseAll(this); + } - // Performs "tweedling" phase, therefore 'emulating' - // behaviour of the recursive algorithm - FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) { - for (var i = 0; i < N; i++) { - rtws[i] = rws[rbt[i]]; - itws[i] = iws[rbt[i]]; - } - }; + function PromiseMapSeries(promises, fn) { + return PromiseReduce(promises, fn, INTERNAL, INTERNAL); + } - FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) { - this.permute(rbt, rws, iws, rtws, itws, N); + Promise.prototype.each = function (fn) { + return this.mapSeries(fn)._then(promiseAllThis, undefined, undefined, this, undefined); + }; - for (var s = 1; s < N; s <<= 1) { - var l = s << 1; + Promise.prototype.mapSeries = function (fn) { + return PromiseReduce(this, fn, INTERNAL, INTERNAL); + }; - var rtwdf = Math.cos(2 * Math.PI / l); - var itwdf = Math.sin(2 * Math.PI / l); + Promise.each = function (promises, fn) { + return PromiseMapSeries(promises, fn)._then(promiseAllThis, undefined, undefined, promises, undefined); + }; - for (var p = 0; p < N; p += l) { - var rtwdf_ = rtwdf; - var itwdf_ = itwdf; + Promise.mapSeries = PromiseMapSeries; + }; + }, {}], 12: [function (_dereq_, module, exports) { + "use strict"; - for (var j = 0; j < s; j++) { - var re = rtws[p + j]; - var ie = itws[p + j]; + var es5 = _dereq_("./es5"); + var Objectfreeze = es5.freeze; + var util = _dereq_("./util"); + var inherits = util.inherits; + var notEnumerableProp = util.notEnumerableProp; - var ro = rtws[p + j + s]; - var io = itws[p + j + s]; + function subError(nameProperty, defaultMessage) { + function SubError(message) { + if (!(this instanceof SubError)) return new SubError(message); + notEnumerableProp(this, "message", typeof message === "string" ? message : defaultMessage); + notEnumerableProp(this, "name", nameProperty); + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } else { + Error.call(this); + } + } + inherits(SubError, Error); + return SubError; + } - var rx = rtwdf_ * ro - itwdf_ * io; + var _TypeError, _RangeError; + var Warning = subError("Warning", "warning"); + var CancellationError = subError("CancellationError", "cancellation error"); + var TimeoutError = subError("TimeoutError", "timeout error"); + var AggregateError = subError("AggregateError", "aggregate error"); + try { + _TypeError = TypeError; + _RangeError = RangeError; + } catch (e) { + _TypeError = subError("TypeError", "type error"); + _RangeError = subError("RangeError", "range error"); + } - io = rtwdf_ * io + itwdf_ * ro; - ro = rx; + var methods = ("join pop push shift unshift slice filter forEach some " + "every map indexOf lastIndexOf reduce reduceRight sort reverse").split(" "); - rtws[p + j] = re + ro; - itws[p + j] = ie + io; + for (var i = 0; i < methods.length; ++i) { + if (typeof Array.prototype[methods[i]] === "function") { + AggregateError.prototype[methods[i]] = Array.prototype[methods[i]]; + } + } - rtws[p + j + s] = re - ro; - itws[p + j + s] = ie - io; + es5.defineProperty(AggregateError.prototype, "length", { + value: 0, + configurable: false, + writable: true, + enumerable: true + }); + AggregateError.prototype["isOperational"] = true; + var level = 0; + AggregateError.prototype.toString = function () { + var indent = Array(level * 4 + 1).join(" "); + var ret = "\n" + indent + "AggregateError of:" + "\n"; + level++; + indent = Array(level * 4 + 1).join(" "); + for (var i = 0; i < this.length; ++i) { + var str = this[i] === this ? "[Circular AggregateError]" : this[i] + ""; + var lines = str.split("\n"); + for (var j = 0; j < lines.length; ++j) { + lines[j] = indent + lines[j]; + } + str = lines.join("\n"); + ret += str + "\n"; + } + level--; + return ret; + }; - /* jshint maxdepth : false */ - if (j !== l) { - rx = rtwdf * rtwdf_ - itwdf * itwdf_; + function OperationalError(message) { + if (!(this instanceof OperationalError)) return new OperationalError(message); + notEnumerableProp(this, "name", "OperationalError"); + notEnumerableProp(this, "message", message); + this.cause = message; + this["isOperational"] = true; - itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_; - rtwdf_ = rx; + if (message instanceof Error) { + notEnumerableProp(this, "message", message.message); + notEnumerableProp(this, "stack", message.stack); + } else if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); } } - } - } - }; + inherits(OperationalError, Error); - FFTM.prototype.guessLen13b = function guessLen13b(n, m) { - var N = Math.max(m, n) | 1; - var odd = N & 1; - var i = 0; - for (N = N / 2 | 0; N; N = N >>> 1) { - i++; - } + var errorTypes = Error["__BluebirdErrorTypes__"]; + if (!errorTypes) { + errorTypes = Objectfreeze({ + CancellationError: CancellationError, + TimeoutError: TimeoutError, + OperationalError: OperationalError, + RejectionError: OperationalError, + AggregateError: AggregateError + }); + es5.defineProperty(Error, "__BluebirdErrorTypes__", { + value: errorTypes, + writable: false, + enumerable: false, + configurable: false + }); + } - return 1 << i + 1 + odd; - }; + module.exports = { + Error: Error, + TypeError: _TypeError, + RangeError: _RangeError, + CancellationError: errorTypes.CancellationError, + OperationalError: errorTypes.OperationalError, + TimeoutError: errorTypes.TimeoutError, + AggregateError: errorTypes.AggregateError, + Warning: Warning + }; + }, { "./es5": 13, "./util": 36 }], 13: [function (_dereq_, module, exports) { + var isES5 = function () { + "use strict"; - FFTM.prototype.conjugate = function conjugate(rws, iws, N) { - if (N <= 1) return; + return this === undefined; + }(); - for (var i = 0; i < N / 2; i++) { - var t = rws[i]; + if (isES5) { + module.exports = { + freeze: Object.freeze, + defineProperty: Object.defineProperty, + getDescriptor: Object.getOwnPropertyDescriptor, + keys: Object.keys, + names: Object.getOwnPropertyNames, + getPrototypeOf: Object.getPrototypeOf, + isArray: Array.isArray, + isES5: isES5, + propertyIsWritable: function propertyIsWritable(obj, prop) { + var descriptor = Object.getOwnPropertyDescriptor(obj, prop); + return !!(!descriptor || descriptor.writable || descriptor.set); + } + }; + } else { + var has = {}.hasOwnProperty; + var str = {}.toString; + var proto = {}.constructor.prototype; - rws[i] = rws[N - i - 1]; - rws[N - i - 1] = t; + var ObjectKeys = function ObjectKeys(o) { + var ret = []; + for (var key in o) { + if (has.call(o, key)) { + ret.push(key); + } + } + return ret; + }; - t = iws[i]; + var ObjectGetDescriptor = function ObjectGetDescriptor(o, key) { + return { value: o[key] }; + }; - iws[i] = -iws[N - i - 1]; - iws[N - i - 1] = -t; - } - }; + var ObjectDefineProperty = function ObjectDefineProperty(o, key, desc) { + o[key] = desc.value; + return o; + }; - FFTM.prototype.normalize13b = function normalize13b(ws, N) { - var carry = 0; - for (var i = 0; i < N / 2; i++) { - var w = Math.round(ws[2 * i + 1] / N) * 0x2000 + Math.round(ws[2 * i] / N) + carry; + var ObjectFreeze = function ObjectFreeze(obj) { + return obj; + }; - ws[i] = w & 0x3ffffff; + var ObjectGetPrototypeOf = function ObjectGetPrototypeOf(obj) { + try { + return Object(obj).constructor.prototype; + } catch (e) { + return proto; + } + }; - if (w < 0x4000000) { - carry = 0; - } else { - carry = w / 0x4000000 | 0; - } - } + var ArrayIsArray = function ArrayIsArray(obj) { + try { + return str.call(obj) === "[object Array]"; + } catch (e) { + return false; + } + }; - return ws; - }; + module.exports = { + isArray: ArrayIsArray, + keys: ObjectKeys, + names: ObjectKeys, + defineProperty: ObjectDefineProperty, + getDescriptor: ObjectGetDescriptor, + freeze: ObjectFreeze, + getPrototypeOf: ObjectGetPrototypeOf, + isES5: isES5, + propertyIsWritable: function propertyIsWritable() { + return true; + } + }; + } + }, {}], 14: [function (_dereq_, module, exports) { + "use strict"; - FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) { - var carry = 0; - for (var i = 0; i < len; i++) { - carry = carry + (ws[i] | 0); + module.exports = function (Promise, INTERNAL) { + var PromiseMap = Promise.map; - rws[2 * i] = carry & 0x1fff;carry = carry >>> 13; - rws[2 * i + 1] = carry & 0x1fff;carry = carry >>> 13; - } + Promise.prototype.filter = function (fn, options) { + return PromiseMap(this, fn, options, INTERNAL); + }; - // Pad with zeroes - for (i = 2 * len; i < N; ++i) { - rws[i] = 0; - } + Promise.filter = function (promises, fn, options) { + return PromiseMap(promises, fn, options, INTERNAL); + }; + }; + }, {}], 15: [function (_dereq_, module, exports) { + "use strict"; - assert(carry === 0); - assert((carry & ~0x1fff) === 0); - }; + module.exports = function (Promise, tryConvertToPromise) { + var util = _dereq_("./util"); + var CancellationError = Promise.CancellationError; + var errorObj = util.errorObj; - FFTM.prototype.stub = function stub(N) { - var ph = new Array(N); - for (var i = 0; i < N; i++) { - ph[i] = 0; - } + function PassThroughHandlerContext(promise, type, handler) { + this.promise = promise; + this.type = type; + this.handler = handler; + this.called = false; + this.cancelPromise = null; + } - return ph; - }; + PassThroughHandlerContext.prototype.isFinallyHandler = function () { + return this.type === 0; + }; - FFTM.prototype.mulp = function mulp(x, y, out) { - var N = 2 * this.guessLen13b(x.length, y.length); + function FinallyHandlerCancelReaction(finallyHandler) { + this.finallyHandler = finallyHandler; + } - var rbt = this.makeRBT(N); + FinallyHandlerCancelReaction.prototype._resultCancelled = function () { + checkCancel(this.finallyHandler); + }; - var _ = this.stub(N); + function checkCancel(ctx, reason) { + if (ctx.cancelPromise != null) { + if (arguments.length > 1) { + ctx.cancelPromise._reject(reason); + } else { + ctx.cancelPromise._cancel(); + } + ctx.cancelPromise = null; + return true; + } + return false; + } - var rws = new Array(N); - var rwst = new Array(N); - var iwst = new Array(N); + function succeed() { + return finallyHandler.call(this, this.promise._target()._settledValue()); + } + function fail(reason) { + if (checkCancel(this, reason)) return; + errorObj.e = reason; + return errorObj; + } + function finallyHandler(reasonOrValue) { + var promise = this.promise; + var handler = this.handler; - var nrws = new Array(N); - var nrwst = new Array(N); - var niwst = new Array(N); + if (!this.called) { + this.called = true; + var ret = this.isFinallyHandler() ? handler.call(promise._boundValue()) : handler.call(promise._boundValue(), reasonOrValue); + if (ret !== undefined) { + promise._setReturnedNonUndefined(); + var maybePromise = tryConvertToPromise(ret, promise); + if (maybePromise instanceof Promise) { + if (this.cancelPromise != null) { + if (maybePromise.isCancelled()) { + var reason = new CancellationError("late cancellation observer"); + promise._attachExtraTrace(reason); + errorObj.e = reason; + return errorObj; + } else if (maybePromise.isPending()) { + maybePromise._attachCancellationCallback(new FinallyHandlerCancelReaction(this)); + } + } + return maybePromise._then(succeed, fail, undefined, this, undefined); + } + } + } - var rmws = out.words; - rmws.length = N; + if (promise.isRejected()) { + checkCancel(this); + errorObj.e = reasonOrValue; + return errorObj; + } else { + checkCancel(this); + return reasonOrValue; + } + } - this.convert13b(x.words, x.length, rws, N); - this.convert13b(y.words, y.length, nrws, N); + Promise.prototype._passThrough = function (handler, type, success, fail) { + if (typeof handler !== "function") return this.then(); + return this._then(success, fail, undefined, new PassThroughHandlerContext(this, type, handler), undefined); + }; - this.transform(rws, _, rwst, iwst, N, rbt); - this.transform(nrws, _, nrwst, niwst, N, rbt); + Promise.prototype.lastly = Promise.prototype["finally"] = function (handler) { + return this._passThrough(handler, 0, finallyHandler, finallyHandler); + }; - for (var i = 0; i < N; i++) { - var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i]; - iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i]; - rwst[i] = rx; - } + Promise.prototype.tap = function (handler) { + return this._passThrough(handler, 1, finallyHandler); + }; - this.conjugate(rwst, iwst, N); - this.transform(rwst, iwst, rmws, _, N, rbt); - this.conjugate(rmws, _, N); - this.normalize13b(rmws, N); + return PassThroughHandlerContext; + }; + }, { "./util": 36 }], 16: [function (_dereq_, module, exports) { + "use strict"; - out.negative = x.negative ^ y.negative; - out.length = x.length + y.length; - return out.strip(); - }; + module.exports = function (Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug) { + var errors = _dereq_("./errors"); + var TypeError = errors.TypeError; + var util = _dereq_("./util"); + var errorObj = util.errorObj; + var tryCatch = util.tryCatch; + var yieldHandlers = []; - // Multiply `this` by `num` - BN.prototype.mul = function mul(num) { - var out = new BN(null); - out.words = new Array(this.length + num.length); - return this.mulTo(num, out); - }; + function promiseFromYieldHandler(value, yieldHandlers, traceParent) { + for (var i = 0; i < yieldHandlers.length; ++i) { + traceParent._pushContext(); + var result = tryCatch(yieldHandlers[i])(value); + traceParent._popContext(); + if (result === errorObj) { + traceParent._pushContext(); + var ret = Promise.reject(errorObj.e); + traceParent._popContext(); + return ret; + } + var maybePromise = tryConvertToPromise(result, traceParent); + if (maybePromise instanceof Promise) return maybePromise; + } + return null; + } - // Multiply employing FFT - BN.prototype.mulf = function mulf(num) { - var out = new BN(null); - out.words = new Array(this.length + num.length); - return jumboMulTo(this, num, out); - }; + function PromiseSpawn(generatorFunction, receiver, yieldHandler, stack) { + var promise = this._promise = new Promise(INTERNAL); + promise._captureStackTrace(); + promise._setOnCancel(this); + this._stack = stack; + this._generatorFunction = generatorFunction; + this._receiver = receiver; + this._generator = undefined; + this._yieldHandlers = typeof yieldHandler === "function" ? [yieldHandler].concat(yieldHandlers) : yieldHandlers; + this._yieldedPromise = null; + } + util.inherits(PromiseSpawn, Proxyable); - // In-place Multiplication - BN.prototype.imul = function imul(num) { - return this.clone().mulTo(num, this); - }; + PromiseSpawn.prototype._isResolved = function () { + return this._promise === null; + }; - BN.prototype.imuln = function imuln(num) { - assert(typeof num === 'number'); - assert(num < 0x4000000); + PromiseSpawn.prototype._cleanup = function () { + this._promise = this._generator = null; + }; - // Carry - var carry = 0; - for (var i = 0; i < this.length; i++) { - var w = (this.words[i] | 0) * num; - var lo = (w & 0x3ffffff) + (carry & 0x3ffffff); - carry >>= 26; - carry += w / 0x4000000 | 0; - // NOTE: lo is 27bit maximum - carry += lo >>> 26; - this.words[i] = lo & 0x3ffffff; - } + PromiseSpawn.prototype._promiseCancelled = function () { + if (this._isResolved()) return; + var implementsReturn = typeof this._generator["return"] !== "undefined"; - if (carry !== 0) { - this.words[i] = carry; - this.length++; - } + var result; + if (!implementsReturn) { + var reason = new Promise.CancellationError("generator .return() sentinel"); + Promise.coroutine.returnSentinel = reason; + this._promise._attachExtraTrace(reason); + this._promise._pushContext(); + result = tryCatch(this._generator["throw"]).call(this._generator, reason); + this._promise._popContext(); + if (result === errorObj && result.e === reason) { + result = null; + } + } else { + this._promise._pushContext(); + result = tryCatch(this._generator["return"]).call(this._generator, undefined); + this._promise._popContext(); + } + var promise = this._promise; + this._cleanup(); + if (result === errorObj) { + promise._rejectCallback(result.e, false); + } else { + promise.cancel(); + } + }; - return this; - }; + PromiseSpawn.prototype._promiseFulfilled = function (value) { + this._yieldedPromise = null; + this._promise._pushContext(); + var result = tryCatch(this._generator.next).call(this._generator, value); + this._promise._popContext(); + this._continue(result); + }; - BN.prototype.muln = function muln(num) { - return this.clone().imuln(num); - }; + PromiseSpawn.prototype._promiseRejected = function (reason) { + this._yieldedPromise = null; + this._promise._attachExtraTrace(reason); + this._promise._pushContext(); + var result = tryCatch(this._generator["throw"]).call(this._generator, reason); + this._promise._popContext(); + this._continue(result); + }; - // `this` * `this` - BN.prototype.sqr = function sqr() { - return this.mul(this); - }; + PromiseSpawn.prototype._resultCancelled = function () { + if (this._yieldedPromise instanceof Promise) { + var promise = this._yieldedPromise; + this._yieldedPromise = null; + promise.cancel(); + } + }; - // `this` * `this` in-place - BN.prototype.isqr = function isqr() { - return this.imul(this.clone()); - }; + PromiseSpawn.prototype.promise = function () { + return this._promise; + }; - // Math.pow(`this`, `num`) - BN.prototype.pow = function pow(num) { - var w = toBitArray(num); - if (w.length === 0) return new BN(1); + PromiseSpawn.prototype._run = function () { + this._generator = this._generatorFunction.call(this._receiver); + this._receiver = this._generatorFunction = undefined; + this._promiseFulfilled(undefined); + }; - // Skip leading zeroes - var res = this; - for (var i = 0; i < w.length; i++, res = res.sqr()) { - if (w[i] !== 0) break; - } + PromiseSpawn.prototype._continue = function (result) { + var promise = this._promise; + if (result === errorObj) { + this._cleanup(); + return promise._rejectCallback(result.e, false); + } - if (++i < w.length) { - for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) { - if (w[i] === 0) continue; + var value = result.value; + if (result.done === true) { + this._cleanup(); + return promise._resolveCallback(value); + } else { + var maybePromise = tryConvertToPromise(value, this._promise); + if (!(maybePromise instanceof Promise)) { + maybePromise = promiseFromYieldHandler(maybePromise, this._yieldHandlers, this._promise); + if (maybePromise === null) { + this._promiseRejected(new TypeError("A value %s was yielded that could not be treated as a promise\n\n See http://goo.gl/MqrFmX\n\n".replace("%s", value) + "From coroutine:\n" + this._stack.split("\n").slice(1, -7).join("\n"))); + return; + } + } + maybePromise = maybePromise._target(); + var bitField = maybePromise._bitField; + ; + if ((bitField & 50397184) === 0) { + this._yieldedPromise = maybePromise; + maybePromise._proxy(this, null); + } else if ((bitField & 33554432) !== 0) { + this._promiseFulfilled(maybePromise._value()); + } else if ((bitField & 16777216) !== 0) { + this._promiseRejected(maybePromise._reason()); + } else { + this._promiseCancelled(); + } + } + }; - res = res.mul(q); - } - } + Promise.coroutine = function (generatorFunction, options) { + if (typeof generatorFunction !== "function") { + throw new TypeError("generatorFunction must be a function\n\n See http://goo.gl/MqrFmX\n"); + } + var yieldHandler = Object(options).yieldHandler; + var PromiseSpawn$ = PromiseSpawn; + var stack = new Error().stack; + return function () { + var generator = generatorFunction.apply(this, arguments); + var spawn = new PromiseSpawn$(undefined, undefined, yieldHandler, stack); + var ret = spawn.promise(); + spawn._generator = generator; + spawn._promiseFulfilled(undefined); + return ret; + }; + }; - return res; - }; + Promise.coroutine.addYieldHandler = function (fn) { + if (typeof fn !== "function") { + throw new TypeError("expecting a function but got " + util.classString(fn)); + } + yieldHandlers.push(fn); + }; - // Shift-left in-place - BN.prototype.iushln = function iushln(bits) { - assert(typeof bits === 'number' && bits >= 0); - var r = bits % 26; - var s = (bits - r) / 26; - var carryMask = 0x3ffffff >>> 26 - r << 26 - r; - var i; + Promise.spawn = function (generatorFunction) { + debug.deprecated("Promise.spawn()", "Promise.coroutine()"); + if (typeof generatorFunction !== "function") { + return apiRejection("generatorFunction must be a function\n\n See http://goo.gl/MqrFmX\n"); + } + var spawn = new PromiseSpawn(generatorFunction, this); + var ret = spawn.promise(); + spawn._run(Promise.spawn); + return ret; + }; + }; + }, { "./errors": 12, "./util": 36 }], 17: [function (_dereq_, module, exports) { + "use strict"; - if (r !== 0) { - var carry = 0; + module.exports = function (Promise, PromiseArray, tryConvertToPromise, INTERNAL) { + var util = _dereq_("./util"); + var canEvaluate = util.canEvaluate; + var tryCatch = util.tryCatch; + var errorObj = util.errorObj; + var reject; - for (i = 0; i < this.length; i++) { - var newCarry = this.words[i] & carryMask; - var c = (this.words[i] | 0) - newCarry << r; - this.words[i] = c | carry; - carry = newCarry >>> 26 - r; - } + if (!true) { + if (canEvaluate) { + var thenCallback = function thenCallback(i) { + return new Function("value", "holder", " \n\ + 'use strict'; \n\ + holder.pIndex = value; \n\ + holder.checkFulfillment(this); \n\ + ".replace(/Index/g, i)); + }; - if (carry) { - this.words[i] = carry; - this.length++; - } - } + var promiseSetter = function promiseSetter(i) { + return new Function("promise", "holder", " \n\ + 'use strict'; \n\ + holder.pIndex = promise; \n\ + ".replace(/Index/g, i)); + }; - if (s !== 0) { - for (i = this.length - 1; i >= 0; i--) { - this.words[i + s] = this.words[i]; - } - - for (i = 0; i < s; i++) { - this.words[i] = 0; - } + var generateHolderClass = function generateHolderClass(total) { + var props = new Array(total); + for (var i = 0; i < props.length; ++i) { + props[i] = "this.p" + (i + 1); + } + var assignment = props.join(" = ") + " = null;"; + var cancellationCode = "var promise;\n" + props.map(function (prop) { + return " \n\ + promise = " + prop + "; \n\ + if (promise instanceof Promise) { \n\ + promise.cancel(); \n\ + } \n\ + "; + }).join("\n"); + var passedArguments = props.join(", "); + var name = "Holder$" + total; - this.length += s; - } + var code = "return function(tryCatch, errorObj, Promise) { \n\ + 'use strict'; \n\ + function [TheName](fn) { \n\ + [TheProperties] \n\ + this.fn = fn; \n\ + this.now = 0; \n\ + } \n\ + [TheName].prototype.checkFulfillment = function(promise) { \n\ + var now = ++this.now; \n\ + if (now === [TheTotal]) { \n\ + promise._pushContext(); \n\ + var callback = this.fn; \n\ + var ret = tryCatch(callback)([ThePassedArguments]); \n\ + promise._popContext(); \n\ + if (ret === errorObj) { \n\ + promise._rejectCallback(ret.e, false); \n\ + } else { \n\ + promise._resolveCallback(ret); \n\ + } \n\ + } \n\ + }; \n\ + \n\ + [TheName].prototype._resultCancelled = function() { \n\ + [CancellationCode] \n\ + }; \n\ + \n\ + return [TheName]; \n\ + }(tryCatch, errorObj, Promise); \n\ + "; - return this.strip(); - }; + code = code.replace(/\[TheName\]/g, name).replace(/\[TheTotal\]/g, total).replace(/\[ThePassedArguments\]/g, passedArguments).replace(/\[TheProperties\]/g, assignment).replace(/\[CancellationCode\]/g, cancellationCode); - BN.prototype.ishln = function ishln(bits) { - // TODO(indutny): implement me - assert(this.negative === 0); - return this.iushln(bits); - }; + return new Function("tryCatch", "errorObj", "Promise", code)(tryCatch, errorObj, Promise); + }; - // Shift-right in-place - // NOTE: `hint` is a lowest bit before trailing zeroes - // NOTE: if `extended` is present - it will be filled with destroyed bits - BN.prototype.iushrn = function iushrn(bits, hint, extended) { - assert(typeof bits === 'number' && bits >= 0); - var h; - if (hint) { - h = (hint - hint % 26) / 26; - } else { - h = 0; - } + var holderClasses = []; + var thenCallbacks = []; + var promiseSetters = []; - var r = bits % 26; - var s = Math.min((bits - r) / 26, this.length); - var mask = 0x3ffffff ^ 0x3ffffff >>> r << r; - var maskedWords = extended; + for (var i = 0; i < 8; ++i) { + holderClasses.push(generateHolderClass(i + 1)); + thenCallbacks.push(thenCallback(i + 1)); + promiseSetters.push(promiseSetter(i + 1)); + } - h -= s; - h = Math.max(0, h); + reject = function reject(reason) { + this._reject(reason); + }; + } + } - // Extended mode, copy masked part - if (maskedWords) { - for (var i = 0; i < s; i++) { - maskedWords.words[i] = this.words[i]; - } - maskedWords.length = s; - } + Promise.join = function () { + var last = arguments.length - 1; + var fn; + if (last > 0 && typeof arguments[last] === "function") { + fn = arguments[last]; + if (!true) { + if (last <= 8 && canEvaluate) { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + var HolderClass = holderClasses[last - 1]; + var holder = new HolderClass(fn); + var callbacks = thenCallbacks; - if (s === 0) { - // No-op, we should not move anything at all - } else if (this.length > s) { - this.length -= s; - for (i = 0; i < this.length; i++) { - this.words[i] = this.words[i + s]; - } - } else { - this.words[0] = 0; - this.length = 1; - } + for (var i = 0; i < last; ++i) { + var maybePromise = tryConvertToPromise(arguments[i], ret); + if (maybePromise instanceof Promise) { + maybePromise = maybePromise._target(); + var bitField = maybePromise._bitField; + ; + if ((bitField & 50397184) === 0) { + maybePromise._then(callbacks[i], reject, undefined, ret, holder); + promiseSetters[i](maybePromise, holder); + } else if ((bitField & 33554432) !== 0) { + callbacks[i].call(ret, maybePromise._value(), holder); + } else if ((bitField & 16777216) !== 0) { + ret._reject(maybePromise._reason()); + } else { + ret._cancel(); + } + } else { + callbacks[i].call(ret, maybePromise, holder); + } + } + if (!ret._isFateSealed()) { + ret._setAsyncGuaranteed(); + ret._setOnCancel(holder); + } + return ret; + } + } + } + var args = [].slice.call(arguments);; + if (fn) args.pop(); + var ret = new PromiseArray(args).promise(); + return fn !== undefined ? ret.spread(fn) : ret; + }; + }; + }, { "./util": 36 }], 18: [function (_dereq_, module, exports) { + "use strict"; - var carry = 0; - for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) { - var word = this.words[i] | 0; - this.words[i] = carry << 26 - r | word >>> r; - carry = word & mask; - } + module.exports = function (Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug) { + var getDomain = Promise._getDomain; + var util = _dereq_("./util"); + var tryCatch = util.tryCatch; + var errorObj = util.errorObj; + var EMPTY_ARRAY = []; - // Push carried bits as a mask - if (maskedWords && carry !== 0) { - maskedWords.words[maskedWords.length++] = carry; - } + function MappingPromiseArray(promises, fn, limit, _filter) { + this.constructor$(promises); + this._promise._captureStackTrace(); + var domain = getDomain(); + this._callback = domain === null ? fn : domain.bind(fn); + this._preservedValues = _filter === INTERNAL ? new Array(this.length()) : null; + this._limit = limit; + this._inFlight = 0; + this._queue = limit >= 1 ? [] : EMPTY_ARRAY; + this._init$(undefined, -2); + } + util.inherits(MappingPromiseArray, PromiseArray); - if (this.length === 0) { - this.words[0] = 0; - this.length = 1; - } + MappingPromiseArray.prototype._init = function () {}; - return this.strip(); - }; + MappingPromiseArray.prototype._promiseFulfilled = function (value, index) { + var values = this._values; + var length = this.length(); + var preservedValues = this._preservedValues; + var limit = this._limit; - BN.prototype.ishrn = function ishrn(bits, hint, extended) { - // TODO(indutny): implement me - assert(this.negative === 0); - return this.iushrn(bits, hint, extended); - }; + if (index < 0) { + index = index * -1 - 1; + values[index] = value; + if (limit >= 1) { + this._inFlight--; + this._drainQueue(); + if (this._isResolved()) return true; + } + } else { + if (limit >= 1 && this._inFlight >= limit) { + values[index] = value; + this._queue.push(index); + return false; + } + if (preservedValues !== null) preservedValues[index] = value; - // Shift-left - BN.prototype.shln = function shln(bits) { - return this.clone().ishln(bits); - }; + var promise = this._promise; + var callback = this._callback; + var receiver = promise._boundValue(); + promise._pushContext(); + var ret = tryCatch(callback).call(receiver, value, index, length); + var promiseCreated = promise._popContext(); + debug.checkForgottenReturns(ret, promiseCreated, preservedValues !== null ? "Promise.filter" : "Promise.map", promise); + if (ret === errorObj) { + this._reject(ret.e); + return true; + } - BN.prototype.ushln = function ushln(bits) { - return this.clone().iushln(bits); - }; + var maybePromise = tryConvertToPromise(ret, this._promise); + if (maybePromise instanceof Promise) { + maybePromise = maybePromise._target(); + var bitField = maybePromise._bitField; + ; + if ((bitField & 50397184) === 0) { + if (limit >= 1) this._inFlight++; + values[index] = maybePromise; + maybePromise._proxy(this, (index + 1) * -1); + return false; + } else if ((bitField & 33554432) !== 0) { + ret = maybePromise._value(); + } else if ((bitField & 16777216) !== 0) { + this._reject(maybePromise._reason()); + return true; + } else { + this._cancel(); + return true; + } + } + values[index] = ret; + } + var totalResolved = ++this._totalResolved; + if (totalResolved >= length) { + if (preservedValues !== null) { + this._filter(values, preservedValues); + } else { + this._resolve(values); + } + return true; + } + return false; + }; - // Shift-right - BN.prototype.shrn = function shrn(bits) { - return this.clone().ishrn(bits); - }; + MappingPromiseArray.prototype._drainQueue = function () { + var queue = this._queue; + var limit = this._limit; + var values = this._values; + while (queue.length > 0 && this._inFlight < limit) { + if (this._isResolved()) return; + var index = queue.pop(); + this._promiseFulfilled(values[index], index); + } + }; - BN.prototype.ushrn = function ushrn(bits) { - return this.clone().iushrn(bits); - }; + MappingPromiseArray.prototype._filter = function (booleans, values) { + var len = values.length; + var ret = new Array(len); + var j = 0; + for (var i = 0; i < len; ++i) { + if (booleans[i]) ret[j++] = values[i]; + } + ret.length = j; + this._resolve(ret); + }; - // Test if n bit is set - BN.prototype.testn = function testn(bit) { - assert(typeof bit === 'number' && bit >= 0); - var r = bit % 26; - var s = (bit - r) / 26; - var q = 1 << r; + MappingPromiseArray.prototype.preservedValues = function () { + return this._preservedValues; + }; - // Fast case: bit is much higher than all existing words - if (this.length <= s) return false; + function map(promises, fn, options, _filter) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + var limit = (typeof options === "undefined" ? "undefined" : _typeof(options)) === "object" && options !== null ? options.concurrency : 0; + limit = typeof limit === "number" && isFinite(limit) && limit >= 1 ? limit : 0; + return new MappingPromiseArray(promises, fn, limit, _filter).promise(); + } - // Check bit and return - var w = this.words[s]; + Promise.prototype.map = function (fn, options) { + return map(this, fn, options, null); + }; - return !!(w & q); - }; + Promise.map = function (promises, fn, options, _filter) { + return map(promises, fn, options, _filter); + }; + }; + }, { "./util": 36 }], 19: [function (_dereq_, module, exports) { + "use strict"; - // Return only lowers bits of number (in-place) - BN.prototype.imaskn = function imaskn(bits) { - assert(typeof bits === 'number' && bits >= 0); - var r = bits % 26; - var s = (bits - r) / 26; + module.exports = function (Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) { + var util = _dereq_("./util"); + var tryCatch = util.tryCatch; - assert(this.negative === 0, 'imaskn works only with positive numbers'); + Promise.method = function (fn) { + if (typeof fn !== "function") { + throw new Promise.TypeError("expecting a function but got " + util.classString(fn)); + } + return function () { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._pushContext(); + var value = tryCatch(fn).apply(this, arguments); + var promiseCreated = ret._popContext(); + debug.checkForgottenReturns(value, promiseCreated, "Promise.method", ret); + ret._resolveFromSyncValue(value); + return ret; + }; + }; - if (this.length <= s) { - return this; - } + Promise.attempt = Promise["try"] = function (fn) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._pushContext(); + var value; + if (arguments.length > 1) { + debug.deprecated("calling Promise.try with more than 1 argument"); + var arg = arguments[1]; + var ctx = arguments[2]; + value = util.isArray(arg) ? tryCatch(fn).apply(ctx, arg) : tryCatch(fn).call(ctx, arg); + } else { + value = tryCatch(fn)(); + } + var promiseCreated = ret._popContext(); + debug.checkForgottenReturns(value, promiseCreated, "Promise.try", ret); + ret._resolveFromSyncValue(value); + return ret; + }; - if (r !== 0) { - s++; - } - this.length = Math.min(s, this.length); + Promise.prototype._resolveFromSyncValue = function (value) { + if (value === util.errorObj) { + this._rejectCallback(value.e, false); + } else { + this._resolveCallback(value, true); + } + }; + }; + }, { "./util": 36 }], 20: [function (_dereq_, module, exports) { + "use strict"; - if (r !== 0) { - var mask = 0x3ffffff ^ 0x3ffffff >>> r << r; - this.words[this.length - 1] &= mask; - } + var util = _dereq_("./util"); + var maybeWrapAsError = util.maybeWrapAsError; + var errors = _dereq_("./errors"); + var OperationalError = errors.OperationalError; + var es5 = _dereq_("./es5"); - return this.strip(); - }; + function isUntypedError(obj) { + return obj instanceof Error && es5.getPrototypeOf(obj) === Error.prototype; + } - // Return only lowers bits of number - BN.prototype.maskn = function maskn(bits) { - return this.clone().imaskn(bits); - }; + var rErrorKey = /^(?:name|message|stack|cause)$/; + function wrapAsOperationalError(obj) { + var ret; + if (isUntypedError(obj)) { + ret = new OperationalError(obj); + ret.name = obj.name; + ret.message = obj.message; + ret.stack = obj.stack; + var keys = es5.keys(obj); + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (!rErrorKey.test(key)) { + ret[key] = obj[key]; + } + } + return ret; + } + util.markAsOriginatingFromRejection(obj); + return obj; + } - // Add plain number `num` to `this` - BN.prototype.iaddn = function iaddn(num) { - assert(typeof num === 'number'); - assert(num < 0x4000000); - if (num < 0) return this.isubn(-num); + function nodebackForPromise(promise, multiArgs) { + return function (err, value) { + if (promise === null) return; + if (err) { + var wrapped = wrapAsOperationalError(maybeWrapAsError(err)); + promise._attachExtraTrace(wrapped); + promise._reject(wrapped); + } else if (!multiArgs) { + promise._fulfill(value); + } else { + var args = [].slice.call(arguments, 1);; + promise._fulfill(args); + } + promise = null; + }; + } - // Possible sign change - if (this.negative !== 0) { - if (this.length === 1 && (this.words[0] | 0) < num) { - this.words[0] = num - (this.words[0] | 0); - this.negative = 0; - return this; - } + module.exports = nodebackForPromise; + }, { "./errors": 12, "./es5": 13, "./util": 36 }], 21: [function (_dereq_, module, exports) { + "use strict"; - this.negative = 0; - this.isubn(num); - this.negative = 1; - return this; - } + module.exports = function (Promise) { + var util = _dereq_("./util"); + var async = Promise._async; + var tryCatch = util.tryCatch; + var errorObj = util.errorObj; - // Add without checks - return this._iaddn(num); - }; + function spreadAdapter(val, nodeback) { + var promise = this; + if (!util.isArray(val)) return successAdapter.call(promise, val, nodeback); + var ret = tryCatch(nodeback).apply(promise._boundValue(), [null].concat(val)); + if (ret === errorObj) { + async.throwLater(ret.e); + } + } - BN.prototype._iaddn = function _iaddn(num) { - this.words[0] += num; + function successAdapter(val, nodeback) { + var promise = this; + var receiver = promise._boundValue(); + var ret = val === undefined ? tryCatch(nodeback).call(receiver, null) : tryCatch(nodeback).call(receiver, null, val); + if (ret === errorObj) { + async.throwLater(ret.e); + } + } + function errorAdapter(reason, nodeback) { + var promise = this; + if (!reason) { + var newReason = new Error(reason + ""); + newReason.cause = reason; + reason = newReason; + } + var ret = tryCatch(nodeback).call(promise._boundValue(), reason); + if (ret === errorObj) { + async.throwLater(ret.e); + } + } - // Carry - for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) { - this.words[i] -= 0x4000000; - if (i === this.length - 1) { - this.words[i + 1] = 1; - } else { - this.words[i + 1]++; - } - } - this.length = Math.max(this.length, i + 1); - - return this; - }; - - // Subtract plain number `num` from `this` - BN.prototype.isubn = function isubn(num) { - assert(typeof num === 'number'); - assert(num < 0x4000000); - if (num < 0) return this.iaddn(-num); + Promise.prototype.asCallback = Promise.prototype.nodeify = function (nodeback, options) { + if (typeof nodeback == "function") { + var adapter = successAdapter; + if (options !== undefined && Object(options).spread) { + adapter = spreadAdapter; + } + this._then(adapter, errorAdapter, undefined, this, nodeback); + } + return this; + }; + }; + }, { "./util": 36 }], 22: [function (_dereq_, module, exports) { + "use strict"; - if (this.negative !== 0) { - this.negative = 0; - this.iaddn(num); - this.negative = 1; - return this; - } + module.exports = function () { + var makeSelfResolutionError = function makeSelfResolutionError() { + return new TypeError("circular promise resolution chain\n\n See http://goo.gl/MqrFmX\n"); + }; + var reflectHandler = function reflectHandler() { + return new Promise.PromiseInspection(this._target()); + }; + var apiRejection = function apiRejection(msg) { + return Promise.reject(new TypeError(msg)); + }; + function Proxyable() {} + var UNDEFINED_BINDING = {}; + var util = _dereq_("./util"); - this.words[0] -= num; + var getDomain; + if (util.isNode) { + getDomain = function getDomain() { + var ret = process.domain; + if (ret === undefined) ret = null; + return ret; + }; + } else { + getDomain = function getDomain() { + return null; + }; + } + util.notEnumerableProp(Promise, "_getDomain", getDomain); - if (this.length === 1 && this.words[0] < 0) { - this.words[0] = -this.words[0]; - this.negative = 1; - } else { - // Carry - for (var i = 0; i < this.length && this.words[i] < 0; i++) { - this.words[i] += 0x4000000; - this.words[i + 1] -= 1; - } - } + var es5 = _dereq_("./es5"); + var Async = _dereq_("./async"); + var async = new Async(); + es5.defineProperty(Promise, "_async", { value: async }); + var errors = _dereq_("./errors"); + var TypeError = Promise.TypeError = errors.TypeError; + Promise.RangeError = errors.RangeError; + var CancellationError = Promise.CancellationError = errors.CancellationError; + Promise.TimeoutError = errors.TimeoutError; + Promise.OperationalError = errors.OperationalError; + Promise.RejectionError = errors.OperationalError; + Promise.AggregateError = errors.AggregateError; + var INTERNAL = function INTERNAL() {}; + var APPLY = {}; + var NEXT_FILTER = {}; + var tryConvertToPromise = _dereq_("./thenables")(Promise, INTERNAL); + var PromiseArray = _dereq_("./promise_array")(Promise, INTERNAL, tryConvertToPromise, apiRejection, Proxyable); + var Context = _dereq_("./context")(Promise); + /*jshint unused:false*/ + var createContext = Context.create; + var debug = _dereq_("./debuggability")(Promise, Context); + var CapturedTrace = debug.CapturedTrace; + var PassThroughHandlerContext = _dereq_("./finally")(Promise, tryConvertToPromise); + var catchFilter = _dereq_("./catch_filter")(NEXT_FILTER); + var nodebackForPromise = _dereq_("./nodeback"); + var errorObj = util.errorObj; + var tryCatch = util.tryCatch; + function check(self, executor) { + if (typeof executor !== "function") { + throw new TypeError("expecting a function but got " + util.classString(executor)); + } + if (self.constructor !== Promise) { + throw new TypeError("the promise constructor cannot be invoked directly\n\n See http://goo.gl/MqrFmX\n"); + } + } - return this.strip(); - }; + function Promise(executor) { + this._bitField = 0; + this._fulfillmentHandler0 = undefined; + this._rejectionHandler0 = undefined; + this._promise0 = undefined; + this._receiver0 = undefined; + if (executor !== INTERNAL) { + check(this, executor); + this._resolveFromExecutor(executor); + } + this._promiseCreated(); + this._fireEvent("promiseCreated", this); + } - BN.prototype.addn = function addn(num) { - return this.clone().iaddn(num); - }; + Promise.prototype.toString = function () { + return "[object Promise]"; + }; - BN.prototype.subn = function subn(num) { - return this.clone().isubn(num); - }; + Promise.prototype.caught = Promise.prototype["catch"] = function (fn) { + var len = arguments.length; + if (len > 1) { + var catchInstances = new Array(len - 1), + j = 0, + i; + for (i = 0; i < len - 1; ++i) { + var item = arguments[i]; + if (util.isObject(item)) { + catchInstances[j++] = item; + } else { + return apiRejection("expecting an object but got " + util.classString(item)); + } + } + catchInstances.length = j; + fn = arguments[i]; + return this.then(undefined, catchFilter(catchInstances, fn, this)); + } + return this.then(undefined, fn); + }; - BN.prototype.iabs = function iabs() { - this.negative = 0; + Promise.prototype.reflect = function () { + return this._then(reflectHandler, reflectHandler, undefined, this, undefined); + }; - return this; - }; + Promise.prototype.then = function (didFulfill, didReject) { + if (debug.warnings() && arguments.length > 0 && typeof didFulfill !== "function" && typeof didReject !== "function") { + var msg = ".then() only accepts functions but was passed: " + util.classString(didFulfill); + if (arguments.length > 1) { + msg += ", " + util.classString(didReject); + } + this._warn(msg); + } + return this._then(didFulfill, didReject, undefined, undefined, undefined); + }; - BN.prototype.abs = function abs() { - return this.clone().iabs(); - }; + Promise.prototype.done = function (didFulfill, didReject) { + var promise = this._then(didFulfill, didReject, undefined, undefined, undefined); + promise._setIsFinal(); + }; - BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) { - var len = num.length + shift; - var i; + Promise.prototype.spread = function (fn) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + return this.all()._then(fn, undefined, undefined, APPLY, undefined); + }; - this._expand(len); + Promise.prototype.toJSON = function () { + var ret = { + isFulfilled: false, + isRejected: false, + fulfillmentValue: undefined, + rejectionReason: undefined + }; + if (this.isFulfilled()) { + ret.fulfillmentValue = this.value(); + ret.isFulfilled = true; + } else if (this.isRejected()) { + ret.rejectionReason = this.reason(); + ret.isRejected = true; + } + return ret; + }; - var w; - var carry = 0; - for (i = 0; i < num.length; i++) { - w = (this.words[i + shift] | 0) + carry; - var right = (num.words[i] | 0) * mul; - w -= right & 0x3ffffff; - carry = (w >> 26) - (right / 0x4000000 | 0); - this.words[i + shift] = w & 0x3ffffff; - } - for (; i < this.length - shift; i++) { - w = (this.words[i + shift] | 0) + carry; - carry = w >> 26; - this.words[i + shift] = w & 0x3ffffff; - } + Promise.prototype.all = function () { + if (arguments.length > 0) { + this._warn(".all() was passed arguments but it does not take any"); + } + return new PromiseArray(this).promise(); + }; - if (carry === 0) return this.strip(); + Promise.prototype.error = function (fn) { + return this.caught(util.originatesFromRejection, fn); + }; - // Subtraction overflow - assert(carry === -1); - carry = 0; - for (i = 0; i < this.length; i++) { - w = -(this.words[i] | 0) + carry; - carry = w >> 26; - this.words[i] = w & 0x3ffffff; - } - this.negative = 1; + Promise.is = function (val) { + return val instanceof Promise; + }; - return this.strip(); - }; + Promise.fromNode = Promise.fromCallback = function (fn) { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + var multiArgs = arguments.length > 1 ? !!Object(arguments[1]).multiArgs : false; + var result = tryCatch(fn)(nodebackForPromise(ret, multiArgs)); + if (result === errorObj) { + ret._rejectCallback(result.e, true); + } + if (!ret._isFateSealed()) ret._setAsyncGuaranteed(); + return ret; + }; - BN.prototype._wordDiv = function _wordDiv(num, mode) { - var shift = this.length - num.length; + Promise.all = function (promises) { + return new PromiseArray(promises).promise(); + }; - var a = this.clone(); - var b = num; + Promise.cast = function (obj) { + var ret = tryConvertToPromise(obj); + if (!(ret instanceof Promise)) { + ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._setFulfilled(); + ret._rejectionHandler0 = obj; + } + return ret; + }; - // Normalize - var bhi = b.words[b.length - 1] | 0; - var bhiBits = this._countBits(bhi); - shift = 26 - bhiBits; - if (shift !== 0) { - b = b.ushln(shift); - a.iushln(shift); - bhi = b.words[b.length - 1] | 0; - } + Promise.resolve = Promise.fulfilled = Promise.cast; - // Initialize quotient - var m = a.length - b.length; - var q; + Promise.reject = Promise.rejected = function (reason) { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._rejectCallback(reason, true); + return ret; + }; - if (mode !== 'mod') { - q = new BN(null); - q.length = m + 1; - q.words = new Array(q.length); - for (var i = 0; i < q.length; i++) { - q.words[i] = 0; - } - } + Promise.setScheduler = function (fn) { + if (typeof fn !== "function") { + throw new TypeError("expecting a function but got " + util.classString(fn)); + } + var prev = async._schedule; + async._schedule = fn; + return prev; + }; - var diff = a.clone()._ishlnsubmul(b, 1, m); - if (diff.negative === 0) { - a = diff; - if (q) { - q.words[m] = 1; - } - } + Promise.prototype._then = function (didFulfill, didReject, _, receiver, internalData) { + var haveInternalData = internalData !== undefined; + var promise = haveInternalData ? internalData : new Promise(INTERNAL); + var target = this._target(); + var bitField = target._bitField; - for (var j = m - 1; j >= 0; j--) { - var qj = (a.words[b.length + j] | 0) * 0x4000000 + (a.words[b.length + j - 1] | 0); + if (!haveInternalData) { + promise._propagateFrom(this, 3); + promise._captureStackTrace(); + if (receiver === undefined && (this._bitField & 2097152) !== 0) { + if (!((bitField & 50397184) === 0)) { + receiver = this._boundValue(); + } else { + receiver = target === this ? undefined : this._boundTo; + } + } + this._fireEvent("promiseChained", this, promise); + } - // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max - // (0x7ffffff) - qj = Math.min(qj / bhi | 0, 0x3ffffff); + var domain = getDomain(); + if (!((bitField & 50397184) === 0)) { + var handler, + value, + settler = target._settlePromiseCtx; + if ((bitField & 33554432) !== 0) { + value = target._rejectionHandler0; + handler = didFulfill; + } else if ((bitField & 16777216) !== 0) { + value = target._fulfillmentHandler0; + handler = didReject; + target._unsetRejectionIsUnhandled(); + } else { + settler = target._settlePromiseLateCancellationObserver; + value = new CancellationError("late cancellation observer"); + target._attachExtraTrace(value); + handler = didReject; + } - a._ishlnsubmul(b, qj, j); - while (a.negative !== 0) { - qj--; - a.negative = 0; - a._ishlnsubmul(b, 1, j); - if (!a.isZero()) { - a.negative ^= 1; - } - } - if (q) { - q.words[j] = qj; - } - } - if (q) { - q.strip(); - } - a.strip(); + async.invoke(settler, target, { + handler: domain === null ? handler : typeof handler === "function" && domain.bind(handler), + promise: promise, + receiver: receiver, + value: value + }); + } else { + target._addCallbacks(didFulfill, didReject, promise, receiver, domain); + } - // Denormalize - if (mode !== 'div' && shift !== 0) { - a.iushrn(shift); - } + return promise; + }; - return { - div: q || null, - mod: a - }; - }; + Promise.prototype._length = function () { + return this._bitField & 65535; + }; - // NOTE: 1) `mode` can be set to `mod` to request mod only, - // to `div` to request div only, or be absent to - // request both div & mod - // 2) `positive` is true if unsigned mod is requested - BN.prototype.divmod = function divmod(num, mode, positive) { - assert(!num.isZero()); + Promise.prototype._isFateSealed = function () { + return (this._bitField & 117506048) !== 0; + }; - if (this.isZero()) { - return { - div: new BN(0), - mod: new BN(0) - }; - } + Promise.prototype._isFollowing = function () { + return (this._bitField & 67108864) === 67108864; + }; - var div, mod, res; - if (this.negative !== 0 && num.negative === 0) { - res = this.neg().divmod(num, mode); + Promise.prototype._setLength = function (len) { + this._bitField = this._bitField & -65536 | len & 65535; + }; - if (mode !== 'mod') { - div = res.div.neg(); - } + Promise.prototype._setFulfilled = function () { + this._bitField = this._bitField | 33554432; + this._fireEvent("promiseFulfilled", this); + }; - if (mode !== 'div') { - mod = res.mod.neg(); - if (positive && mod.negative !== 0) { - mod.iadd(num); - } - } + Promise.prototype._setRejected = function () { + this._bitField = this._bitField | 16777216; + this._fireEvent("promiseRejected", this); + }; - return { - div: div, - mod: mod - }; - } + Promise.prototype._setFollowing = function () { + this._bitField = this._bitField | 67108864; + this._fireEvent("promiseResolved", this); + }; - if (this.negative === 0 && num.negative !== 0) { - res = this.divmod(num.neg(), mode); + Promise.prototype._setIsFinal = function () { + this._bitField = this._bitField | 4194304; + }; - if (mode !== 'mod') { - div = res.div.neg(); - } + Promise.prototype._isFinal = function () { + return (this._bitField & 4194304) > 0; + }; - return { - div: div, - mod: res.mod - }; - } + Promise.prototype._unsetCancelled = function () { + this._bitField = this._bitField & ~65536; + }; - if ((this.negative & num.negative) !== 0) { - res = this.neg().divmod(num.neg(), mode); + Promise.prototype._setCancelled = function () { + this._bitField = this._bitField | 65536; + this._fireEvent("promiseCancelled", this); + }; - if (mode !== 'div') { - mod = res.mod.neg(); - if (positive && mod.negative !== 0) { - mod.isub(num); - } - } + Promise.prototype._setAsyncGuaranteed = function () { + this._bitField = this._bitField | 134217728; + }; - return { - div: res.div, - mod: mod - }; - } + Promise.prototype._receiverAt = function (index) { + var ret = index === 0 ? this._receiver0 : this[index * 4 - 4 + 3]; + if (ret === UNDEFINED_BINDING) { + return undefined; + } else if (ret === undefined && this._isBound()) { + return this._boundValue(); + } + return ret; + }; - // Both numbers are positive at this point + Promise.prototype._promiseAt = function (index) { + return this[index * 4 - 4 + 2]; + }; - // Strip both numbers to approximate shift value - if (num.length > this.length || this.cmp(num) < 0) { - return { - div: new BN(0), - mod: this - }; - } + Promise.prototype._fulfillmentHandlerAt = function (index) { + return this[index * 4 - 4 + 0]; + }; - // Very short reduction - if (num.length === 1) { - if (mode === 'div') { - return { - div: this.divn(num.words[0]), - mod: null - }; - } + Promise.prototype._rejectionHandlerAt = function (index) { + return this[index * 4 - 4 + 1]; + }; - if (mode === 'mod') { - return { - div: null, - mod: new BN(this.modn(num.words[0])) - }; - } + Promise.prototype._boundValue = function () {}; - return { - div: this.divn(num.words[0]), - mod: new BN(this.modn(num.words[0])) - }; - } + Promise.prototype._migrateCallback0 = function (follower) { + var bitField = follower._bitField; + var fulfill = follower._fulfillmentHandler0; + var reject = follower._rejectionHandler0; + var promise = follower._promise0; + var receiver = follower._receiverAt(0); + if (receiver === undefined) receiver = UNDEFINED_BINDING; + this._addCallbacks(fulfill, reject, promise, receiver, null); + }; - return this._wordDiv(num, mode); - }; + Promise.prototype._migrateCallbackAt = function (follower, index) { + var fulfill = follower._fulfillmentHandlerAt(index); + var reject = follower._rejectionHandlerAt(index); + var promise = follower._promiseAt(index); + var receiver = follower._receiverAt(index); + if (receiver === undefined) receiver = UNDEFINED_BINDING; + this._addCallbacks(fulfill, reject, promise, receiver, null); + }; - // Find `this` / `num` - BN.prototype.div = function div(num) { - return this.divmod(num, 'div', false).div; - }; + Promise.prototype._addCallbacks = function (fulfill, reject, promise, receiver, domain) { + var index = this._length(); - // Find `this` % `num` - BN.prototype.mod = function mod(num) { - return this.divmod(num, 'mod', false).mod; - }; + if (index >= 65535 - 4) { + index = 0; + this._setLength(0); + } - BN.prototype.umod = function umod(num) { - return this.divmod(num, 'mod', true).mod; - }; + if (index === 0) { + this._promise0 = promise; + this._receiver0 = receiver; + if (typeof fulfill === "function") { + this._fulfillmentHandler0 = domain === null ? fulfill : domain.bind(fulfill); + } + if (typeof reject === "function") { + this._rejectionHandler0 = domain === null ? reject : domain.bind(reject); + } + } else { + var base = index * 4 - 4; + this[base + 2] = promise; + this[base + 3] = receiver; + if (typeof fulfill === "function") { + this[base + 0] = domain === null ? fulfill : domain.bind(fulfill); + } + if (typeof reject === "function") { + this[base + 1] = domain === null ? reject : domain.bind(reject); + } + } + this._setLength(index + 1); + return index; + }; - // Find Round(`this` / `num`) - BN.prototype.divRound = function divRound(num) { - var dm = this.divmod(num); + Promise.prototype._proxy = function (proxyable, arg) { + this._addCallbacks(undefined, undefined, arg, proxyable, null); + }; - // Fast case - exact division - if (dm.mod.isZero()) return dm.div; + Promise.prototype._resolveCallback = function (value, shouldBind) { + if ((this._bitField & 117506048) !== 0) return; + if (value === this) return this._rejectCallback(makeSelfResolutionError(), false); + var maybePromise = tryConvertToPromise(value, this); + if (!(maybePromise instanceof Promise)) return this._fulfill(value); - var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod; + if (shouldBind) this._propagateFrom(maybePromise, 2); - var half = num.ushrn(1); - var r2 = num.andln(1); - var cmp = mod.cmp(half); + var promise = maybePromise._target(); + var bitField = promise._bitField; + if ((bitField & 50397184) === 0) { + var len = this._length(); + if (len > 0) promise._migrateCallback0(this); + for (var i = 1; i < len; ++i) { + promise._migrateCallbackAt(this, i); + } + this._setFollowing(); + this._setLength(0); + this._setFollowee(promise); + } else if ((bitField & 33554432) !== 0) { + this._fulfill(promise._value()); + } else if ((bitField & 16777216) !== 0) { + this._reject(promise._reason()); + } else { + var reason = new CancellationError("late cancellation observer"); + promise._attachExtraTrace(reason); + this._reject(reason); + } + }; - // Round down - if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div; + Promise.prototype._rejectCallback = function (reason, synchronous, ignoreNonErrorWarnings) { + var trace = util.ensureErrorObject(reason); + var hasStack = trace === reason; + if (!hasStack && !ignoreNonErrorWarnings && debug.warnings()) { + var message = "a promise was rejected with a non-error: " + util.classString(reason); + this._warn(message, true); + } + this._attachExtraTrace(trace, synchronous ? hasStack : false); + this._reject(reason); + }; - // Round up - return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1); - }; + Promise.prototype._resolveFromExecutor = function (executor) { + var promise = this; + this._captureStackTrace(); + this._pushContext(); + var synchronous = true; + var r = this._execute(executor, function (value) { + promise._resolveCallback(value); + }, function (reason) { + promise._rejectCallback(reason, synchronous); + }); + synchronous = false; + this._popContext(); - BN.prototype.modn = function modn(num) { - assert(num <= 0x3ffffff); - var p = (1 << 26) % num; + if (r !== undefined) { + promise._rejectCallback(r, true); + } + }; - var acc = 0; - for (var i = this.length - 1; i >= 0; i--) { - acc = (p * acc + (this.words[i] | 0)) % num; - } + Promise.prototype._settlePromiseFromHandler = function (handler, receiver, value, promise) { + var bitField = promise._bitField; + if ((bitField & 65536) !== 0) return; + promise._pushContext(); + var x; + if (receiver === APPLY) { + if (!value || typeof value.length !== "number") { + x = errorObj; + x.e = new TypeError("cannot .spread() a non-array: " + util.classString(value)); + } else { + x = tryCatch(handler).apply(this._boundValue(), value); + } + } else { + x = tryCatch(handler).call(receiver, value); + } + var promiseCreated = promise._popContext(); + bitField = promise._bitField; + if ((bitField & 65536) !== 0) return; - return acc; - }; + if (x === NEXT_FILTER) { + promise._reject(value); + } else if (x === errorObj || x === promise) { + var err = x === promise ? makeSelfResolutionError() : x.e; + promise._rejectCallback(err, false); + } else { + debug.checkForgottenReturns(x, promiseCreated, "", promise, this); + promise._resolveCallback(x); + } + }; - // In-place division by number - BN.prototype.idivn = function idivn(num) { - assert(num <= 0x3ffffff); + Promise.prototype._target = function () { + var ret = this; + while (ret._isFollowing()) { + ret = ret._followee(); + }return ret; + }; - var carry = 0; - for (var i = this.length - 1; i >= 0; i--) { - var w = (this.words[i] | 0) + carry * 0x4000000; - this.words[i] = w / num | 0; - carry = w % num; - } + Promise.prototype._followee = function () { + return this._rejectionHandler0; + }; - return this.strip(); - }; + Promise.prototype._setFollowee = function (promise) { + this._rejectionHandler0 = promise; + }; - BN.prototype.divn = function divn(num) { - return this.clone().idivn(num); - }; + Promise.prototype._settlePromise = function (promise, handler, receiver, value) { + var isPromise = promise instanceof Promise; + var bitField = this._bitField; + var asyncGuaranteed = (bitField & 134217728) !== 0; + if ((bitField & 65536) !== 0) { + if (isPromise) promise._invokeInternalOnCancel(); - BN.prototype.egcd = function egcd(p) { - assert(p.negative === 0); - assert(!p.isZero()); + if (receiver instanceof PassThroughHandlerContext && receiver.isFinallyHandler()) { + receiver.cancelPromise = promise; + if (tryCatch(handler).call(receiver, value) === errorObj) { + promise._reject(errorObj.e); + } + } else if (handler === reflectHandler) { + promise._fulfill(reflectHandler.call(receiver)); + } else if (receiver instanceof Proxyable) { + receiver._promiseCancelled(promise); + } else if (isPromise || promise instanceof PromiseArray) { + promise._cancel(); + } else { + receiver.cancel(); + } + } else if (typeof handler === "function") { + if (!isPromise) { + handler.call(receiver, value, promise); + } else { + if (asyncGuaranteed) promise._setAsyncGuaranteed(); + this._settlePromiseFromHandler(handler, receiver, value, promise); + } + } else if (receiver instanceof Proxyable) { + if (!receiver._isResolved()) { + if ((bitField & 33554432) !== 0) { + receiver._promiseFulfilled(value, promise); + } else { + receiver._promiseRejected(value, promise); + } + } + } else if (isPromise) { + if (asyncGuaranteed) promise._setAsyncGuaranteed(); + if ((bitField & 33554432) !== 0) { + promise._fulfill(value); + } else { + promise._reject(value); + } + } + }; - var x = this; - var y = p.clone(); + Promise.prototype._settlePromiseLateCancellationObserver = function (ctx) { + var handler = ctx.handler; + var promise = ctx.promise; + var receiver = ctx.receiver; + var value = ctx.value; + if (typeof handler === "function") { + if (!(promise instanceof Promise)) { + handler.call(receiver, value, promise); + } else { + this._settlePromiseFromHandler(handler, receiver, value, promise); + } + } else if (promise instanceof Promise) { + promise._reject(value); + } + }; - if (x.negative !== 0) { - x = x.umod(p); - } else { - x = x.clone(); - } + Promise.prototype._settlePromiseCtx = function (ctx) { + this._settlePromise(ctx.promise, ctx.handler, ctx.receiver, ctx.value); + }; - // A * x + B * y = x - var A = new BN(1); - var B = new BN(0); + Promise.prototype._settlePromise0 = function (handler, value, bitField) { + var promise = this._promise0; + var receiver = this._receiverAt(0); + this._promise0 = undefined; + this._receiver0 = undefined; + this._settlePromise(promise, handler, receiver, value); + }; - // C * x + D * y = y - var C = new BN(0); - var D = new BN(1); + Promise.prototype._clearCallbackDataAtIndex = function (index) { + var base = index * 4 - 4; + this[base + 2] = this[base + 3] = this[base + 0] = this[base + 1] = undefined; + }; - var g = 0; + Promise.prototype._fulfill = function (value) { + var bitField = this._bitField; + if ((bitField & 117506048) >>> 16) return; + if (value === this) { + var err = makeSelfResolutionError(); + this._attachExtraTrace(err); + return this._reject(err); + } + this._setFulfilled(); + this._rejectionHandler0 = value; - while (x.isEven() && y.isEven()) { - x.iushrn(1); - y.iushrn(1); - ++g; - } + if ((bitField & 65535) > 0) { + if ((bitField & 134217728) !== 0) { + this._settlePromises(); + } else { + async.settlePromises(this); + } + } + }; - var yp = y.clone(); - var xp = x.clone(); + Promise.prototype._reject = function (reason) { + var bitField = this._bitField; + if ((bitField & 117506048) >>> 16) return; + this._setRejected(); + this._fulfillmentHandler0 = reason; - while (!x.isZero()) { - for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1) {} - if (i > 0) { - x.iushrn(i); - while (i-- > 0) { - if (A.isOdd() || B.isOdd()) { - A.iadd(yp); - B.isub(xp); - } + if (this._isFinal()) { + return async.fatalError(reason, util.isNode); + } - A.iushrn(1); - B.iushrn(1); - } - } + if ((bitField & 65535) > 0) { + if ((bitField & 134217728) !== 0) { + this._settlePromises(); + } else { + async.settlePromises(this); + } + } else { + this._ensurePossibleRejectionHandled(); + } + }; - for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1) {} - if (j > 0) { - y.iushrn(j); - while (j-- > 0) { - if (C.isOdd() || D.isOdd()) { - C.iadd(yp); - D.isub(xp); - } + Promise.prototype._fulfillPromises = function (len, value) { + for (var i = 1; i < len; i++) { + var handler = this._fulfillmentHandlerAt(i); + var promise = this._promiseAt(i); + var receiver = this._receiverAt(i); + this._clearCallbackDataAtIndex(i); + this._settlePromise(promise, handler, receiver, value); + } + }; - C.iushrn(1); - D.iushrn(1); - } - } + Promise.prototype._rejectPromises = function (len, reason) { + for (var i = 1; i < len; i++) { + var handler = this._rejectionHandlerAt(i); + var promise = this._promiseAt(i); + var receiver = this._receiverAt(i); + this._clearCallbackDataAtIndex(i); + this._settlePromise(promise, handler, receiver, reason); + } + }; - if (x.cmp(y) >= 0) { - x.isub(y); - A.isub(C); - B.isub(D); - } else { - y.isub(x); - C.isub(A); - D.isub(B); - } - } + Promise.prototype._settlePromises = function () { + var bitField = this._bitField; + var len = bitField & 65535; - return { - a: C, - b: D, - gcd: y.iushln(g) - }; - }; + if (len > 0) { + if ((bitField & 16842752) !== 0) { + var reason = this._fulfillmentHandler0; + this._settlePromise0(this._rejectionHandler0, reason, bitField); + this._rejectPromises(len, reason); + } else { + var value = this._rejectionHandler0; + this._settlePromise0(this._fulfillmentHandler0, value, bitField); + this._fulfillPromises(len, value); + } + this._setLength(0); + } + this._clearCancellationData(); + }; - // This is reduced incarnation of the binary EEA - // above, designated to invert members of the - // _prime_ fields F(p) at a maximal speed - BN.prototype._invmp = function _invmp(p) { - assert(p.negative === 0); - assert(!p.isZero()); + Promise.prototype._settledValue = function () { + var bitField = this._bitField; + if ((bitField & 33554432) !== 0) { + return this._rejectionHandler0; + } else if ((bitField & 16777216) !== 0) { + return this._fulfillmentHandler0; + } + }; - var a = this; - var b = p.clone(); + function deferResolve(v) { + this.promise._resolveCallback(v); + } + function deferReject(v) { + this.promise._rejectCallback(v, false); + } - if (a.negative !== 0) { - a = a.umod(p); - } else { - a = a.clone(); - } + Promise.defer = Promise.pending = function () { + debug.deprecated("Promise.defer", "new Promise"); + var promise = new Promise(INTERNAL); + return { + promise: promise, + resolve: deferResolve, + reject: deferReject + }; + }; - var x1 = new BN(1); - var x2 = new BN(0); + util.notEnumerableProp(Promise, "_makeSelfResolutionError", makeSelfResolutionError); - var delta = b.clone(); + _dereq_("./method")(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug); + _dereq_("./bind")(Promise, INTERNAL, tryConvertToPromise, debug); + _dereq_("./cancel")(Promise, PromiseArray, apiRejection, debug); + _dereq_("./direct_resolve")(Promise); + _dereq_("./synchronous_inspection")(Promise); + _dereq_("./join")(Promise, PromiseArray, tryConvertToPromise, INTERNAL, debug); + Promise.Promise = Promise; + _dereq_('./map.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug); + _dereq_('./using.js')(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug); + _dereq_('./timers.js')(Promise, INTERNAL, debug); + _dereq_('./generators.js')(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug); + _dereq_('./nodeify.js')(Promise); + _dereq_('./call_get.js')(Promise); + _dereq_('./props.js')(Promise, PromiseArray, tryConvertToPromise, apiRejection); + _dereq_('./race.js')(Promise, INTERNAL, tryConvertToPromise, apiRejection); + _dereq_('./reduce.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug); + _dereq_('./settle.js')(Promise, PromiseArray, debug); + _dereq_('./some.js')(Promise, PromiseArray, apiRejection); + _dereq_('./promisify.js')(Promise, INTERNAL); + _dereq_('./any.js')(Promise); + _dereq_('./each.js')(Promise, INTERNAL); + _dereq_('./filter.js')(Promise, INTERNAL); - while (a.cmpn(1) > 0 && b.cmpn(1) > 0) { - for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1) {} - if (i > 0) { - a.iushrn(i); - while (i-- > 0) { - if (x1.isOdd()) { - x1.iadd(delta); + util.toFastProperties(Promise); + util.toFastProperties(Promise.prototype); + function fillTypes(value) { + var p = new Promise(INTERNAL); + p._fulfillmentHandler0 = value; + p._rejectionHandler0 = value; + p._promise0 = value; + p._receiver0 = value; } + // Complete slack tracking, opt out of field-type tracking and + // stabilize map + fillTypes({ a: 1 }); + fillTypes({ b: 2 }); + fillTypes({ c: 3 }); + fillTypes(1); + fillTypes(function () {}); + fillTypes(undefined); + fillTypes(false); + fillTypes(new Promise(INTERNAL)); + debug.setBounds(Async.firstLineError, util.lastLineError); + return Promise; + }; + }, { "./any.js": 1, "./async": 2, "./bind": 3, "./call_get.js": 5, "./cancel": 6, "./catch_filter": 7, "./context": 8, "./debuggability": 9, "./direct_resolve": 10, "./each.js": 11, "./errors": 12, "./es5": 13, "./filter.js": 14, "./finally": 15, "./generators.js": 16, "./join": 17, "./map.js": 18, "./method": 19, "./nodeback": 20, "./nodeify.js": 21, "./promise_array": 23, "./promisify.js": 24, "./props.js": 25, "./race.js": 27, "./reduce.js": 28, "./settle.js": 30, "./some.js": 31, "./synchronous_inspection": 32, "./thenables": 33, "./timers.js": 34, "./using.js": 35, "./util": 36 }], 23: [function (_dereq_, module, exports) { + "use strict"; - x1.iushrn(1); - } - } - - for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1) {} - if (j > 0) { - b.iushrn(j); - while (j-- > 0) { - if (x2.isOdd()) { - x2.iadd(delta); - } + module.exports = function (Promise, INTERNAL, tryConvertToPromise, apiRejection, Proxyable) { + var util = _dereq_("./util"); + var isArray = util.isArray; - x2.iushrn(1); - } - } - - if (a.cmp(b) >= 0) { - a.isub(b); - x1.isub(x2); - } else { - b.isub(a); - x2.isub(x1); - } - } + function toResolutionValue(val) { + switch (val) { + case -2: + return []; + case -3: + return {}; + } + } - var res; - if (a.cmpn(1) === 0) { - res = x1; - } else { - res = x2; - } + function PromiseArray(values) { + var promise = this._promise = new Promise(INTERNAL); + if (values instanceof Promise) { + promise._propagateFrom(values, 3); + } + promise._setOnCancel(this); + this._values = values; + this._length = 0; + this._totalResolved = 0; + this._init(undefined, -2); + } + util.inherits(PromiseArray, Proxyable); - if (res.cmpn(0) < 0) { - res.iadd(p); - } + PromiseArray.prototype.length = function () { + return this._length; + }; - return res; - }; + PromiseArray.prototype.promise = function () { + return this._promise; + }; - BN.prototype.gcd = function gcd(num) { - if (this.isZero()) return num.abs(); - if (num.isZero()) return this.abs(); + PromiseArray.prototype._init = function init(_, resolveValueIfEmpty) { + var values = tryConvertToPromise(this._values, this._promise); + if (values instanceof Promise) { + values = values._target(); + var bitField = values._bitField; + ; + this._values = values; - var a = this.clone(); - var b = num.clone(); - a.negative = 0; - b.negative = 0; + if ((bitField & 50397184) === 0) { + this._promise._setAsyncGuaranteed(); + return values._then(init, this._reject, undefined, this, resolveValueIfEmpty); + } else if ((bitField & 33554432) !== 0) { + values = values._value(); + } else if ((bitField & 16777216) !== 0) { + return this._reject(values._reason()); + } else { + return this._cancel(); + } + } + values = util.asArray(values); + if (values === null) { + var err = apiRejection("expecting an array or an iterable object but got " + util.classString(values)).reason(); + this._promise._rejectCallback(err, false); + return; + } - // Remove common factor of two - for (var shift = 0; a.isEven() && b.isEven(); shift++) { - a.iushrn(1); - b.iushrn(1); - } + if (values.length === 0) { + if (resolveValueIfEmpty === -5) { + this._resolveEmptyArray(); + } else { + this._resolve(toResolutionValue(resolveValueIfEmpty)); + } + return; + } + this._iterate(values); + }; - do { - while (a.isEven()) { - a.iushrn(1); - } - while (b.isEven()) { - b.iushrn(1); - } + PromiseArray.prototype._iterate = function (values) { + var len = this.getActualLength(values.length); + this._length = len; + this._values = this.shouldCopyValues() ? new Array(len) : this._values; + var result = this._promise; + var isResolved = false; + var bitField = null; + for (var i = 0; i < len; ++i) { + var maybePromise = tryConvertToPromise(values[i], result); - var r = a.cmp(b); - if (r < 0) { - // Swap `a` and `b` to make `a` always bigger than `b` - var t = a; - a = b; - b = t; - } else if (r === 0 || b.cmpn(1) === 0) { - break; - } + if (maybePromise instanceof Promise) { + maybePromise = maybePromise._target(); + bitField = maybePromise._bitField; + } else { + bitField = null; + } - a.isub(b); - } while (true); + if (isResolved) { + if (bitField !== null) { + maybePromise.suppressUnhandledRejections(); + } + } else if (bitField !== null) { + if ((bitField & 50397184) === 0) { + maybePromise._proxy(this, i); + this._values[i] = maybePromise; + } else if ((bitField & 33554432) !== 0) { + isResolved = this._promiseFulfilled(maybePromise._value(), i); + } else if ((bitField & 16777216) !== 0) { + isResolved = this._promiseRejected(maybePromise._reason(), i); + } else { + isResolved = this._promiseCancelled(i); + } + } else { + isResolved = this._promiseFulfilled(maybePromise, i); + } + } + if (!isResolved) result._setAsyncGuaranteed(); + }; - return b.iushln(shift); - }; + PromiseArray.prototype._isResolved = function () { + return this._values === null; + }; - // Invert number in the field F(num) - BN.prototype.invm = function invm(num) { - return this.egcd(num).a.umod(num); - }; + PromiseArray.prototype._resolve = function (value) { + this._values = null; + this._promise._fulfill(value); + }; - BN.prototype.isEven = function isEven() { - return (this.words[0] & 1) === 0; - }; + PromiseArray.prototype._cancel = function () { + if (this._isResolved() || !this._promise.isCancellable()) return; + this._values = null; + this._promise._cancel(); + }; - BN.prototype.isOdd = function isOdd() { - return (this.words[0] & 1) === 1; - }; + PromiseArray.prototype._reject = function (reason) { + this._values = null; + this._promise._rejectCallback(reason, false); + }; - // And first word and num - BN.prototype.andln = function andln(num) { - return this.words[0] & num; - }; + PromiseArray.prototype._promiseFulfilled = function (value, index) { + this._values[index] = value; + var totalResolved = ++this._totalResolved; + if (totalResolved >= this._length) { + this._resolve(this._values); + return true; + } + return false; + }; - // Increment at the bit position in-line - BN.prototype.bincn = function bincn(bit) { - assert(typeof bit === 'number'); - var r = bit % 26; - var s = (bit - r) / 26; - var q = 1 << r; + PromiseArray.prototype._promiseCancelled = function () { + this._cancel(); + return true; + }; - // Fast case: bit is much higher than all existing words - if (this.length <= s) { - this._expand(s + 1); - this.words[s] |= q; - return this; - } + PromiseArray.prototype._promiseRejected = function (reason) { + this._totalResolved++; + this._reject(reason); + return true; + }; - // Add bit and propagate, if needed - var carry = q; - for (var i = s; carry !== 0 && i < this.length; i++) { - var w = this.words[i] | 0; - w += carry; - carry = w >>> 26; - w &= 0x3ffffff; - this.words[i] = w; - } - if (carry !== 0) { - this.words[i] = carry; - this.length++; - } - return this; - }; + PromiseArray.prototype._resultCancelled = function () { + if (this._isResolved()) return; + var values = this._values; + this._cancel(); + if (values instanceof Promise) { + values.cancel(); + } else { + for (var i = 0; i < values.length; ++i) { + if (values[i] instanceof Promise) { + values[i].cancel(); + } + } + } + }; - BN.prototype.isZero = function isZero() { - return this.length === 1 && this.words[0] === 0; - }; + PromiseArray.prototype.shouldCopyValues = function () { + return true; + }; - BN.prototype.cmpn = function cmpn(num) { - var negative = num < 0; + PromiseArray.prototype.getActualLength = function (len) { + return len; + }; - if (this.negative !== 0 && !negative) return -1; - if (this.negative === 0 && negative) return 1; + return PromiseArray; + }; + }, { "./util": 36 }], 24: [function (_dereq_, module, exports) { + "use strict"; - this.strip(); + module.exports = function (Promise, INTERNAL) { + var THIS = {}; + var util = _dereq_("./util"); + var nodebackForPromise = _dereq_("./nodeback"); + var withAppended = util.withAppended; + var maybeWrapAsError = util.maybeWrapAsError; + var canEvaluate = util.canEvaluate; + var TypeError = _dereq_("./errors").TypeError; + var defaultSuffix = "Async"; + var defaultPromisified = { __isPromisified__: true }; + var noCopyProps = ["arity", "length", "name", "arguments", "caller", "callee", "prototype", "__isPromisified__"]; + var noCopyPropsPattern = new RegExp("^(?:" + noCopyProps.join("|") + ")$"); - var res; - if (this.length > 1) { - res = 1; - } else { - if (negative) { - num = -num; - } + var defaultFilter = function defaultFilter(name) { + return util.isIdentifier(name) && name.charAt(0) !== "_" && name !== "constructor"; + }; - assert(num <= 0x3ffffff, 'Number is too big'); + function propsFilter(key) { + return !noCopyPropsPattern.test(key); + } - var w = this.words[0] | 0; - res = w === num ? 0 : w < num ? -1 : 1; - } - if (this.negative !== 0) return -res | 0; - return res; - }; + function isPromisified(fn) { + try { + return fn.__isPromisified__ === true; + } catch (e) { + return false; + } + } - // Compare two numbers and return: - // 1 - if `this` > `num` - // 0 - if `this` == `num` - // -1 - if `this` < `num` - BN.prototype.cmp = function cmp(num) { - if (this.negative !== 0 && num.negative === 0) return -1; - if (this.negative === 0 && num.negative !== 0) return 1; + function hasPromisified(obj, key, suffix) { + var val = util.getDataPropertyOrDefault(obj, key + suffix, defaultPromisified); + return val ? isPromisified(val) : false; + } + function checkValid(ret, suffix, suffixRegexp) { + for (var i = 0; i < ret.length; i += 2) { + var key = ret[i]; + if (suffixRegexp.test(key)) { + var keyWithoutAsyncSuffix = key.replace(suffixRegexp, ""); + for (var j = 0; j < ret.length; j += 2) { + if (ret[j] === keyWithoutAsyncSuffix) { + throw new TypeError("Cannot promisify an API that has normal methods with '%s'-suffix\n\n See http://goo.gl/MqrFmX\n".replace("%s", suffix)); + } + } + } + } + } - var res = this.ucmp(num); - if (this.negative !== 0) return -res | 0; - return res; - }; + function promisifiableMethods(obj, suffix, suffixRegexp, filter) { + var keys = util.inheritedDataKeys(obj); + var ret = []; + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + var value = obj[key]; + var passesDefaultFilter = filter === defaultFilter ? true : defaultFilter(key, value, obj); + if (typeof value === "function" && !isPromisified(value) && !hasPromisified(obj, key, suffix) && filter(key, value, obj, passesDefaultFilter)) { + ret.push(key, value); + } + } + checkValid(ret, suffix, suffixRegexp); + return ret; + } - // Unsigned comparison - BN.prototype.ucmp = function ucmp(num) { - // At this point both numbers have the same sign - if (this.length > num.length) return 1; - if (this.length < num.length) return -1; + var escapeIdentRegex = function escapeIdentRegex(str) { + return str.replace(/([$])/, "\\$"); + }; - var res = 0; - for (var i = this.length - 1; i >= 0; i--) { - var a = this.words[i] | 0; - var b = num.words[i] | 0; + var makeNodePromisifiedEval; + if (!true) { + var switchCaseArgumentOrder = function switchCaseArgumentOrder(likelyArgumentCount) { + var ret = [likelyArgumentCount]; + var min = Math.max(0, likelyArgumentCount - 1 - 3); + for (var i = likelyArgumentCount - 1; i >= min; --i) { + ret.push(i); + } + for (var i = likelyArgumentCount + 1; i <= 3; ++i) { + ret.push(i); + } + return ret; + }; - if (a === b) continue; - if (a < b) { - res = -1; - } else if (a > b) { - res = 1; - } - break; - } - return res; - }; + var argumentSequence = function argumentSequence(argumentCount) { + return util.filledRange(argumentCount, "_arg", ""); + }; - BN.prototype.gtn = function gtn(num) { - return this.cmpn(num) === 1; - }; + var parameterDeclaration = function parameterDeclaration(parameterCount) { + return util.filledRange(Math.max(parameterCount, 3), "_arg", ""); + }; - BN.prototype.gt = function gt(num) { - return this.cmp(num) === 1; - }; + var parameterCount = function parameterCount(fn) { + if (typeof fn.length === "number") { + return Math.max(Math.min(fn.length, 1023 + 1), 0); + } + return 0; + }; - BN.prototype.gten = function gten(num) { - return this.cmpn(num) >= 0; - }; + makeNodePromisifiedEval = function makeNodePromisifiedEval(callback, receiver, originalName, fn, _, multiArgs) { + var newParameterCount = Math.max(0, parameterCount(fn) - 1); + var argumentOrder = switchCaseArgumentOrder(newParameterCount); + var shouldProxyThis = typeof callback === "string" || receiver === THIS; - BN.prototype.gte = function gte(num) { - return this.cmp(num) >= 0; - }; + function generateCallForArgumentCount(count) { + var args = argumentSequence(count).join(", "); + var comma = count > 0 ? ", " : ""; + var ret; + if (shouldProxyThis) { + ret = "ret = callback.call(this, {{args}}, nodeback); break;\n"; + } else { + ret = receiver === undefined ? "ret = callback({{args}}, nodeback); break;\n" : "ret = callback.call(receiver, {{args}}, nodeback); break;\n"; + } + return ret.replace("{{args}}", args).replace(", ", comma); + } - BN.prototype.ltn = function ltn(num) { - return this.cmpn(num) === -1; - }; + function generateArgumentSwitchCase() { + var ret = ""; + for (var i = 0; i < argumentOrder.length; ++i) { + ret += "case " + argumentOrder[i] + ":" + generateCallForArgumentCount(argumentOrder[i]); + } - BN.prototype.lt = function lt(num) { - return this.cmp(num) === -1; - }; + ret += " \n\ + default: \n\ + var args = new Array(len + 1); \n\ + var i = 0; \n\ + for (var i = 0; i < len; ++i) { \n\ + args[i] = arguments[i]; \n\ + } \n\ + args[i] = nodeback; \n\ + [CodeForCall] \n\ + break; \n\ + ".replace("[CodeForCall]", shouldProxyThis ? "ret = callback.apply(this, args);\n" : "ret = callback.apply(receiver, args);\n"); + return ret; + } - BN.prototype.lten = function lten(num) { - return this.cmpn(num) <= 0; - }; + var getFunctionCode = typeof callback === "string" ? "this != null ? this['" + callback + "'] : fn" : "fn"; + var body = "'use strict'; \n\ + var ret = function (Parameters) { \n\ + 'use strict'; \n\ + var len = arguments.length; \n\ + var promise = new Promise(INTERNAL); \n\ + promise._captureStackTrace(); \n\ + var nodeback = nodebackForPromise(promise, " + multiArgs + "); \n\ + var ret; \n\ + var callback = tryCatch([GetFunctionCode]); \n\ + switch(len) { \n\ + [CodeForSwitchCase] \n\ + } \n\ + if (ret === errorObj) { \n\ + promise._rejectCallback(maybeWrapAsError(ret.e), true, true);\n\ + } \n\ + if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); \n\ + return promise; \n\ + }; \n\ + notEnumerableProp(ret, '__isPromisified__', true); \n\ + return ret; \n\ + ".replace("[CodeForSwitchCase]", generateArgumentSwitchCase()).replace("[GetFunctionCode]", getFunctionCode); + body = body.replace("Parameters", parameterDeclaration(newParameterCount)); + return new Function("Promise", "fn", "receiver", "withAppended", "maybeWrapAsError", "nodebackForPromise", "tryCatch", "errorObj", "notEnumerableProp", "INTERNAL", body)(Promise, fn, receiver, withAppended, maybeWrapAsError, nodebackForPromise, util.tryCatch, util.errorObj, util.notEnumerableProp, INTERNAL); + }; + } - BN.prototype.lte = function lte(num) { - return this.cmp(num) <= 0; - }; + function makeNodePromisifiedClosure(callback, receiver, _, fn, __, multiArgs) { + var defaultThis = function () { + return this; + }(); + var method = callback; + if (typeof method === "string") { + callback = fn; + } + function promisified() { + var _receiver = receiver; + if (receiver === THIS) _receiver = this; + var promise = new Promise(INTERNAL); + promise._captureStackTrace(); + var cb = typeof method === "string" && this !== defaultThis ? this[method] : callback; + var fn = nodebackForPromise(promise, multiArgs); + try { + cb.apply(_receiver, withAppended(arguments, fn)); + } catch (e) { + promise._rejectCallback(maybeWrapAsError(e), true, true); + } + if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); + return promise; + } + util.notEnumerableProp(promisified, "__isPromisified__", true); + return promisified; + } - BN.prototype.eqn = function eqn(num) { - return this.cmpn(num) === 0; - }; + var makeNodePromisified = canEvaluate ? makeNodePromisifiedEval : makeNodePromisifiedClosure; - BN.prototype.eq = function eq(num) { - return this.cmp(num) === 0; - }; + function promisifyAll(obj, suffix, filter, promisifier, multiArgs) { + var suffixRegexp = new RegExp(escapeIdentRegex(suffix) + "$"); + var methods = promisifiableMethods(obj, suffix, suffixRegexp, filter); - // - // A reduce context, could be using montgomery or something better, depending - // on the `m` itself. - // - BN.red = function red(num) { - return new Red(num); - }; + for (var i = 0, len = methods.length; i < len; i += 2) { + var key = methods[i]; + var fn = methods[i + 1]; + var promisifiedKey = key + suffix; + if (promisifier === makeNodePromisified) { + obj[promisifiedKey] = makeNodePromisified(key, THIS, key, fn, suffix, multiArgs); + } else { + var promisified = promisifier(fn, function () { + return makeNodePromisified(key, THIS, key, fn, suffix, multiArgs); + }); + util.notEnumerableProp(promisified, "__isPromisified__", true); + obj[promisifiedKey] = promisified; + } + } + util.toFastProperties(obj); + return obj; + } - BN.prototype.toRed = function toRed(ctx) { - assert(!this.red, 'Already a number in reduction context'); - assert(this.negative === 0, 'red works only with positives'); - return ctx.convertTo(this)._forceRed(ctx); - }; + function promisify(callback, receiver, multiArgs) { + return makeNodePromisified(callback, receiver, undefined, callback, null, multiArgs); + } - BN.prototype.fromRed = function fromRed() { - assert(this.red, 'fromRed works only with numbers in reduction context'); - return this.red.convertFrom(this); - }; + Promise.promisify = function (fn, options) { + if (typeof fn !== "function") { + throw new TypeError("expecting a function but got " + util.classString(fn)); + } + if (isPromisified(fn)) { + return fn; + } + options = Object(options); + var receiver = options.context === undefined ? THIS : options.context; + var multiArgs = !!options.multiArgs; + var ret = promisify(fn, receiver, multiArgs); + util.copyDescriptors(fn, ret, propsFilter); + return ret; + }; - BN.prototype._forceRed = function _forceRed(ctx) { - this.red = ctx; - return this; - }; + Promise.promisifyAll = function (target, options) { + if (typeof target !== "function" && (typeof target === "undefined" ? "undefined" : _typeof(target)) !== "object") { + throw new TypeError("the target of promisifyAll must be an object or a function\n\n See http://goo.gl/MqrFmX\n"); + } + options = Object(options); + var multiArgs = !!options.multiArgs; + var suffix = options.suffix; + if (typeof suffix !== "string") suffix = defaultSuffix; + var filter = options.filter; + if (typeof filter !== "function") filter = defaultFilter; + var promisifier = options.promisifier; + if (typeof promisifier !== "function") promisifier = makeNodePromisified; - BN.prototype.forceRed = function forceRed(ctx) { - assert(!this.red, 'Already a number in reduction context'); - return this._forceRed(ctx); - }; + if (!util.isIdentifier(suffix)) { + throw new RangeError("suffix must be a valid identifier\n\n See http://goo.gl/MqrFmX\n"); + } - BN.prototype.redAdd = function redAdd(num) { - assert(this.red, 'redAdd works only with red numbers'); - return this.red.add(this, num); - }; + var keys = util.inheritedDataKeys(target); + for (var i = 0; i < keys.length; ++i) { + var value = target[keys[i]]; + if (keys[i] !== "constructor" && util.isClass(value)) { + promisifyAll(value.prototype, suffix, filter, promisifier, multiArgs); + promisifyAll(value, suffix, filter, promisifier, multiArgs); + } + } - BN.prototype.redIAdd = function redIAdd(num) { - assert(this.red, 'redIAdd works only with red numbers'); - return this.red.iadd(this, num); - }; + return promisifyAll(target, suffix, filter, promisifier, multiArgs); + }; + }; + }, { "./errors": 12, "./nodeback": 20, "./util": 36 }], 25: [function (_dereq_, module, exports) { + "use strict"; - BN.prototype.redSub = function redSub(num) { - assert(this.red, 'redSub works only with red numbers'); - return this.red.sub(this, num); - }; + module.exports = function (Promise, PromiseArray, tryConvertToPromise, apiRejection) { + var util = _dereq_("./util"); + var isObject = util.isObject; + var es5 = _dereq_("./es5"); + var Es6Map; + if (typeof Map === "function") Es6Map = Map; - BN.prototype.redISub = function redISub(num) { - assert(this.red, 'redISub works only with red numbers'); - return this.red.isub(this, num); - }; + var mapToEntries = function () { + var index = 0; + var size = 0; - BN.prototype.redShl = function redShl(num) { - assert(this.red, 'redShl works only with red numbers'); - return this.red.shl(this, num); - }; + function extractEntry(value, key) { + this[index] = value; + this[index + size] = key; + index++; + } - BN.prototype.redMul = function redMul(num) { - assert(this.red, 'redMul works only with red numbers'); - this.red._verify2(this, num); - return this.red.mul(this, num); - }; + return function mapToEntries(map) { + size = map.size; + index = 0; + var ret = new Array(map.size * 2); + map.forEach(extractEntry, ret); + return ret; + }; + }(); - BN.prototype.redIMul = function redIMul(num) { - assert(this.red, 'redMul works only with red numbers'); - this.red._verify2(this, num); - return this.red.imul(this, num); - }; + var entriesToMap = function entriesToMap(entries) { + var ret = new Es6Map(); + var length = entries.length / 2 | 0; + for (var i = 0; i < length; ++i) { + var key = entries[length + i]; + var value = entries[i]; + ret.set(key, value); + } + return ret; + }; - BN.prototype.redSqr = function redSqr() { - assert(this.red, 'redSqr works only with red numbers'); - this.red._verify1(this); - return this.red.sqr(this); - }; + function PropertiesPromiseArray(obj) { + var isMap = false; + var entries; + if (Es6Map !== undefined && obj instanceof Es6Map) { + entries = mapToEntries(obj); + isMap = true; + } else { + var keys = es5.keys(obj); + var len = keys.length; + entries = new Array(len * 2); + for (var i = 0; i < len; ++i) { + var key = keys[i]; + entries[i] = obj[key]; + entries[i + len] = key; + } + } + this.constructor$(entries); + this._isMap = isMap; + this._init$(undefined, -3); + } + util.inherits(PropertiesPromiseArray, PromiseArray); - BN.prototype.redISqr = function redISqr() { - assert(this.red, 'redISqr works only with red numbers'); - this.red._verify1(this); - return this.red.isqr(this); - }; + PropertiesPromiseArray.prototype._init = function () {}; - // Square root over p - BN.prototype.redSqrt = function redSqrt() { - assert(this.red, 'redSqrt works only with red numbers'); - this.red._verify1(this); - return this.red.sqrt(this); - }; + PropertiesPromiseArray.prototype._promiseFulfilled = function (value, index) { + this._values[index] = value; + var totalResolved = ++this._totalResolved; + if (totalResolved >= this._length) { + var val; + if (this._isMap) { + val = entriesToMap(this._values); + } else { + val = {}; + var keyOffset = this.length(); + for (var i = 0, len = this.length(); i < len; ++i) { + val[this._values[i + keyOffset]] = this._values[i]; + } + } + this._resolve(val); + return true; + } + return false; + }; - BN.prototype.redInvm = function redInvm() { - assert(this.red, 'redInvm works only with red numbers'); - this.red._verify1(this); - return this.red.invm(this); - }; + PropertiesPromiseArray.prototype.shouldCopyValues = function () { + return false; + }; - // Return negative clone of `this` % `red modulo` - BN.prototype.redNeg = function redNeg() { - assert(this.red, 'redNeg works only with red numbers'); - this.red._verify1(this); - return this.red.neg(this); - }; + PropertiesPromiseArray.prototype.getActualLength = function (len) { + return len >> 1; + }; - BN.prototype.redPow = function redPow(num) { - assert(this.red && !num.red, 'redPow(normalNum)'); - this.red._verify1(this); - return this.red.pow(this, num); - }; + function props(promises) { + var ret; + var castValue = tryConvertToPromise(promises); - // Prime numbers with efficient reduction - var primes = { - k256: null, - p224: null, - p192: null, - p25519: null - }; + if (!isObject(castValue)) { + return apiRejection("cannot await properties of a non-object\n\n See http://goo.gl/MqrFmX\n"); + } else if (castValue instanceof Promise) { + ret = castValue._then(Promise.props, undefined, undefined, undefined, undefined); + } else { + ret = new PropertiesPromiseArray(castValue).promise(); + } - // Pseudo-Mersenne prime - function MPrime(name, p) { - // P = 2 ^ N - K - this.name = name; - this.p = new BN(p, 16); - this.n = this.p.bitLength(); - this.k = new BN(1).iushln(this.n).isub(this.p); + if (castValue instanceof Promise) { + ret._propagateFrom(castValue, 2); + } + return ret; + } - this.tmp = this._tmp(); - } + Promise.prototype.props = function () { + return props(this); + }; - MPrime.prototype._tmp = function _tmp() { - var tmp = new BN(null); - tmp.words = new Array(Math.ceil(this.n / 13)); - return tmp; - }; + Promise.props = function (promises) { + return props(promises); + }; + }; + }, { "./es5": 13, "./util": 36 }], 26: [function (_dereq_, module, exports) { + "use strict"; - MPrime.prototype.ireduce = function ireduce(num) { - // Assumes that `num` is less than `P^2` - // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P) - var r = num; - var rlen; + function arrayMove(src, srcIndex, dst, dstIndex, len) { + for (var j = 0; j < len; ++j) { + dst[j + dstIndex] = src[j + srcIndex]; + src[j + srcIndex] = void 0; + } + } - do { - this.split(r, this.tmp); - r = this.imulK(r); - r = r.iadd(this.tmp); - rlen = r.bitLength(); - } while (rlen > this.n); + function Queue(capacity) { + this._capacity = capacity; + this._length = 0; + this._front = 0; + } - var cmp = rlen < this.n ? -1 : r.ucmp(this.p); - if (cmp === 0) { - r.words[0] = 0; - r.length = 1; - } else if (cmp > 0) { - r.isub(this.p); - } else { - r.strip(); - } + Queue.prototype._willBeOverCapacity = function (size) { + return this._capacity < size; + }; - return r; - }; + Queue.prototype._pushOne = function (arg) { + var length = this.length(); + this._checkCapacity(length + 1); + var i = this._front + length & this._capacity - 1; + this[i] = arg; + this._length = length + 1; + }; - MPrime.prototype.split = function split(input, out) { - input.iushrn(this.n, 0, out); - }; + Queue.prototype._unshiftOne = function (value) { + var capacity = this._capacity; + this._checkCapacity(this.length() + 1); + var front = this._front; + var i = (front - 1 & capacity - 1 ^ capacity) - capacity; + this[i] = value; + this._front = i; + this._length = this.length() + 1; + }; - MPrime.prototype.imulK = function imulK(num) { - return num.imul(this.k); - }; + Queue.prototype.unshift = function (fn, receiver, arg) { + this._unshiftOne(arg); + this._unshiftOne(receiver); + this._unshiftOne(fn); + }; - function K256() { - MPrime.call(this, 'k256', 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f'); - } - inherits(K256, MPrime); + Queue.prototype.push = function (fn, receiver, arg) { + var length = this.length() + 3; + if (this._willBeOverCapacity(length)) { + this._pushOne(fn); + this._pushOne(receiver); + this._pushOne(arg); + return; + } + var j = this._front + length - 3; + this._checkCapacity(length); + var wrapMask = this._capacity - 1; + this[j + 0 & wrapMask] = fn; + this[j + 1 & wrapMask] = receiver; + this[j + 2 & wrapMask] = arg; + this._length = length; + }; - K256.prototype.split = function split(input, output) { - // 256 = 9 * 26 + 22 - var mask = 0x3fffff; + Queue.prototype.shift = function () { + var front = this._front, + ret = this[front]; - var outLen = Math.min(input.length, 9); - for (var i = 0; i < outLen; i++) { - output.words[i] = input.words[i]; - } - output.length = outLen; + this[front] = undefined; + this._front = front + 1 & this._capacity - 1; + this._length--; + return ret; + }; - if (input.length <= 9) { - input.words[0] = 0; - input.length = 1; - return; - } + Queue.prototype.length = function () { + return this._length; + }; - // Shift by 9 limbs - var prev = input.words[9]; - output.words[output.length++] = prev & mask; + Queue.prototype._checkCapacity = function (size) { + if (this._capacity < size) { + this._resizeTo(this._capacity << 1); + } + }; - for (i = 10; i < input.length; i++) { - var next = input.words[i] | 0; - input.words[i - 10] = (next & mask) << 4 | prev >>> 22; - prev = next; - } - prev >>>= 22; - input.words[i - 10] = prev; - if (prev === 0 && input.length > 10) { - input.length -= 10; - } else { - input.length -= 9; - } - }; + Queue.prototype._resizeTo = function (capacity) { + var oldCapacity = this._capacity; + this._capacity = capacity; + var front = this._front; + var length = this._length; + var moveItemsCount = front + length & oldCapacity - 1; + arrayMove(this, 0, this, oldCapacity, moveItemsCount); + }; - K256.prototype.imulK = function imulK(num) { - // K = 0x1000003d1 = [ 0x40, 0x3d1 ] - num.words[num.length] = 0; - num.words[num.length + 1] = 0; - num.length += 2; + module.exports = Queue; + }, {}], 27: [function (_dereq_, module, exports) { + "use strict"; - // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390 - var lo = 0; - for (var i = 0; i < num.length; i++) { - var w = num.words[i] | 0; - lo += w * 0x3d1; - num.words[i] = lo & 0x3ffffff; - lo = w * 0x40 + (lo / 0x4000000 | 0); - } + module.exports = function (Promise, INTERNAL, tryConvertToPromise, apiRejection) { + var util = _dereq_("./util"); - // Fast length reduction - if (num.words[num.length - 1] === 0) { - num.length--; - if (num.words[num.length - 1] === 0) { - num.length--; - } - } - return num; - }; + var raceLater = function raceLater(promise) { + return promise.then(function (array) { + return race(array, promise); + }); + }; - function P224() { - MPrime.call(this, 'p224', 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001'); - } - inherits(P224, MPrime); + function race(promises, parent) { + var maybePromise = tryConvertToPromise(promises); - function P192() { - MPrime.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff'); - } - inherits(P192, MPrime); + if (maybePromise instanceof Promise) { + return raceLater(maybePromise); + } else { + promises = util.asArray(promises); + if (promises === null) return apiRejection("expecting an array or an iterable object but got " + util.classString(promises)); + } - function P25519() { - // 2 ^ 255 - 19 - MPrime.call(this, '25519', '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed'); - } - inherits(P25519, MPrime); + var ret = new Promise(INTERNAL); + if (parent !== undefined) { + ret._propagateFrom(parent, 3); + } + var fulfill = ret._fulfill; + var reject = ret._reject; + for (var i = 0, len = promises.length; i < len; ++i) { + var val = promises[i]; - P25519.prototype.imulK = function imulK(num) { - // K = 0x13 - var carry = 0; - for (var i = 0; i < num.length; i++) { - var hi = (num.words[i] | 0) * 0x13 + carry; - var lo = hi & 0x3ffffff; - hi >>>= 26; + if (val === undefined && !(i in promises)) { + continue; + } - num.words[i] = lo; - carry = hi; - } - if (carry !== 0) { - num.words[num.length++] = carry; - } - return num; - }; + Promise.cast(val)._then(fulfill, reject, undefined, ret, null); + } + return ret; + } - // Exported mostly for testing purposes, use plain name instead - BN._prime = function prime(name) { - // Cached version of prime - if (primes[name]) return primes[name]; + Promise.race = function (promises) { + return race(promises, undefined); + }; - var prime; - if (name === 'k256') { - prime = new K256(); - } else if (name === 'p224') { - prime = new P224(); - } else if (name === 'p192') { - prime = new P192(); - } else if (name === 'p25519') { - prime = new P25519(); - } else { - throw new Error('Unknown prime ' + name); - } - primes[name] = prime; + Promise.prototype.race = function () { + return race(this, undefined); + }; + }; + }, { "./util": 36 }], 28: [function (_dereq_, module, exports) { + "use strict"; - return prime; - }; - - // - // Base reduction engine - // - function Red(m) { - if (typeof m === 'string') { - var prime = BN._prime(m); - this.m = prime.p; - this.prime = prime; - } else { - assert(m.gtn(1), 'modulus must be greater than 1'); - this.m = m; - this.prime = null; - } - } + module.exports = function (Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug) { + var getDomain = Promise._getDomain; + var util = _dereq_("./util"); + var tryCatch = util.tryCatch; - Red.prototype._verify1 = function _verify1(a) { - assert(a.negative === 0, 'red works only with positives'); - assert(a.red, 'red works only with red numbers'); - }; + function ReductionPromiseArray(promises, fn, initialValue, _each) { + this.constructor$(promises); + var domain = getDomain(); + this._fn = domain === null ? fn : domain.bind(fn); + if (initialValue !== undefined) { + initialValue = Promise.resolve(initialValue); + initialValue._attachCancellationCallback(this); + } + this._initialValue = initialValue; + this._currentCancellable = null; + this._eachValues = _each === INTERNAL ? [] : undefined; + this._promise._captureStackTrace(); + this._init$(undefined, -5); + } + util.inherits(ReductionPromiseArray, PromiseArray); - Red.prototype._verify2 = function _verify2(a, b) { - assert((a.negative | b.negative) === 0, 'red works only with positives'); - assert(a.red && a.red === b.red, 'red works only with red numbers'); - }; + ReductionPromiseArray.prototype._gotAccum = function (accum) { + if (this._eachValues !== undefined && accum !== INTERNAL) { + this._eachValues.push(accum); + } + }; - Red.prototype.imod = function imod(a) { - if (this.prime) return this.prime.ireduce(a)._forceRed(this); - return a.umod(this.m)._forceRed(this); - }; + ReductionPromiseArray.prototype._eachComplete = function (value) { + this._eachValues.push(value); + return this._eachValues; + }; - Red.prototype.neg = function neg(a) { - if (a.isZero()) { - return a.clone(); - } + ReductionPromiseArray.prototype._init = function () {}; - return this.m.sub(a)._forceRed(this); - }; + ReductionPromiseArray.prototype._resolveEmptyArray = function () { + this._resolve(this._eachValues !== undefined ? this._eachValues : this._initialValue); + }; - Red.prototype.add = function add(a, b) { - this._verify2(a, b); + ReductionPromiseArray.prototype.shouldCopyValues = function () { + return false; + }; - var res = a.add(b); - if (res.cmp(this.m) >= 0) { - res.isub(this.m); - } - return res._forceRed(this); - }; + ReductionPromiseArray.prototype._resolve = function (value) { + this._promise._resolveCallback(value); + this._values = null; + }; - Red.prototype.iadd = function iadd(a, b) { - this._verify2(a, b); + ReductionPromiseArray.prototype._resultCancelled = function (sender) { + if (sender === this._initialValue) return this._cancel(); + if (this._isResolved()) return; + this._resultCancelled$(); + if (this._currentCancellable instanceof Promise) { + this._currentCancellable.cancel(); + } + if (this._initialValue instanceof Promise) { + this._initialValue.cancel(); + } + }; - var res = a.iadd(b); - if (res.cmp(this.m) >= 0) { - res.isub(this.m); - } - return res; - }; + ReductionPromiseArray.prototype._iterate = function (values) { + this._values = values; + var value; + var i; + var length = values.length; + if (this._initialValue !== undefined) { + value = this._initialValue; + i = 0; + } else { + value = Promise.resolve(values[0]); + i = 1; + } - Red.prototype.sub = function sub(a, b) { - this._verify2(a, b); + this._currentCancellable = value; - var res = a.sub(b); - if (res.cmpn(0) < 0) { - res.iadd(this.m); - } - return res._forceRed(this); - }; + if (!value.isRejected()) { + for (; i < length; ++i) { + var ctx = { + accum: null, + value: values[i], + index: i, + length: length, + array: this + }; + value = value._then(gotAccum, undefined, undefined, ctx, undefined); + } + } - Red.prototype.isub = function isub(a, b) { - this._verify2(a, b); + if (this._eachValues !== undefined) { + value = value._then(this._eachComplete, undefined, undefined, this, undefined); + } + value._then(completed, completed, undefined, value, this); + }; - var res = a.isub(b); - if (res.cmpn(0) < 0) { - res.iadd(this.m); - } - return res; - }; + Promise.prototype.reduce = function (fn, initialValue) { + return reduce(this, fn, initialValue, null); + }; - Red.prototype.shl = function shl(a, num) { - this._verify1(a); - return this.imod(a.ushln(num)); - }; + Promise.reduce = function (promises, fn, initialValue, _each) { + return reduce(promises, fn, initialValue, _each); + }; - Red.prototype.imul = function imul(a, b) { - this._verify2(a, b); - return this.imod(a.imul(b)); - }; + function completed(valueOrReason, array) { + if (this.isFulfilled()) { + array._resolve(valueOrReason); + } else { + array._reject(valueOrReason); + } + } - Red.prototype.mul = function mul(a, b) { - this._verify2(a, b); - return this.imod(a.mul(b)); - }; + function reduce(promises, fn, initialValue, _each) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + var array = new ReductionPromiseArray(promises, fn, initialValue, _each); + return array.promise(); + } - Red.prototype.isqr = function isqr(a) { - return this.imul(a, a.clone()); - }; + function gotAccum(accum) { + this.accum = accum; + this.array._gotAccum(accum); + var value = tryConvertToPromise(this.value, this.array._promise); + if (value instanceof Promise) { + this.array._currentCancellable = value; + return value._then(gotValue, undefined, undefined, this, undefined); + } else { + return gotValue.call(this, value); + } + } - Red.prototype.sqr = function sqr(a) { - return this.mul(a, a); - }; + function gotValue(value) { + var array = this.array; + var promise = array._promise; + var fn = tryCatch(array._fn); + promise._pushContext(); + var ret; + if (array._eachValues !== undefined) { + ret = fn.call(promise._boundValue(), value, this.index, this.length); + } else { + ret = fn.call(promise._boundValue(), this.accum, value, this.index, this.length); + } + if (ret instanceof Promise) { + array._currentCancellable = ret; + } + var promiseCreated = promise._popContext(); + debug.checkForgottenReturns(ret, promiseCreated, array._eachValues !== undefined ? "Promise.each" : "Promise.reduce", promise); + return ret; + } + }; + }, { "./util": 36 }], 29: [function (_dereq_, module, exports) { + "use strict"; - Red.prototype.sqrt = function sqrt(a) { - if (a.isZero()) return a.clone(); + var util = _dereq_("./util"); + var schedule; + var noAsyncScheduler = function noAsyncScheduler() { + throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n"); + }; + if (util.isNode && typeof MutationObserver === "undefined") { + var GlobalSetImmediate = global.setImmediate; + var ProcessNextTick = process.nextTick; + schedule = util.isRecentNode ? function (fn) { + GlobalSetImmediate.call(global, fn); + } : function (fn) { + ProcessNextTick.call(process, fn); + }; + } else if (typeof MutationObserver !== "undefined" && !(typeof window !== "undefined" && window.navigator && window.navigator.standalone)) { + schedule = function () { + var div = document.createElement("div"); + var opts = { attributes: true }; + var toggleScheduled = false; + var div2 = document.createElement("div"); + var o2 = new MutationObserver(function () { + div.classList.toggle("foo"); + toggleScheduled = false; + }); + o2.observe(div2, opts); - var mod3 = this.m.andln(3); - assert(mod3 % 2 === 1); + var scheduleToggle = function scheduleToggle() { + if (toggleScheduled) return; + toggleScheduled = true; + div2.classList.toggle("foo"); + }; - // Fast case - if (mod3 === 3) { - var pow = this.m.add(new BN(1)).iushrn(2); - return this.pow(a, pow); - } + return function schedule(fn) { + var o = new MutationObserver(function () { + o.disconnect(); + fn(); + }); + o.observe(div, opts); + scheduleToggle(); + }; + }(); + } else if (typeof setImmediate !== "undefined") { + schedule = function schedule(fn) { + setImmediate(fn); + }; + } else if (typeof setTimeout !== "undefined") { + schedule = function schedule(fn) { + setTimeout(fn, 0); + }; + } else { + schedule = noAsyncScheduler; + } + module.exports = schedule; + }, { "./util": 36 }], 30: [function (_dereq_, module, exports) { + "use strict"; - // Tonelli-Shanks algorithm (Totally unoptimized and slow) - // - // Find Q and S, that Q * 2 ^ S = (P - 1) - var q = this.m.subn(1); - var s = 0; - while (!q.isZero() && q.andln(1) === 0) { - s++; - q.iushrn(1); - } - assert(!q.isZero()); + module.exports = function (Promise, PromiseArray, debug) { + var PromiseInspection = Promise.PromiseInspection; + var util = _dereq_("./util"); - var one = new BN(1).toRed(this); - var nOne = one.redNeg(); + function SettledPromiseArray(values) { + this.constructor$(values); + } + util.inherits(SettledPromiseArray, PromiseArray); - // Find quadratic non-residue - // NOTE: Max is such because of generalized Riemann hypothesis. - var lpow = this.m.subn(1).iushrn(1); - var z = this.m.bitLength(); - z = new BN(2 * z * z).toRed(this); + SettledPromiseArray.prototype._promiseResolved = function (index, inspection) { + this._values[index] = inspection; + var totalResolved = ++this._totalResolved; + if (totalResolved >= this._length) { + this._resolve(this._values); + return true; + } + return false; + }; - while (this.pow(z, lpow).cmp(nOne) !== 0) { - z.redIAdd(nOne); - } + SettledPromiseArray.prototype._promiseFulfilled = function (value, index) { + var ret = new PromiseInspection(); + ret._bitField = 33554432; + ret._settledValueField = value; + return this._promiseResolved(index, ret); + }; + SettledPromiseArray.prototype._promiseRejected = function (reason, index) { + var ret = new PromiseInspection(); + ret._bitField = 16777216; + ret._settledValueField = reason; + return this._promiseResolved(index, ret); + }; - var c = this.pow(z, q); - var r = this.pow(a, q.addn(1).iushrn(1)); - var t = this.pow(a, q); - var m = s; - while (t.cmp(one) !== 0) { - var tmp = t; - for (var i = 0; tmp.cmp(one) !== 0; i++) { - tmp = tmp.redSqr(); - } - assert(i < m); - var b = this.pow(c, new BN(1).iushln(m - i - 1)); + Promise.settle = function (promises) { + debug.deprecated(".settle()", ".reflect()"); + return new SettledPromiseArray(promises).promise(); + }; - r = r.redMul(b); - c = b.redSqr(); - t = t.redMul(c); - m = i; - } + Promise.prototype.settle = function () { + return Promise.settle(this); + }; + }; + }, { "./util": 36 }], 31: [function (_dereq_, module, exports) { + "use strict"; - return r; - }; + module.exports = function (Promise, PromiseArray, apiRejection) { + var util = _dereq_("./util"); + var RangeError = _dereq_("./errors").RangeError; + var AggregateError = _dereq_("./errors").AggregateError; + var isArray = util.isArray; + var CANCELLATION = {}; - Red.prototype.invm = function invm(a) { - var inv = a._invmp(this.m); - if (inv.negative !== 0) { - inv.negative = 0; - return this.imod(inv).redNeg(); - } else { - return this.imod(inv); - } - }; + function SomePromiseArray(values) { + this.constructor$(values); + this._howMany = 0; + this._unwrap = false; + this._initialized = false; + } + util.inherits(SomePromiseArray, PromiseArray); - Red.prototype.pow = function pow(a, num) { - if (num.isZero()) return new BN(1).toRed(this); - if (num.cmpn(1) === 0) return a.clone(); + SomePromiseArray.prototype._init = function () { + if (!this._initialized) { + return; + } + if (this._howMany === 0) { + this._resolve([]); + return; + } + this._init$(undefined, -5); + var isArrayResolved = isArray(this._values); + if (!this._isResolved() && isArrayResolved && this._howMany > this._canPossiblyFulfill()) { + this._reject(this._getRangeError(this.length())); + } + }; - var windowSize = 4; - var wnd = new Array(1 << windowSize); - wnd[0] = new BN(1).toRed(this); - wnd[1] = a; - for (var i = 2; i < wnd.length; i++) { - wnd[i] = this.mul(wnd[i - 1], a); - } + SomePromiseArray.prototype.init = function () { + this._initialized = true; + this._init(); + }; - var res = wnd[0]; - var current = 0; - var currentLen = 0; - var start = num.bitLength() % 26; - if (start === 0) { - start = 26; - } + SomePromiseArray.prototype.setUnwrap = function () { + this._unwrap = true; + }; - for (i = num.length - 1; i >= 0; i--) { - var word = num.words[i]; - for (var j = start - 1; j >= 0; j--) { - var bit = word >> j & 1; - if (res !== wnd[0]) { - res = this.sqr(res); - } + SomePromiseArray.prototype.howMany = function () { + return this._howMany; + }; - if (bit === 0 && current === 0) { - currentLen = 0; - continue; - } + SomePromiseArray.prototype.setHowMany = function (count) { + this._howMany = count; + }; - current <<= 1; - current |= bit; - currentLen++; - if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue; + SomePromiseArray.prototype._promiseFulfilled = function (value) { + this._addFulfilled(value); + if (this._fulfilled() === this.howMany()) { + this._values.length = this.howMany(); + if (this.howMany() === 1 && this._unwrap) { + this._resolve(this._values[0]); + } else { + this._resolve(this._values); + } + return true; + } + return false; + }; + SomePromiseArray.prototype._promiseRejected = function (reason) { + this._addRejected(reason); + return this._checkOutcome(); + }; - res = this.mul(res, wnd[current]); - currentLen = 0; - current = 0; - } - start = 26; - } + SomePromiseArray.prototype._promiseCancelled = function () { + if (this._values instanceof Promise || this._values == null) { + return this._cancel(); + } + this._addRejected(CANCELLATION); + return this._checkOutcome(); + }; - return res; - }; + SomePromiseArray.prototype._checkOutcome = function () { + if (this.howMany() > this._canPossiblyFulfill()) { + var e = new AggregateError(); + for (var i = this.length(); i < this._values.length; ++i) { + if (this._values[i] !== CANCELLATION) { + e.push(this._values[i]); + } + } + if (e.length > 0) { + this._reject(e); + } else { + this._cancel(); + } + return true; + } + return false; + }; - Red.prototype.convertTo = function convertTo(num) { - var r = num.umod(this.m); + SomePromiseArray.prototype._fulfilled = function () { + return this._totalResolved; + }; - return r === num ? r.clone() : r; - }; + SomePromiseArray.prototype._rejected = function () { + return this._values.length - this.length(); + }; - Red.prototype.convertFrom = function convertFrom(num) { - var res = num.clone(); - res.red = null; - return res; - }; + SomePromiseArray.prototype._addRejected = function (reason) { + this._values.push(reason); + }; - // - // Montgomery method engine - // + SomePromiseArray.prototype._addFulfilled = function (value) { + this._values[this._totalResolved++] = value; + }; - BN.mont = function mont(num) { - return new Mont(num); - }; + SomePromiseArray.prototype._canPossiblyFulfill = function () { + return this.length() - this._rejected(); + }; - function Mont(m) { - Red.call(this, m); - - this.shift = this.m.bitLength(); - if (this.shift % 26 !== 0) { - this.shift += 26 - this.shift % 26; - } - - this.r = new BN(1).iushln(this.shift); - this.r2 = this.imod(this.r.sqr()); - this.rinv = this.r._invmp(this.m); - - this.minv = this.rinv.mul(this.r).isubn(1).div(this.m); - this.minv = this.minv.umod(this.r); - this.minv = this.r.sub(this.minv); - } - inherits(Mont, Red); - - Mont.prototype.convertTo = function convertTo(num) { - return this.imod(num.ushln(this.shift)); - }; - - Mont.prototype.convertFrom = function convertFrom(num) { - var r = this.imod(num.mul(this.rinv)); - r.red = null; - return r; - }; - - Mont.prototype.imul = function imul(a, b) { - if (a.isZero() || b.isZero()) { - a.words[0] = 0; - a.length = 1; - return a; - } - - var t = a.imul(b); - var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m); - var u = t.isub(c).iushrn(this.shift); - var res = u; - - if (u.cmp(this.m) >= 0) { - res = u.isub(this.m); - } else if (u.cmpn(0) < 0) { - res = u.iadd(this.m); - } - - return res._forceRed(this); - }; - - Mont.prototype.mul = function mul(a, b) { - if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this); - - var t = a.mul(b); - var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m); - var u = t.isub(c).iushrn(this.shift); - var res = u; - if (u.cmp(this.m) >= 0) { - res = u.isub(this.m); - } else if (u.cmpn(0) < 0) { - res = u.iadd(this.m); - } - - return res._forceRed(this); - }; + SomePromiseArray.prototype._getRangeError = function (count) { + var message = "Input array must contain at least " + this._howMany + " items but contains only " + count + " items"; + return new RangeError(message); + }; - Mont.prototype.invm = function invm(a) { - // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R - var res = this.imod(a._invmp(this.m).mul(this.r2)); - return res._forceRed(this); - }; - })(typeof module === 'undefined' || module, this); - }, { "buffer": 17 }], 229: [function (require, module, exports) { - (function (process, global) { - /* @preserve - * The MIT License (MIT) - * - * Copyright (c) 2013-2015 Petka Antonov - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - */ - /** - * bluebird build version 3.3.1 - * Features enabled: core, race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each - */ - !function (e) { - if ("object" == (typeof exports === "undefined" ? "undefined" : _typeof(exports)) && "undefined" != typeof module) module.exports = e();else if ("function" == typeof define && define.amd) define([], e);else { - var f;"undefined" != typeof window ? f = window : "undefined" != typeof global ? f = global : "undefined" != typeof self && (f = self), f.Promise = e(); - } - }(function () { - var define, module, exports;return function e(t, n, r) { - function s(o, u) { - if (!n[o]) { - if (!t[o]) { - var a = typeof _dereq_ == "function" && _dereq_;if (!u && a) return a(o, !0);if (i) return i(o, !0);var f = new Error("Cannot find module '" + o + "'");throw f.code = "MODULE_NOT_FOUND", f; - }var l = n[o] = { exports: {} };t[o][0].call(l.exports, function (e) { - var n = t[o][1][e];return s(n ? n : e); - }, l, l.exports, e, t, n, r); - }return n[o].exports; - }var i = typeof _dereq_ == "function" && _dereq_;for (var o = 0; o < r.length; o++) { - s(r[o]); - }return s; - }({ 1: [function (_dereq_, module, exports) { - "use strict"; + SomePromiseArray.prototype._resolveEmptyArray = function () { + this._reject(this._getRangeError(0)); + }; - module.exports = function (Promise) { - var SomePromiseArray = Promise._SomePromiseArray; - function any(promises) { + function some(promises, howMany) { + if ((howMany | 0) !== howMany || howMany < 0) { + return apiRejection("expecting a positive integer\n\n See http://goo.gl/MqrFmX\n"); + } var ret = new SomePromiseArray(promises); var promise = ret.promise(); - ret.setHowMany(1); - ret.setUnwrap(); + ret.setHowMany(howMany); ret.init(); return promise; } - Promise.any = function (promises) { - return any(promises); - }; - - Promise.prototype.any = function () { - return any(this); + Promise.some = function (promises, howMany) { + return some(promises, howMany); }; - }; - }, {}], 2: [function (_dereq_, module, exports) { - "use strict"; - - var firstLineError; - try { - throw new Error(); - } catch (e) { - firstLineError = e; - } - var schedule = _dereq_("./schedule"); - var Queue = _dereq_("./queue"); - var util = _dereq_("./util"); - function Async() { - this._isTickUsed = false; - this._lateQueue = new Queue(16); - this._normalQueue = new Queue(16); - this._haveDrainedQueues = false; - this._trampolineEnabled = true; - var self = this; - this.drainQueues = function () { - self._drainQueues(); + Promise.prototype.some = function (howMany) { + return some(this, howMany); }; - this._schedule = schedule; - } - - Async.prototype.enableTrampoline = function () { - this._trampolineEnabled = true; - }; - - Async.prototype.disableTrampolineIfNecessary = function () { - if (util.hasDevTools) { - this._trampolineEnabled = false; - } - }; - - Async.prototype.haveItemsQueued = function () { - return this._isTickUsed || this._haveDrainedQueues; - }; - Async.prototype.fatalError = function (e, isNode) { - if (isNode) { - process.stderr.write("Fatal " + (e instanceof Error ? e.stack : e)); - process.exit(2); - } else { - this.throwLater(e); - } + Promise._SomePromiseArray = SomePromiseArray; }; + }, { "./errors": 12, "./util": 36 }], 32: [function (_dereq_, module, exports) { + "use strict"; - Async.prototype.throwLater = function (fn, arg) { - if (arguments.length === 1) { - arg = fn; - fn = function fn() { - throw arg; - }; - } - if (typeof setTimeout !== "undefined") { - setTimeout(function () { - fn(arg); - }, 0); - } else try { - this._schedule(function () { - fn(arg); - }); - } catch (e) { - throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n"); + module.exports = function (Promise) { + function PromiseInspection(promise) { + if (promise !== undefined) { + promise = promise._target(); + this._bitField = promise._bitField; + this._settledValueField = promise._isFateSealed() ? promise._settledValue() : undefined; + } else { + this._bitField = 0; + this._settledValueField = undefined; + } } - }; - - function AsyncInvokeLater(fn, receiver, arg) { - this._lateQueue.push(fn, receiver, arg); - this._queueTick(); - } - - function AsyncInvoke(fn, receiver, arg) { - this._normalQueue.push(fn, receiver, arg); - this._queueTick(); - } - function AsyncSettlePromises(promise) { - this._normalQueue._pushOne(promise); - this._queueTick(); - } + PromiseInspection.prototype._settledValue = function () { + return this._settledValueField; + }; - if (!util.hasDevTools) { - Async.prototype.invokeLater = AsyncInvokeLater; - Async.prototype.invoke = AsyncInvoke; - Async.prototype.settlePromises = AsyncSettlePromises; - } else { - Async.prototype.invokeLater = function (fn, receiver, arg) { - if (this._trampolineEnabled) { - AsyncInvokeLater.call(this, fn, receiver, arg); - } else { - this._schedule(function () { - setTimeout(function () { - fn.call(receiver, arg); - }, 100); - }); + var value = PromiseInspection.prototype.value = function () { + if (!this.isFulfilled()) { + throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\n\n See http://goo.gl/MqrFmX\n"); } + return this._settledValue(); }; - Async.prototype.invoke = function (fn, receiver, arg) { - if (this._trampolineEnabled) { - AsyncInvoke.call(this, fn, receiver, arg); - } else { - this._schedule(function () { - fn.call(receiver, arg); - }); + var reason = PromiseInspection.prototype.error = PromiseInspection.prototype.reason = function () { + if (!this.isRejected()) { + throw new TypeError("cannot get rejection reason of a non-rejected promise\n\n See http://goo.gl/MqrFmX\n"); } + return this._settledValue(); }; - Async.prototype.settlePromises = function (promise) { - if (this._trampolineEnabled) { - AsyncSettlePromises.call(this, promise); - } else { - this._schedule(function () { - promise._settlePromises(); - }); - } + var isFulfilled = PromiseInspection.prototype.isFulfilled = function () { + return (this._bitField & 33554432) !== 0; }; - } - Async.prototype.invokeFirst = function (fn, receiver, arg) { - this._normalQueue.unshift(fn, receiver, arg); - this._queueTick(); - }; + var isRejected = PromiseInspection.prototype.isRejected = function () { + return (this._bitField & 16777216) !== 0; + }; - Async.prototype._drainQueue = function (queue) { - while (queue.length() > 0) { - var fn = queue.shift(); - if (typeof fn !== "function") { - fn._settlePromises(); - continue; - } - var receiver = queue.shift(); - var arg = queue.shift(); - fn.call(receiver, arg); - } - }; + var isPending = PromiseInspection.prototype.isPending = function () { + return (this._bitField & 50397184) === 0; + }; - Async.prototype._drainQueues = function () { - this._drainQueue(this._normalQueue); - this._reset(); - this._haveDrainedQueues = true; - this._drainQueue(this._lateQueue); - }; + var isResolved = PromiseInspection.prototype.isResolved = function () { + return (this._bitField & 50331648) !== 0; + }; - Async.prototype._queueTick = function () { - if (!this._isTickUsed) { - this._isTickUsed = true; - this._schedule(this.drainQueues); - } - }; + PromiseInspection.prototype.isCancelled = Promise.prototype._isCancelled = function () { + return (this._bitField & 65536) === 65536; + }; - Async.prototype._reset = function () { - this._isTickUsed = false; - }; + Promise.prototype.isCancelled = function () { + return this._target()._isCancelled(); + }; - module.exports = Async; - module.exports.firstLineError = firstLineError; - }, { "./queue": 26, "./schedule": 29, "./util": 36 }], 3: [function (_dereq_, module, exports) { - "use strict"; + Promise.prototype.isPending = function () { + return isPending.call(this._target()); + }; - module.exports = function (Promise, INTERNAL, tryConvertToPromise, debug) { - var calledBind = false; - var rejectThis = function rejectThis(_, e) { - this._reject(e); + Promise.prototype.isRejected = function () { + return isRejected.call(this._target()); }; - var targetRejected = function targetRejected(e, context) { - context.promiseRejectionQueued = true; - context.bindingPromise._then(rejectThis, rejectThis, null, this, e); + Promise.prototype.isFulfilled = function () { + return isFulfilled.call(this._target()); }; - var bindingResolved = function bindingResolved(thisArg, context) { - if ((this._bitField & 50397184) === 0) { - this._resolveCallback(context.target); - } + Promise.prototype.isResolved = function () { + return isResolved.call(this._target()); }; - var bindingRejected = function bindingRejected(e, context) { - if (!context.promiseRejectionQueued) this._reject(e); + Promise.prototype.value = function () { + return value.call(this._target()); }; - Promise.prototype.bind = function (thisArg) { - if (!calledBind) { - calledBind = true; - Promise.prototype._propagateFrom = debug.propagateFromFunction(); - Promise.prototype._boundValue = debug.boundValueFunction(); - } - var maybePromise = tryConvertToPromise(thisArg); - var ret = new Promise(INTERNAL); - ret._propagateFrom(this, 1); + Promise.prototype.reason = function () { var target = this._target(); - ret._setBoundTo(maybePromise); - if (maybePromise instanceof Promise) { - var context = { - promiseRejectionQueued: false, - promise: ret, - target: target, - bindingPromise: maybePromise - }; - target._then(INTERNAL, targetRejected, undefined, ret, context); - maybePromise._then(bindingResolved, bindingRejected, undefined, ret, context); - ret._setOnCancel(maybePromise); - } else { - ret._resolveCallback(target); - } - return ret; + target._unsetRejectionIsUnhandled(); + return reason.call(target); }; - Promise.prototype._setBoundTo = function (obj) { - if (obj !== undefined) { - this._bitField = this._bitField | 2097152; - this._boundTo = obj; - } else { - this._bitField = this._bitField & ~2097152; - } + Promise.prototype._value = function () { + return this._settledValue(); }; - Promise.prototype._isBound = function () { - return (this._bitField & 2097152) === 2097152; + Promise.prototype._reason = function () { + this._unsetRejectionIsUnhandled(); + return this._settledValue(); }; - Promise.bind = function (thisArg, value) { - return Promise.resolve(value).bind(thisArg); - }; + Promise.PromiseInspection = PromiseInspection; }; - }, {}], 4: [function (_dereq_, module, exports) { - "use strict"; - - var old; - if (typeof Promise !== "undefined") old = Promise; - function noConflict() { - try { - if (Promise === bluebird) Promise = old; - } catch (e) {} - return bluebird; - } - var bluebird = _dereq_("./promise")(); - bluebird.noConflict = noConflict; - module.exports = bluebird; - }, { "./promise": 22 }], 5: [function (_dereq_, module, exports) { + }, {}], 33: [function (_dereq_, module, exports) { "use strict"; - var cr = Object.create; - if (cr) { - var callerCache = cr(null); - var getterCache = cr(null); - callerCache[" size"] = getterCache[" size"] = 0; - } - - module.exports = function (Promise) { + module.exports = function (Promise, INTERNAL) { var util = _dereq_("./util"); - var canEvaluate = util.canEvaluate; - var isIdentifier = util.isIdentifier; - - var getMethodCaller; - var getGetter; - if (!true) { - var makeMethodCaller = function makeMethodCaller(methodName) { - return new Function("ensureMethod", " \n\ - return function(obj) { \n\ - 'use strict' \n\ - var len = this.length; \n\ - ensureMethod(obj, 'methodName'); \n\ - switch(len) { \n\ - case 1: return obj.methodName(this[0]); \n\ - case 2: return obj.methodName(this[0], this[1]); \n\ - case 3: return obj.methodName(this[0], this[1], this[2]); \n\ - case 0: return obj.methodName(); \n\ - default: \n\ - return obj.methodName.apply(obj, this); \n\ - } \n\ - }; \n\ - ".replace(/methodName/g, methodName))(ensureMethod); - }; - - var makeGetter = function makeGetter(propertyName) { - return new Function("obj", " \n\ - 'use strict'; \n\ - return obj.propertyName; \n\ - ".replace("propertyName", propertyName)); - }; + var errorObj = util.errorObj; + var isObject = util.isObject; - var getCompiled = function getCompiled(name, compiler, cache) { - var ret = cache[name]; - if (typeof ret !== "function") { - if (!isIdentifier(name)) { - return null; - } - ret = compiler(name); - cache[name] = ret; - cache[" size"]++; - if (cache[" size"] > 512) { - var keys = Object.keys(cache); - for (var i = 0; i < 256; ++i) { - delete cache[keys[i]]; - }cache[" size"] = keys.length - 256; + function tryConvertToPromise(obj, context) { + if (isObject(obj)) { + if (obj instanceof Promise) return obj; + var then = getThen(obj); + if (then === errorObj) { + if (context) context._pushContext(); + var ret = Promise.reject(then.e); + if (context) context._popContext(); + return ret; + } else if (typeof then === "function") { + if (isAnyBluebirdPromise(obj)) { + var ret = new Promise(INTERNAL); + obj._then(ret._fulfill, ret._reject, undefined, ret, null); + return ret; } + return doThenable(obj, then, context); } - return ret; - }; - - getMethodCaller = function getMethodCaller(name) { - return getCompiled(name, makeMethodCaller, callerCache); - }; + } + return obj; + } - getGetter = function getGetter(name) { - return getCompiled(name, makeGetter, getterCache); - }; + function doGetThen(obj) { + return obj.then; } - function ensureMethod(obj, methodName) { - var fn; - if (obj != null) fn = obj[methodName]; - if (typeof fn !== "function") { - var message = "Object " + util.classString(obj) + " has no method '" + util.toString(methodName) + "'"; - throw new Promise.TypeError(message); + function getThen(obj) { + try { + return doGetThen(obj); + } catch (e) { + errorObj.e = e; + return errorObj; } - return fn; } - function caller(obj) { - var methodName = this.pop(); - var fn = ensureMethod(obj, methodName); - return fn.apply(obj, this); + var hasProp = {}.hasOwnProperty; + function isAnyBluebirdPromise(obj) { + return hasProp.call(obj, "_promise0"); } - Promise.prototype.call = function (methodName) { - var args = [].slice.call(arguments, 1);; - if (!true) { - if (canEvaluate) { - var maybeCaller = getMethodCaller(methodName); - if (maybeCaller !== null) { - return this._then(maybeCaller, undefined, undefined, args, undefined); - } - } + + function doThenable(x, then, context) { + var promise = new Promise(INTERNAL); + var ret = promise; + if (context) context._pushContext(); + promise._captureStackTrace(); + if (context) context._popContext(); + var synchronous = true; + var result = util.tryCatch(then).call(x, resolve, reject); + synchronous = false; + + if (promise && result === errorObj) { + promise._rejectCallback(result.e, true, true); + promise = null; } - args.push(methodName); - return this._then(caller, undefined, undefined, args, undefined); - }; - function namedGetter(obj) { - return obj[this]; - } - function indexedGetter(obj) { - var index = +this; - if (index < 0) index = Math.max(0, index + obj.length); - return obj[index]; - } - Promise.prototype.get = function (propertyName) { - var isIndex = typeof propertyName === "number"; - var getter; - if (!isIndex) { - if (canEvaluate) { - var maybeGetter = getGetter(propertyName); - getter = maybeGetter !== null ? maybeGetter : namedGetter; - } else { - getter = namedGetter; - } - } else { - getter = indexedGetter; + function resolve(value) { + if (!promise) return; + promise._resolveCallback(value); + promise = null; } - return this._then(getter, undefined, undefined, propertyName, undefined); - }; + + function reject(reason) { + if (!promise) return; + promise._rejectCallback(reason, synchronous, true); + promise = null; + } + return ret; + } + + return tryConvertToPromise; }; - }, { "./util": 36 }], 6: [function (_dereq_, module, exports) { + }, { "./util": 36 }], 34: [function (_dereq_, module, exports) { "use strict"; - module.exports = function (Promise, PromiseArray, apiRejection, debug) { + module.exports = function (Promise, INTERNAL, debug) { var util = _dereq_("./util"); - var tryCatch = util.tryCatch; - var errorObj = util.errorObj; - var async = Promise._async; - - Promise.prototype["break"] = Promise.prototype.cancel = function () { - if (!debug.cancellation()) return this._warn("cancellation is disabled"); - - var promise = this; - var child = promise; - while (promise.isCancellable()) { - if (!promise._cancelBy(child)) { - if (child._isFollowing()) { - child._followee().cancel(); - } else { - child._cancelBranched(); - } - break; - } + var TimeoutError = Promise.TimeoutError; - var parent = promise._cancellationParent; - if (parent == null || !parent.isCancellable()) { - if (promise._isFollowing()) { - promise._followee().cancel(); - } else { - promise._cancelBranched(); - } - break; - } else { - if (promise._isFollowing()) promise._followee().cancel(); - child = promise; - promise = parent; - } - } - }; + function HandleWrapper(handle) { + this.handle = handle; + } - Promise.prototype._branchHasCancelled = function () { - this._branchesRemainingToCancel--; + HandleWrapper.prototype._resultCancelled = function () { + clearTimeout(this.handle); }; - Promise.prototype._enoughBranchesHaveCancelled = function () { - return this._branchesRemainingToCancel === undefined || this._branchesRemainingToCancel <= 0; + var afterValue = function afterValue(value) { + return delay(+this).thenReturn(value); }; - - Promise.prototype._cancelBy = function (canceller) { - if (canceller === this) { - this._branchesRemainingToCancel = 0; - this._invokeOnCancel(); - return true; + var delay = Promise.delay = function (ms, value) { + var ret; + var handle; + if (value !== undefined) { + ret = Promise.resolve(value)._then(afterValue, null, null, ms, undefined); + if (debug.cancellation() && value instanceof Promise) { + ret._setOnCancel(value); + } } else { - this._branchHasCancelled(); - if (this._enoughBranchesHaveCancelled()) { - this._invokeOnCancel(); - return true; + ret = new Promise(INTERNAL); + handle = setTimeout(function () { + ret._fulfill(); + }, +ms); + if (debug.cancellation()) { + ret._setOnCancel(new HandleWrapper(handle)); } } - return false; + ret._setAsyncGuaranteed(); + return ret; }; - Promise.prototype._cancelBranched = function () { - if (this._enoughBranchesHaveCancelled()) { - this._cancel(); - } + Promise.prototype.delay = function (ms) { + return delay(ms, this); }; - Promise.prototype._cancel = function () { - if (!this.isCancellable()) return; + var afterTimeout = function afterTimeout(promise, message, parent) { + var err; + if (typeof message !== "string") { + if (message instanceof Error) { + err = message; + } else { + err = new TimeoutError("operation timed out"); + } + } else { + err = new TimeoutError(message); + } + util.markAsOriginatingFromRejection(err); + promise._attachExtraTrace(err); + promise._reject(err); - this._setCancelled(); - async.invoke(this._cancelPromises, this, undefined); + if (parent != null) { + parent.cancel(); + } }; - Promise.prototype._cancelPromises = function () { - if (this._length() > 0) this._settlePromises(); - }; + function successClear(value) { + clearTimeout(this.handle); + return value; + } - Promise.prototype._unsetOnCancel = function () { - this._onCancelField = undefined; - }; + function failureClear(reason) { + clearTimeout(this.handle); + throw reason; + } - Promise.prototype.isCancellable = function () { - return this.isPending() && !this.isCancelled(); - }; + Promise.prototype.timeout = function (ms, message) { + ms = +ms; + var ret, parent; - Promise.prototype._doInvokeOnCancel = function (onCancelCallback, internalOnly) { - if (util.isArray(onCancelCallback)) { - for (var i = 0; i < onCancelCallback.length; ++i) { - this._doInvokeOnCancel(onCancelCallback[i], internalOnly); - } - } else if (onCancelCallback !== undefined) { - if (typeof onCancelCallback === "function") { - if (!internalOnly) { - var e = tryCatch(onCancelCallback).call(this._boundValue()); - if (e === errorObj) { - this._attachExtraTrace(e.e); - async.throwLater(e.e); - } - } - } else { - onCancelCallback._resultCancelled(this); + var handleWrapper = new HandleWrapper(setTimeout(function timeoutTimeout() { + if (ret.isPending()) { + afterTimeout(ret, message, parent); } - } - }; - - Promise.prototype._invokeOnCancel = function () { - var onCancelCallback = this._onCancel(); - this._unsetOnCancel(); - async.invoke(this._doInvokeOnCancel, this, onCancelCallback); - }; + }, ms)); - Promise.prototype._invokeInternalOnCancel = function () { - if (this.isCancellable()) { - this._doInvokeOnCancel(this._onCancel(), true); - this._unsetOnCancel(); + if (debug.cancellation()) { + parent = this.then(); + ret = parent._then(successClear, failureClear, undefined, handleWrapper, undefined); + ret._setOnCancel(handleWrapper); + } else { + ret = this._then(successClear, failureClear, undefined, handleWrapper, undefined); } - }; - Promise.prototype._resultCancelled = function () { - this.cancel(); + return ret; }; }; - }, { "./util": 36 }], 7: [function (_dereq_, module, exports) { + }, { "./util": 36 }], 35: [function (_dereq_, module, exports) { "use strict"; - module.exports = function (NEXT_FILTER) { + module.exports = function (Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug) { var util = _dereq_("./util"); - var getKeys = _dereq_("./es5").keys; - var tryCatch = util.tryCatch; + var TypeError = _dereq_("./errors").TypeError; + var inherits = _dereq_("./util").inherits; var errorObj = util.errorObj; + var tryCatch = util.tryCatch; - function catchFilter(instances, cb, promise) { - return function (e) { - var boundTo = promise._boundValue(); - predicateLoop: for (var i = 0; i < instances.length; ++i) { - var item = instances[i]; - - if (item === Error || item != null && item.prototype instanceof Error) { - if (e instanceof item) { - return tryCatch(cb).call(boundTo, e); - } - } else if (typeof item === "function") { - var matchesPredicate = tryCatch(item).call(boundTo, e); - if (matchesPredicate === errorObj) { - return matchesPredicate; - } else if (matchesPredicate) { - return tryCatch(cb).call(boundTo, e); - } - } else if (util.isObject(e)) { - var keys = getKeys(item); - for (var j = 0; j < keys.length; ++j) { - var key = keys[j]; - if (item[key] != e[key]) { - continue predicateLoop; - } - } - return tryCatch(cb).call(boundTo, e); - } - } - return NEXT_FILTER; - }; - } - - return catchFilter; - }; - }, { "./es5": 13, "./util": 36 }], 8: [function (_dereq_, module, exports) { - "use strict"; - - module.exports = function (Promise) { - var longStackTraces = false; - var contextStack = []; - - Promise.prototype._promiseCreated = function () {}; - Promise.prototype._pushContext = function () {}; - Promise.prototype._popContext = function () { - return null; - }; - Promise._peekContext = Promise.prototype._peekContext = function () {}; - - function Context() { - this._trace = new Context.CapturedTrace(peekContext()); + function thrower(e) { + setTimeout(function () { + throw e; + }, 0); } - Context.prototype._pushContext = function () { - if (this._trace !== undefined) { - this._trace._promiseCreated = null; - contextStack.push(this._trace); - } - }; - Context.prototype._popContext = function () { - if (this._trace !== undefined) { - var trace = contextStack.pop(); - var ret = trace._promiseCreated; - trace._promiseCreated = null; - return ret; + function castPreservingDisposable(thenable) { + var maybePromise = tryConvertToPromise(thenable); + if (maybePromise !== thenable && typeof thenable._isDisposable === "function" && typeof thenable._getDisposer === "function" && thenable._isDisposable()) { + maybePromise._setDisposable(thenable._getDisposer()); } - return null; - }; - - function createContext() { - if (longStackTraces) return new Context(); + return maybePromise; } - - function peekContext() { - var lastIndex = contextStack.length - 1; - if (lastIndex >= 0) { - return contextStack[lastIndex]; + function dispose(resources, inspection) { + var i = 0; + var len = resources.length; + var ret = new Promise(INTERNAL); + function iterator() { + if (i >= len) return ret._fulfill(); + var maybePromise = castPreservingDisposable(resources[i++]); + if (maybePromise instanceof Promise && maybePromise._isDisposable()) { + try { + maybePromise = tryConvertToPromise(maybePromise._getDisposer().tryDispose(inspection), resources.promise); + } catch (e) { + return thrower(e); + } + if (maybePromise instanceof Promise) { + return maybePromise._then(iterator, thrower, null, null, null); + } + } + iterator(); } - return undefined; + iterator(); + return ret; } - Context.CapturedTrace = null; - Context.create = createContext; - Context.deactivateLongStackTraces = function () {}; - Context.activateLongStackTraces = function () { - var Promise_pushContext = Promise.prototype._pushContext; - var Promise_popContext = Promise.prototype._popContext; - var Promise_PeekContext = Promise._peekContext; - var Promise_peekContext = Promise.prototype._peekContext; - var Promise_promiseCreated = Promise.prototype._promiseCreated; - Context.deactivateLongStackTraces = function () { - Promise.prototype._pushContext = Promise_pushContext; - Promise.prototype._popContext = Promise_popContext; - Promise._peekContext = Promise_PeekContext; - Promise.prototype._peekContext = Promise_peekContext; - Promise.prototype._promiseCreated = Promise_promiseCreated; - longStackTraces = false; - }; - longStackTraces = true; - Promise.prototype._pushContext = Context.prototype._pushContext; - Promise.prototype._popContext = Context.prototype._popContext; - Promise._peekContext = Promise.prototype._peekContext = peekContext; - Promise.prototype._promiseCreated = function () { - var ctx = this._peekContext(); - if (ctx && ctx._promiseCreated == null) ctx._promiseCreated = this; - }; - }; - return Context; - }; - }, {}], 9: [function (_dereq_, module, exports) { - "use strict"; - - module.exports = function (Promise, Context) { - var getDomain = Promise._getDomain; - var async = Promise._async; - var Warning = _dereq_("./errors").Warning; - var util = _dereq_("./util"); - var canAttachTrace = util.canAttachTrace; - var unhandledRejectionHandled; - var possiblyUnhandledRejection; - var bluebirdFramePattern = /[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/; - var stackFramePattern = null; - var formatStack = null; - var indentStackFrames = false; - var printWarning; - var debugging = !!(util.env("BLUEBIRD_DEBUG") != 0 && (true || util.env("BLUEBIRD_DEBUG") || util.env("NODE_ENV") === "development")); - - var warnings = !!(util.env("BLUEBIRD_WARNINGS") != 0 && (debugging || util.env("BLUEBIRD_WARNINGS"))); - - var longStackTraces = !!(util.env("BLUEBIRD_LONG_STACK_TRACES") != 0 && (debugging || util.env("BLUEBIRD_LONG_STACK_TRACES"))); - - var wForgottenReturn = util.env("BLUEBIRD_W_FORGOTTEN_RETURN") != 0 && (warnings || !!util.env("BLUEBIRD_W_FORGOTTEN_RETURN")); - - Promise.prototype.suppressUnhandledRejections = function () { - var target = this._target(); - target._bitField = target._bitField & ~1048576 | 524288; - }; - - Promise.prototype._ensurePossibleRejectionHandled = function () { - if ((this._bitField & 524288) !== 0) return; - this._setRejectionIsUnhandled(); - async.invokeLater(this._notifyUnhandledRejection, this, undefined); - }; - Promise.prototype._notifyUnhandledRejectionIsHandled = function () { - fireRejectionEvent("rejectionHandled", unhandledRejectionHandled, undefined, this); - }; + function Disposer(data, promise, context) { + this._data = data; + this._promise = promise; + this._context = context; + } - Promise.prototype._setReturnedNonUndefined = function () { - this._bitField = this._bitField | 268435456; + Disposer.prototype.data = function () { + return this._data; }; - Promise.prototype._returnedNonUndefined = function () { - return (this._bitField & 268435456) !== 0; + Disposer.prototype.promise = function () { + return this._promise; }; - Promise.prototype._notifyUnhandledRejection = function () { - if (this._isRejectionUnhandled()) { - var reason = this._settledValue(); - this._setUnhandledRejectionIsNotified(); - fireRejectionEvent("unhandledRejection", possiblyUnhandledRejection, reason, this); + Disposer.prototype.resource = function () { + if (this.promise().isFulfilled()) { + return this.promise().value(); } + return null; }; - Promise.prototype._setUnhandledRejectionIsNotified = function () { - this._bitField = this._bitField | 262144; + Disposer.prototype.tryDispose = function (inspection) { + var resource = this.resource(); + var context = this._context; + if (context !== undefined) context._pushContext(); + var ret = resource !== null ? this.doDispose(resource, inspection) : null; + if (context !== undefined) context._popContext(); + this._promise._unsetDisposable(); + this._data = null; + return ret; }; - Promise.prototype._unsetUnhandledRejectionIsNotified = function () { - this._bitField = this._bitField & ~262144; + Disposer.isDisposer = function (d) { + return d != null && typeof d.resource === "function" && typeof d.tryDispose === "function"; }; - Promise.prototype._isUnhandledRejectionNotified = function () { - return (this._bitField & 262144) > 0; - }; + function FunctionDisposer(fn, promise, context) { + this.constructor$(fn, promise, context); + } + inherits(FunctionDisposer, Disposer); - Promise.prototype._setRejectionIsUnhandled = function () { - this._bitField = this._bitField | 1048576; + FunctionDisposer.prototype.doDispose = function (resource, inspection) { + var fn = this.data(); + return fn.call(resource, resource, inspection); }; - Promise.prototype._unsetRejectionIsUnhandled = function () { - this._bitField = this._bitField & ~1048576; - if (this._isUnhandledRejectionNotified()) { - this._unsetUnhandledRejectionIsNotified(); - this._notifyUnhandledRejectionIsHandled(); + function maybeUnwrapDisposer(value) { + if (Disposer.isDisposer(value)) { + this.resources[this.index]._setDisposable(value); + return value.promise(); } - }; - - Promise.prototype._isRejectionUnhandled = function () { - return (this._bitField & 1048576) > 0; - }; - - Promise.prototype._warn = function (message, shouldUseOwnTrace, promise) { - return warn(message, shouldUseOwnTrace, promise || this); - }; + return value; + } - Promise.onPossiblyUnhandledRejection = function (fn) { - var domain = getDomain(); - possiblyUnhandledRejection = typeof fn === "function" ? domain === null ? fn : domain.bind(fn) : undefined; - }; + function ResourceList(length) { + this.length = length; + this.promise = null; + this[length - 1] = null; + } - Promise.onUnhandledRejectionHandled = function (fn) { - var domain = getDomain(); - unhandledRejectionHandled = typeof fn === "function" ? domain === null ? fn : domain.bind(fn) : undefined; + ResourceList.prototype._resultCancelled = function () { + var len = this.length; + for (var i = 0; i < len; ++i) { + var item = this[i]; + if (item instanceof Promise) { + item.cancel(); + } + } }; - var disableLongStackTraces = function disableLongStackTraces() {}; - Promise.longStackTraces = function () { - if (async.haveItemsQueued() && !config.longStackTraces) { - throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n"); + Promise.using = function () { + var len = arguments.length; + if (len < 2) return apiRejection("you must pass at least 2 arguments to Promise.using"); + var fn = arguments[len - 1]; + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); } - if (!config.longStackTraces && longStackTracesIsSupported()) { - var Promise_captureStackTrace = Promise.prototype._captureStackTrace; - var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace; - config.longStackTraces = true; - disableLongStackTraces = function disableLongStackTraces() { - if (async.haveItemsQueued() && !config.longStackTraces) { - throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n"); + var input; + var spreadArgs = true; + if (len === 2 && Array.isArray(arguments[0])) { + input = arguments[0]; + len = input.length; + spreadArgs = false; + } else { + input = arguments; + len--; + } + var resources = new ResourceList(len); + for (var i = 0; i < len; ++i) { + var resource = input[i]; + if (Disposer.isDisposer(resource)) { + var disposer = resource; + resource = resource.promise(); + resource._setDisposable(disposer); + } else { + var maybePromise = tryConvertToPromise(resource); + if (maybePromise instanceof Promise) { + resource = maybePromise._then(maybeUnwrapDisposer, null, null, { + resources: resources, + index: i + }, undefined); } - Promise.prototype._captureStackTrace = Promise_captureStackTrace; - Promise.prototype._attachExtraTrace = Promise_attachExtraTrace; - Context.deactivateLongStackTraces(); - async.enableTrampoline(); - config.longStackTraces = false; - }; - Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace; - Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace; - Context.activateLongStackTraces(); - async.disableTrampolineIfNecessary(); + } + resources[i] = resource; } - }; - - Promise.hasLongStackTraces = function () { - return config.longStackTraces && longStackTracesIsSupported(); - }; - var fireDomEvent = function () { - try { - var event = document.createEvent("CustomEvent"); - event.initCustomEvent("testingtheevent", false, true, {}); - util.global.dispatchEvent(event); - return function (name, event) { - var domEvent = document.createEvent("CustomEvent"); - domEvent.initCustomEvent(name.toLowerCase(), false, true, event); - return !util.global.dispatchEvent(domEvent); - }; - } catch (e) {} - return function () { - return false; - }; - }(); + var reflectedResources = new Array(resources.length); + for (var i = 0; i < reflectedResources.length; ++i) { + reflectedResources[i] = Promise.resolve(resources[i]).reflect(); + } - var fireGlobalEvent = function () { - if (util.isNode) { - return function () { - return process.emit.apply(process, arguments); - }; - } else { - if (!util.global) { - return function () { - return false; - }; + var resultPromise = Promise.all(reflectedResources).then(function (inspections) { + for (var i = 0; i < inspections.length; ++i) { + var inspection = inspections[i]; + if (inspection.isRejected()) { + errorObj.e = inspection.error(); + return errorObj; + } else if (!inspection.isFulfilled()) { + resultPromise.cancel(); + return; + } + inspections[i] = inspection.value(); } - return function (name) { - var methodName = "on" + name.toLowerCase(); - var method = util.global[methodName]; - if (!method) return false; - method.apply(util.global, [].slice.call(arguments, 1)); - return true; - }; - } - }(); + promise._pushContext(); - function generatePromiseLifecycleEventObject(name, promise) { - return { promise: promise }; - } + fn = tryCatch(fn); + var ret = spreadArgs ? fn.apply(undefined, inspections) : fn(inspections); + var promiseCreated = promise._popContext(); + debug.checkForgottenReturns(ret, promiseCreated, "Promise.using", promise); + return ret; + }); - var eventToObjectGenerator = { - promiseCreated: generatePromiseLifecycleEventObject, - promiseFulfilled: generatePromiseLifecycleEventObject, - promiseRejected: generatePromiseLifecycleEventObject, - promiseResolved: generatePromiseLifecycleEventObject, - promiseCancelled: generatePromiseLifecycleEventObject, - promiseChained: function promiseChained(name, promise, child) { - return { promise: promise, child: child }; - }, - warning: function warning(name, _warning2) { - return { warning: _warning2 }; - }, - unhandledRejection: function unhandledRejection(name, reason, promise) { - return { reason: reason, promise: promise }; - }, - rejectionHandled: generatePromiseLifecycleEventObject + var promise = resultPromise.lastly(function () { + var inspection = new Promise.PromiseInspection(resultPromise); + return dispose(resources, inspection); + }); + resources.promise = promise; + promise._setOnCancel(resources); + return promise; }; - var activeFireEvent = function activeFireEvent(name) { - var globalEventFired = false; - try { - globalEventFired = fireGlobalEvent.apply(null, arguments); - } catch (e) { - async.throwLater(e); - globalEventFired = true; - } + Promise.prototype._setDisposable = function (disposer) { + this._bitField = this._bitField | 131072; + this._disposer = disposer; + }; - var domEventFired = false; - try { - domEventFired = fireDomEvent(name, eventToObjectGenerator[name].apply(null, arguments)); - } catch (e) { - async.throwLater(e); - domEventFired = true; - } + Promise.prototype._isDisposable = function () { + return (this._bitField & 131072) > 0; + }; - return domEventFired || globalEventFired; + Promise.prototype._getDisposer = function () { + return this._disposer; }; - Promise.config = function (opts) { - opts = Object(opts); - if ("longStackTraces" in opts) { - if (opts.longStackTraces) { - Promise.longStackTraces(); - } else if (!opts.longStackTraces && Promise.hasLongStackTraces()) { - disableLongStackTraces(); - } - } - if ("warnings" in opts) { - var warningsOption = opts.warnings; - config.warnings = !!warningsOption; - wForgottenReturn = config.warnings; + Promise.prototype._unsetDisposable = function () { + this._bitField = this._bitField & ~131072; + this._disposer = undefined; + }; - if (util.isObject(warningsOption)) { - if ("wForgottenReturn" in warningsOption) { - wForgottenReturn = !!warningsOption.wForgottenReturn; - } - } - } - if ("cancellation" in opts && opts.cancellation && !config.cancellation) { - if (async.haveItemsQueued()) { - throw new Error("cannot enable cancellation after promises are in use"); - } - Promise.prototype._clearCancellationData = cancellationClearCancellationData; - Promise.prototype._propagateFrom = cancellationPropagateFrom; - Promise.prototype._onCancel = cancellationOnCancel; - Promise.prototype._setOnCancel = cancellationSetOnCancel; - Promise.prototype._attachCancellationCallback = cancellationAttachCancellationCallback; - Promise.prototype._execute = cancellationExecute; - _propagateFromFunction2 = cancellationPropagateFrom; - config.cancellation = true; - } - if ("monitoring" in opts) { - if (opts.monitoring && !config.monitoring) { - config.monitoring = true; - Promise.prototype._fireEvent = activeFireEvent; - } else if (!opts.monitoring && config.monitoring) { - config.monitoring = false; - Promise.prototype._fireEvent = defaultFireEvent; - } + Promise.prototype.disposer = function (fn) { + if (typeof fn === "function") { + return new FunctionDisposer(fn, this, createContext()); } + throw new TypeError(); }; + }; + }, { "./errors": 12, "./util": 36 }], 36: [function (_dereq_, module, exports) { + "use strict"; - function defaultFireEvent() { - return false; - } + var es5 = _dereq_("./es5"); + var canEvaluate = typeof navigator == "undefined"; - Promise.prototype._fireEvent = defaultFireEvent; - Promise.prototype._execute = function (executor, resolve, reject) { - try { - executor(resolve, reject); - } catch (e) { - return e; - } - }; - Promise.prototype._onCancel = function () {}; - Promise.prototype._setOnCancel = function (handler) { - ; - }; - Promise.prototype._attachCancellationCallback = function (onCancel) { - ; - }; - Promise.prototype._captureStackTrace = function () {}; - Promise.prototype._attachExtraTrace = function () {}; - Promise.prototype._clearCancellationData = function () {}; - Promise.prototype._propagateFrom = function (parent, flags) { - ; - ; - }; + var errorObj = { e: {} }; + var tryCatchTarget; + var globalObject = typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : this !== undefined ? this : null; - function cancellationExecute(executor, resolve, reject) { - var promise = this; - try { - executor(resolve, reject, function (onCancel) { - if (typeof onCancel !== "function") { - throw new TypeError("onCancel must be a function, got: " + util.toString(onCancel)); - } - promise._attachCancellationCallback(onCancel); - }); - } catch (e) { - return e; - } + function tryCatcher() { + try { + var target = tryCatchTarget; + tryCatchTarget = null; + return target.apply(this, arguments); + } catch (e) { + errorObj.e = e; + return errorObj; } + } + function tryCatch(fn) { + tryCatchTarget = fn; + return tryCatcher; + } - function cancellationAttachCancellationCallback(onCancel) { - if (!this.isCancellable()) return this; + var inherits = function inherits(Child, Parent) { + var hasProp = {}.hasOwnProperty; - var previousOnCancel = this._onCancel(); - if (previousOnCancel !== undefined) { - if (util.isArray(previousOnCancel)) { - previousOnCancel.push(onCancel); - } else { - this._setOnCancel([previousOnCancel, onCancel]); + function T() { + this.constructor = Child; + this.constructor$ = Parent; + for (var propertyName in Parent.prototype) { + if (hasProp.call(Parent.prototype, propertyName) && propertyName.charAt(propertyName.length - 1) !== "$") { + this[propertyName + "$"] = Parent.prototype[propertyName]; } - } else { - this._setOnCancel(onCancel); } } + T.prototype = Parent.prototype; + Child.prototype = new T(); + return Child.prototype; + }; - function cancellationOnCancel() { - return this._onCancelField; - } + function isPrimitive(val) { + return val == null || val === true || val === false || typeof val === "string" || typeof val === "number"; + } - function cancellationSetOnCancel(onCancel) { - this._onCancelField = onCancel; - } + function isObject(value) { + return typeof value === "function" || (typeof value === "undefined" ? "undefined" : _typeof(value)) === "object" && value !== null; + } - function cancellationClearCancellationData() { - this._cancellationParent = undefined; - this._onCancelField = undefined; + function maybeWrapAsError(maybeError) { + if (!isPrimitive(maybeError)) return maybeError; + + return new Error(safeToString(maybeError)); + } + + function withAppended(target, appendee) { + var len = target.length; + var ret = new Array(len + 1); + var i; + for (i = 0; i < len; ++i) { + ret[i] = target[i]; } + ret[i] = appendee; + return ret; + } - function cancellationPropagateFrom(parent, flags) { - if ((flags & 1) !== 0) { - this._cancellationParent = parent; - var branchesRemainingToCancel = parent._branchesRemainingToCancel; - if (branchesRemainingToCancel === undefined) { - branchesRemainingToCancel = 0; - } - parent._branchesRemainingToCancel = branchesRemainingToCancel + 1; - } - if ((flags & 2) !== 0 && parent._isBound()) { - this._setBoundTo(parent._boundTo); + function getDataPropertyOrDefault(obj, key, defaultValue) { + if (es5.isES5) { + var desc = Object.getOwnPropertyDescriptor(obj, key); + + if (desc != null) { + return desc.get == null && desc.set == null ? desc.value : defaultValue; } + } else { + return {}.hasOwnProperty.call(obj, key) ? obj[key] : undefined; } + } - function bindingPropagateFrom(parent, flags) { - if ((flags & 2) !== 0 && parent._isBound()) { - this._setBoundTo(parent._boundTo); + function notEnumerableProp(obj, name, value) { + if (isPrimitive(obj)) return obj; + var descriptor = { + value: value, + configurable: true, + enumerable: false, + writable: true + }; + es5.defineProperty(obj, name, descriptor); + return obj; + } + + function thrower(r) { + throw r; + } + + var inheritedDataKeys = function () { + var excludedPrototypes = [Array.prototype, Object.prototype, Function.prototype]; + + var isExcludedProto = function isExcludedProto(val) { + for (var i = 0; i < excludedPrototypes.length; ++i) { + if (excludedPrototypes[i] === val) { + return true; + } } - } - var _propagateFromFunction2 = bindingPropagateFrom; + return false; + }; - function _boundValueFunction2() { - var ret = this._boundTo; - if (ret !== undefined) { - if (ret instanceof Promise) { - if (ret.isFulfilled()) { - return ret.value(); + if (es5.isES5) { + var getKeys = Object.getOwnPropertyNames; + return function (obj) { + var ret = []; + var visitedKeys = Object.create(null); + while (obj != null && !isExcludedProto(obj)) { + var keys; + try { + keys = getKeys(obj); + } catch (e) { + return ret; + } + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (visitedKeys[key]) continue; + visitedKeys[key] = true; + var desc = Object.getOwnPropertyDescriptor(obj, key); + if (desc != null && desc.get == null && desc.set == null) { + ret.push(key); + } + } + obj = es5.getPrototypeOf(obj); + } + return ret; + }; + } else { + var hasProp = {}.hasOwnProperty; + return function (obj) { + if (isExcludedProto(obj)) return []; + var ret = []; + + /*jshint forin:false */ + enumeration: for (var key in obj) { + if (hasProp.call(obj, key)) { + ret.push(key); } else { - return undefined; + for (var i = 0; i < excludedPrototypes.length; ++i) { + if (hasProp.call(excludedPrototypes[i], key)) { + continue enumeration; + } + } + ret.push(key); } } - } - return ret; + return ret; + }; } + }(); - function longStackTracesCaptureStackTrace() { - this._trace = new CapturedTrace(this._peekContext()); - } + var thisAssignmentPattern = /this\s*\.\s*\S+\s*=/; + function isClass(fn) { + try { + if (typeof fn === "function") { + var keys = es5.names(fn.prototype); - function longStackTracesAttachExtraTrace(error, ignoreSelf) { - if (canAttachTrace(error)) { - var trace = this._trace; - if (trace !== undefined) { - if (ignoreSelf) trace = trace._parent; - } - if (trace !== undefined) { - trace.attachExtraTrace(error); - } else if (!error.__stackCleaned__) { - var parsed = parseStackAndMessage(error); - util.notEnumerableProp(error, "stack", parsed.message + "\n" + parsed.stack.join("\n")); - util.notEnumerableProp(error, "__stackCleaned__", true); + var hasMethods = es5.isES5 && keys.length > 1; + var hasMethodsOtherThanConstructor = keys.length > 0 && !(keys.length === 1 && keys[0] === "constructor"); + var hasThisAssignmentAndStaticMethods = thisAssignmentPattern.test(fn + "") && es5.names(fn).length > 0; + + if (hasMethods || hasMethodsOtherThanConstructor || hasThisAssignmentAndStaticMethods) { + return true; } } + return false; + } catch (e) { + return false; } + } - function checkForgottenReturns(returnValue, promiseCreated, name, promise, parent) { - if (returnValue === undefined && promiseCreated !== null && wForgottenReturn) { - if (parent !== undefined && parent._returnedNonUndefined()) return; + function toFastProperties(obj) { + /*jshint -W027,-W055,-W031*/ + function FakeConstructor() {} + FakeConstructor.prototype = obj; + var l = 8; + while (l--) { + new FakeConstructor(); + }return obj; + eval(obj); + } - if (name) name = name + " "; - var msg = "a promise was created in a " + name + "handler but was not returned from it"; - promise._warn(msg, true, promiseCreated); - } - } + var rident = /^[a-z$_][a-z$_0-9]*$/i; + function isIdentifier(str) { + return rident.test(str); + } - function deprecated(name, replacement) { - var message = name + " is deprecated and will be removed in a future version."; - if (replacement) message += " Use " + replacement + " instead."; - return warn(message); + function filledRange(count, prefix, suffix) { + var ret = new Array(count); + for (var i = 0; i < count; ++i) { + ret[i] = prefix + i + suffix; } + return ret; + } - function warn(message, shouldUseOwnTrace, promise) { - if (!config.warnings) return; - var warning = new Warning(message); - var ctx; - if (shouldUseOwnTrace) { - promise._attachExtraTrace(warning); - } else if (config.longStackTraces && (ctx = Promise._peekContext())) { - ctx.attachExtraTrace(warning); - } else { - var parsed = parseStackAndMessage(warning); - warning.stack = parsed.message + "\n" + parsed.stack.join("\n"); - } - - if (!activeFireEvent("warning", warning)) { - formatAndLogError(warning, "", true); - } + function safeToString(obj) { + try { + return obj + ""; + } catch (e) { + return "[no string representation]"; } + } - function reconstructStack(message, stacks) { - for (var i = 0; i < stacks.length - 1; ++i) { - stacks[i].push("From previous event:"); - stacks[i] = stacks[i].join("\n"); - } - if (i < stacks.length) { - stacks[i] = stacks[i].join("\n"); - } - return message + "\n" + stacks.join("\n"); - } + function isError(obj) { + return obj !== null && (typeof obj === "undefined" ? "undefined" : _typeof(obj)) === "object" && typeof obj.message === "string" && typeof obj.name === "string"; + } - function removeDuplicateOrEmptyJumps(stacks) { - for (var i = 0; i < stacks.length; ++i) { - if (stacks[i].length === 0 || i + 1 < stacks.length && stacks[i][0] === stacks[i + 1][0]) { - stacks.splice(i, 1); - i--; - } - } - } + function markAsOriginatingFromRejection(e) { + try { + notEnumerableProp(e, "isOperational", true); + } catch (ignore) {} + } - function removeCommonRoots(stacks) { - var current = stacks[0]; - for (var i = 1; i < stacks.length; ++i) { - var prev = stacks[i]; - var currentLastIndex = current.length - 1; - var currentLastLine = current[currentLastIndex]; - var commonRootMeetPoint = -1; + function originatesFromRejection(e) { + if (e == null) return false; + return e instanceof Error["__BluebirdErrorTypes__"].OperationalError || e["isOperational"] === true; + } - for (var j = prev.length - 1; j >= 0; --j) { - if (prev[j] === currentLastLine) { - commonRootMeetPoint = j; - break; - } - } + function canAttachTrace(obj) { + return isError(obj) && es5.propertyIsWritable(obj, "stack"); + } - for (var j = commonRootMeetPoint; j >= 0; --j) { - var line = prev[j]; - if (current[currentLastIndex] === line) { - current.pop(); - currentLastIndex--; - } else { - break; - } + var ensureErrorObject = function () { + if (!("stack" in new Error())) { + return function (value) { + if (canAttachTrace(value)) return value; + try { + throw new Error(safeToString(value)); + } catch (err) { + return err; } - current = prev; - } + }; + } else { + return function (value) { + if (canAttachTrace(value)) return value; + return new Error(safeToString(value)); + }; } + }(); - function cleanStack(stack) { - var ret = []; - for (var i = 0; i < stack.length; ++i) { - var line = stack[i]; - var isTraceLine = " (No stack trace)" === line || stackFramePattern.test(line); - var isInternalFrame = isTraceLine && shouldIgnore(line); - if (isTraceLine && !isInternalFrame) { - if (indentStackFrames && line.charAt(0) !== " ") { - line = " " + line; - } - ret.push(line); - } - } - return ret; - } + function classString(obj) { + return {}.toString.call(obj); + } - function stackFramesAsArray(error) { - var stack = error.stack.replace(/\s+$/g, "").split("\n"); - for (var i = 0; i < stack.length; ++i) { - var line = stack[i]; - if (" (No stack trace)" === line || stackFramePattern.test(line)) { - break; - } - } - if (i > 0) { - stack = stack.slice(i); + function copyDescriptors(from, to, filter) { + var keys = es5.names(from); + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (filter(key)) { + try { + es5.defineProperty(to, key, es5.getDescriptor(from, key)); + } catch (ignore) {} } - return stack; } + } - function parseStackAndMessage(error) { - var stack = error.stack; - var message = error.toString(); - stack = typeof stack === "string" && stack.length > 0 ? stackFramesAsArray(error) : [" (No stack trace)"]; - return { - message: message, - stack: cleanStack(stack) - }; + var asArray = function asArray(v) { + if (es5.isArray(v)) { + return v; } + return null; + }; - function formatAndLogError(error, title, isSoft) { - if (typeof console !== "undefined") { - var message; - if (util.isObject(error)) { - var stack = error.stack; - message = title + formatStack(stack, error); - } else { - message = title + String(error); - } - if (typeof printWarning === "function") { - printWarning(message, isSoft); - } else if (typeof console.log === "function" || _typeof(console.log) === "object") { - console.log(message); - } + if (typeof Symbol !== "undefined" && Symbol.iterator) { + var ArrayFrom = typeof Array.from === "function" ? function (v) { + return Array.from(v); + } : function (v) { + var ret = []; + var it = v[Symbol.iterator](); + var itResult; + while (!(itResult = it.next()).done) { + ret.push(itResult.value); } - } + return ret; + }; - function fireRejectionEvent(name, localHandler, reason, promise) { - var localEventFired = false; - try { - if (typeof localHandler === "function") { - localEventFired = true; - if (name === "rejectionHandled") { - localHandler(promise); - } else { - localHandler(reason, promise); - } - } - } catch (e) { - async.throwLater(e); + asArray = function asArray(v) { + if (es5.isArray(v)) { + return v; + } else if (v != null && typeof v[Symbol.iterator] === "function") { + return ArrayFrom(v); } + return null; + }; + } - if (name === "unhandledRejection") { - if (!activeFireEvent(name, reason, promise) && !localEventFired) { - formatAndLogError(reason, "Unhandled rejection "); - } - } else { - activeFireEvent(name, promise); - } - } + var isNode = typeof process !== "undefined" && classString(process).toLowerCase() === "[object process]"; - function formatNonError(obj) { - var str; - if (typeof obj === "function") { - str = "[function " + (obj.name || "anonymous") + "]"; - } else { - str = obj && typeof obj.toString === "function" ? obj.toString() : util.toString(obj); - var ruselessToString = /\[object [a-zA-Z0-9$_]+\]/; - if (ruselessToString.test(str)) { - try { - var newStr = JSON.stringify(obj); - str = newStr; - } catch (e) {} - } - if (str.length === 0) { - str = "(empty array)"; - } - } - return "(<" + snip(str) + ">, no stack trace)"; - } + function env(key, def) { + return isNode ? process.env[key] : def; + } - function snip(str) { - var maxChars = 41; - if (str.length < maxChars) { - return str; - } - return str.substr(0, maxChars - 3) + "..."; - } + var ret = { + isClass: isClass, + isIdentifier: isIdentifier, + inheritedDataKeys: inheritedDataKeys, + getDataPropertyOrDefault: getDataPropertyOrDefault, + thrower: thrower, + isArray: es5.isArray, + asArray: asArray, + notEnumerableProp: notEnumerableProp, + isPrimitive: isPrimitive, + isObject: isObject, + isError: isError, + canEvaluate: canEvaluate, + errorObj: errorObj, + tryCatch: tryCatch, + inherits: inherits, + withAppended: withAppended, + maybeWrapAsError: maybeWrapAsError, + toFastProperties: toFastProperties, + filledRange: filledRange, + toString: safeToString, + canAttachTrace: canAttachTrace, + ensureErrorObject: ensureErrorObject, + originatesFromRejection: originatesFromRejection, + markAsOriginatingFromRejection: markAsOriginatingFromRejection, + classString: classString, + copyDescriptors: copyDescriptors, + hasDevTools: typeof chrome !== "undefined" && chrome && typeof chrome.loadTimes === "function", + isNode: isNode, + env: env, + global: globalObject + }; + ret.isRecentNode = ret.isNode && function () { + var version = process.versions.node.split(".").map(Number); + return version[0] === 0 && version[1] > 10 || version[0] > 0; + }(); - function longStackTracesIsSupported() { - return typeof captureStackTrace === "function"; - } + if (ret.isNode) ret.toFastProperties(process); - var shouldIgnore = function shouldIgnore() { - return false; - }; - var parseLineInfoRegex = /[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/; - function parseLineInfo(line) { - var matches = line.match(parseLineInfoRegex); - if (matches) { - return { - fileName: matches[1], - line: parseInt(matches[2], 10) - }; - } - } + try { + throw new Error(); + } catch (e) { + ret.lastLineError = e; + } + module.exports = ret; + }, { "./es5": 13 }] }, {}, [4])(4); + });;if (typeof window !== 'undefined' && window !== null) { + window.P = window.Promise; + } else if (typeof self !== 'undefined' && self !== null) { + self.P = self.Promise; + } + }).call(this, require('_process'), typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}); + }, { "_process": 120 }], 230: [function (require, module, exports) { + (function (module, exports) { + 'use strict'; - function setBounds(firstLineError, lastLineError) { - if (!longStackTracesIsSupported()) return; - var firstStackLines = firstLineError.stack.split("\n"); - var lastStackLines = lastLineError.stack.split("\n"); - var firstIndex = -1; - var lastIndex = -1; - var firstFileName; - var lastFileName; - for (var i = 0; i < firstStackLines.length; ++i) { - var result = parseLineInfo(firstStackLines[i]); - if (result) { - firstFileName = result.fileName; - firstIndex = result.line; - break; - } - } - for (var i = 0; i < lastStackLines.length; ++i) { - var result = parseLineInfo(lastStackLines[i]); - if (result) { - lastFileName = result.fileName; - lastIndex = result.line; - break; - } - } - if (firstIndex < 0 || lastIndex < 0 || !firstFileName || !lastFileName || firstFileName !== lastFileName || firstIndex >= lastIndex) { - return; - } + // Utils - shouldIgnore = function shouldIgnore(line) { - if (bluebirdFramePattern.test(line)) return true; - var info = parseLineInfo(line); - if (info) { - if (info.fileName === firstFileName && firstIndex <= info.line && info.line <= lastIndex) { - return true; - } - } - return false; - }; - } + function assert(val, msg) { + if (!val) throw new Error(msg || 'Assertion failed'); + } - function CapturedTrace(parent) { - this._parent = parent; - this._promisesCreated = 0; - var length = this._length = 1 + (parent === undefined ? 0 : parent._length); - captureStackTrace(this, CapturedTrace); - if (length > 32) this.uncycle(); - } - util.inherits(CapturedTrace, Error); - Context.CapturedTrace = CapturedTrace; + // Could use `inherits` module, but don't want to move from single file + // architecture yet. + function inherits(ctor, superCtor) { + ctor.super_ = superCtor; + var TempCtor = function TempCtor() {}; + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + } - CapturedTrace.prototype.uncycle = function () { - var length = this._length; - if (length < 2) return; - var nodes = []; - var stackToIndex = {}; + // BN - for (var i = 0, node = this; node !== undefined; ++i) { - nodes.push(node); - node = node._parent; - } - length = this._length = i; - for (var i = length - 1; i >= 0; --i) { - var stack = nodes[i].stack; - if (stackToIndex[stack] === undefined) { - stackToIndex[stack] = i; - } - } - for (var i = 0; i < length; ++i) { - var currentStack = nodes[i].stack; - var index = stackToIndex[currentStack]; - if (index !== undefined && index !== i) { - if (index > 0) { - nodes[index - 1]._parent = undefined; - nodes[index - 1]._length = 1; - } - nodes[i]._parent = undefined; - nodes[i]._length = 1; - var cycleEdgeNode = i > 0 ? nodes[i - 1] : this; + function BN(number, base, endian) { + if (BN.isBN(number)) { + return number; + } - if (index < length - 1) { - cycleEdgeNode._parent = nodes[index + 1]; - cycleEdgeNode._parent.uncycle(); - cycleEdgeNode._length = cycleEdgeNode._parent._length + 1; - } else { - cycleEdgeNode._parent = undefined; - cycleEdgeNode._length = 1; - } - var currentChildLength = cycleEdgeNode._length + 1; - for (var j = i - 2; j >= 0; --j) { - nodes[j]._length = currentChildLength; - currentChildLength++; - } - return; - } - } - }; + this.negative = 0; + this.words = null; + this.length = 0; - CapturedTrace.prototype.attachExtraTrace = function (error) { - if (error.__stackCleaned__) return; - this.uncycle(); - var parsed = parseStackAndMessage(error); - var message = parsed.message; - var stacks = [parsed.stack]; + // Reduction context + this.red = null; - var trace = this; - while (trace !== undefined) { - stacks.push(cleanStack(trace.stack.split("\n"))); - trace = trace._parent; - } - removeCommonRoots(stacks); - removeDuplicateOrEmptyJumps(stacks); - util.notEnumerableProp(error, "stack", reconstructStack(message, stacks)); - util.notEnumerableProp(error, "__stackCleaned__", true); - }; + if (number !== null) { + if (base === 'le' || base === 'be') { + endian = base; + base = 10; + } - var captureStackTrace = function stackDetection() { - var v8stackFramePattern = /^\s*at\s*/; - var v8stackFormatter = function v8stackFormatter(stack, error) { - if (typeof stack === "string") return stack; + this._init(number || 0, base || 10, endian || 'be'); + } + } + if ((typeof module === "undefined" ? "undefined" : _typeof(module)) === 'object') { + module.exports = BN; + } else { + exports.BN = BN; + } - if (error.name !== undefined && error.message !== undefined) { - return error.toString(); - } - return formatNonError(error); - }; + BN.BN = BN; + BN.wordSize = 26; - if (typeof Error.stackTraceLimit === "number" && typeof Error.captureStackTrace === "function") { - Error.stackTraceLimit += 6; - stackFramePattern = v8stackFramePattern; - formatStack = v8stackFormatter; - var captureStackTrace = Error.captureStackTrace; + var Buffer; + try { + Buffer = require('buffer').Buffer; + } catch (e) {} - shouldIgnore = function shouldIgnore(line) { - return bluebirdFramePattern.test(line); - }; - return function (receiver, ignoreUntil) { - Error.stackTraceLimit += 6; - captureStackTrace(receiver, ignoreUntil); - Error.stackTraceLimit -= 6; - }; - } - var err = new Error(); + BN.isBN = function isBN(num) { + if (num instanceof BN) { + return true; + } - if (typeof err.stack === "string" && err.stack.split("\n")[0].indexOf("stackDetection@") >= 0) { - stackFramePattern = /@/; - formatStack = v8stackFormatter; - indentStackFrames = true; - return function captureStackTrace(o) { - o.stack = new Error().stack; - }; - } + return num !== null && (typeof num === "undefined" ? "undefined" : _typeof(num)) === 'object' && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words); + }; - var hasStackAfterThrow; - try { - throw new Error(); - } catch (e) { - hasStackAfterThrow = "stack" in e; - } - if (!("stack" in err) && hasStackAfterThrow && typeof Error.stackTraceLimit === "number") { - stackFramePattern = v8stackFramePattern; - formatStack = v8stackFormatter; - return function captureStackTrace(o) { - Error.stackTraceLimit += 6; - try { - throw new Error(); - } catch (e) { - o.stack = e.stack; - } - Error.stackTraceLimit -= 6; - }; - } + BN.max = function max(left, right) { + if (left.cmp(right) > 0) return left; + return right; + }; - formatStack = function formatStack(stack, error) { - if (typeof stack === "string") return stack; + BN.min = function min(left, right) { + if (left.cmp(right) < 0) return left; + return right; + }; - if (((typeof error === "undefined" ? "undefined" : _typeof(error)) === "object" || typeof error === "function") && error.name !== undefined && error.message !== undefined) { - return error.toString(); - } - return formatNonError(error); - }; + BN.prototype._init = function init(number, base, endian) { + if (typeof number === 'number') { + return this._initNumber(number, base, endian); + } - return null; - }([]); + if ((typeof number === "undefined" ? "undefined" : _typeof(number)) === 'object') { + return this._initArray(number, base, endian); + } - if (typeof console !== "undefined" && typeof console.warn !== "undefined") { - printWarning = function printWarning(message) { - console.warn(message); - }; - if (util.isNode && process.stderr.isTTY) { - printWarning = function printWarning(message, isSoft) { - var color = isSoft ? "\x1B[33m" : "\x1B[31m"; - console.warn(color + message + "\x1B[0m\n"); - }; - } else if (!util.isNode && typeof new Error().stack === "string") { - printWarning = function printWarning(message, isSoft) { - console.warn("%c" + message, isSoft ? "color: darkorange" : "color: red"); - }; - } - } + if (base === 'hex') { + base = 16; + } + assert(base === (base | 0) && base >= 2 && base <= 36); - var config = { - warnings: warnings, - longStackTraces: false, - cancellation: false, - monitoring: false - }; - - if (longStackTraces) Promise.longStackTraces(); - - return { - longStackTraces: function longStackTraces() { - return config.longStackTraces; - }, - warnings: function warnings() { - return config.warnings; - }, - cancellation: function cancellation() { - return config.cancellation; - }, - monitoring: function monitoring() { - return config.monitoring; - }, - propagateFromFunction: function propagateFromFunction() { - return _propagateFromFunction2; - }, - boundValueFunction: function boundValueFunction() { - return _boundValueFunction2; - }, - checkForgottenReturns: checkForgottenReturns, - setBounds: setBounds, - warn: warn, - deprecated: deprecated, - CapturedTrace: CapturedTrace, - fireDomEvent: fireDomEvent, - fireGlobalEvent: fireGlobalEvent - }; - }; - }, { "./errors": 12, "./util": 36 }], 10: [function (_dereq_, module, exports) { - "use strict"; - - module.exports = function (Promise) { - function returner() { - return this.value; - } - function thrower() { - throw this.reason; - } - - Promise.prototype["return"] = Promise.prototype.thenReturn = function (value) { - if (value instanceof Promise) value.suppressUnhandledRejections(); - return this._then(returner, undefined, undefined, { value: value }, undefined); - }; - - Promise.prototype["throw"] = Promise.prototype.thenThrow = function (reason) { - return this._then(thrower, undefined, undefined, { reason: reason }, undefined); - }; + number = number.toString().replace(/\s+/g, ''); + var start = 0; + if (number[0] === '-') { + start++; + } - Promise.prototype.catchThrow = function (reason) { - if (arguments.length <= 1) { - return this._then(undefined, thrower, undefined, { reason: reason }, undefined); - } else { - var _reason = arguments[1]; - var handler = function handler() { - throw _reason; - }; - return this.caught(reason, handler); - } - }; + if (base === 16) { + this._parseHex(number, start); + } else { + this._parseBase(number, base, start); + } - Promise.prototype.catchReturn = function (value) { - if (arguments.length <= 1) { - if (value instanceof Promise) value.suppressUnhandledRejections(); - return this._then(undefined, returner, undefined, { value: value }, undefined); - } else { - var _value = arguments[1]; - if (_value instanceof Promise) _value.suppressUnhandledRejections(); - var handler = function handler() { - return _value; - }; - return this.caught(value, handler); - } - }; - }; - }, {}], 11: [function (_dereq_, module, exports) { - "use strict"; + if (number[0] === '-') { + this.negative = 1; + } - module.exports = function (Promise, INTERNAL) { - var PromiseReduce = Promise.reduce; - var PromiseAll = Promise.all; + this.strip(); - function promiseAllThis() { - return PromiseAll(this); - } + if (endian !== 'le') return; - function PromiseMapSeries(promises, fn) { - return PromiseReduce(promises, fn, INTERNAL, INTERNAL); - } + this._initArray(this.toArray(), base, endian); + }; - Promise.prototype.each = function (fn) { - return this.mapSeries(fn)._then(promiseAllThis, undefined, undefined, this, undefined); - }; + BN.prototype._initNumber = function _initNumber(number, base, endian) { + if (number < 0) { + this.negative = 1; + number = -number; + } + if (number < 0x4000000) { + this.words = [number & 0x3ffffff]; + this.length = 1; + } else if (number < 0x10000000000000) { + this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff]; + this.length = 2; + } else { + assert(number < 0x20000000000000); // 2 ^ 53 (unsafe) + this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff, 1]; + this.length = 3; + } - Promise.prototype.mapSeries = function (fn) { - return PromiseReduce(this, fn, INTERNAL, INTERNAL); - }; + if (endian !== 'le') return; - Promise.each = function (promises, fn) { - return PromiseMapSeries(promises, fn)._then(promiseAllThis, undefined, undefined, promises, undefined); - }; + // Reverse the bytes + this._initArray(this.toArray(), base, endian); + }; - Promise.mapSeries = PromiseMapSeries; - }; - }, {}], 12: [function (_dereq_, module, exports) { - "use strict"; + BN.prototype._initArray = function _initArray(number, base, endian) { + // Perhaps a Uint8Array + assert(typeof number.length === 'number'); + if (number.length <= 0) { + this.words = [0]; + this.length = 1; + return this; + } - var es5 = _dereq_("./es5"); - var Objectfreeze = es5.freeze; - var util = _dereq_("./util"); - var inherits = util.inherits; - var notEnumerableProp = util.notEnumerableProp; + this.length = Math.ceil(number.length / 3); + this.words = new Array(this.length); + for (var i = 0; i < this.length; i++) { + this.words[i] = 0; + } - function subError(nameProperty, defaultMessage) { - function SubError(message) { - if (!(this instanceof SubError)) return new SubError(message); - notEnumerableProp(this, "message", typeof message === "string" ? message : defaultMessage); - notEnumerableProp(this, "name", nameProperty); - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } else { - Error.call(this); - } - } - inherits(SubError, Error); - return SubError; + var j, w; + var off = 0; + if (endian === 'be') { + for (i = number.length - 1, j = 0; i >= 0; i -= 3) { + w = number[i] | number[i - 1] << 8 | number[i - 2] << 16; + this.words[j] |= w << off & 0x3ffffff; + this.words[j + 1] = w >>> 26 - off & 0x3ffffff; + off += 24; + if (off >= 26) { + off -= 26; + j++; } - - var _TypeError, _RangeError; - var Warning = subError("Warning", "warning"); - var CancellationError = subError("CancellationError", "cancellation error"); - var TimeoutError = subError("TimeoutError", "timeout error"); - var AggregateError = subError("AggregateError", "aggregate error"); - try { - _TypeError = TypeError; - _RangeError = RangeError; - } catch (e) { - _TypeError = subError("TypeError", "type error"); - _RangeError = subError("RangeError", "range error"); + } + } else if (endian === 'le') { + for (i = 0, j = 0; i < number.length; i += 3) { + w = number[i] | number[i + 1] << 8 | number[i + 2] << 16; + this.words[j] |= w << off & 0x3ffffff; + this.words[j + 1] = w >>> 26 - off & 0x3ffffff; + off += 24; + if (off >= 26) { + off -= 26; + j++; } + } + } + return this.strip(); + }; - var methods = ("join pop push shift unshift slice filter forEach some " + "every map indexOf lastIndexOf reduce reduceRight sort reverse").split(" "); + function parseHex(str, start, end) { + var r = 0; + var len = Math.min(str.length, end); + for (var i = start; i < len; i++) { + var c = str.charCodeAt(i) - 48; - for (var i = 0; i < methods.length; ++i) { - if (typeof Array.prototype[methods[i]] === "function") { - AggregateError.prototype[methods[i]] = Array.prototype[methods[i]]; - } - } + r <<= 4; - es5.defineProperty(AggregateError.prototype, "length", { - value: 0, - configurable: false, - writable: true, - enumerable: true - }); - AggregateError.prototype["isOperational"] = true; - var level = 0; - AggregateError.prototype.toString = function () { - var indent = Array(level * 4 + 1).join(" "); - var ret = "\n" + indent + "AggregateError of:" + "\n"; - level++; - indent = Array(level * 4 + 1).join(" "); - for (var i = 0; i < this.length; ++i) { - var str = this[i] === this ? "[Circular AggregateError]" : this[i] + ""; - var lines = str.split("\n"); - for (var j = 0; j < lines.length; ++j) { - lines[j] = indent + lines[j]; - } - str = lines.join("\n"); - ret += str + "\n"; - } - level--; - return ret; - }; + // 'a' - 'f' + if (c >= 49 && c <= 54) { + r |= c - 49 + 0xa; - function OperationalError(message) { - if (!(this instanceof OperationalError)) return new OperationalError(message); - notEnumerableProp(this, "name", "OperationalError"); - notEnumerableProp(this, "message", message); - this.cause = message; - this["isOperational"] = true; + // 'A' - 'F' + } else if (c >= 17 && c <= 22) { + r |= c - 17 + 0xa; - if (message instanceof Error) { - notEnumerableProp(this, "message", message.message); - notEnumerableProp(this, "stack", message.stack); - } else if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } - } - inherits(OperationalError, Error); + // '0' - '9' + } else { + r |= c & 0xf; + } + } + return r; + } - var errorTypes = Error["__BluebirdErrorTypes__"]; - if (!errorTypes) { - errorTypes = Objectfreeze({ - CancellationError: CancellationError, - TimeoutError: TimeoutError, - OperationalError: OperationalError, - RejectionError: OperationalError, - AggregateError: AggregateError - }); - es5.defineProperty(Error, "__BluebirdErrorTypes__", { - value: errorTypes, - writable: false, - enumerable: false, - configurable: false - }); - } + BN.prototype._parseHex = function _parseHex(number, start) { + // Create possibly bigger array to ensure that it fits the number + this.length = Math.ceil((number.length - start) / 6); + this.words = new Array(this.length); + for (var i = 0; i < this.length; i++) { + this.words[i] = 0; + } - module.exports = { - Error: Error, - TypeError: _TypeError, - RangeError: _RangeError, - CancellationError: errorTypes.CancellationError, - OperationalError: errorTypes.OperationalError, - TimeoutError: errorTypes.TimeoutError, - AggregateError: errorTypes.AggregateError, - Warning: Warning - }; - }, { "./es5": 13, "./util": 36 }], 13: [function (_dereq_, module, exports) { - var isES5 = function () { - "use strict"; + var j, w; + // Scan 24-bit chunks and add them to the number + var off = 0; + for (i = number.length - 6, j = 0; i >= start; i -= 6) { + w = parseHex(number, i, i + 6); + this.words[j] |= w << off & 0x3ffffff; + // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb + this.words[j + 1] |= w >>> 26 - off & 0x3fffff; + off += 24; + if (off >= 26) { + off -= 26; + j++; + } + } + if (i + 6 !== start) { + w = parseHex(number, start, i + 6); + this.words[j] |= w << off & 0x3ffffff; + this.words[j + 1] |= w >>> 26 - off & 0x3fffff; + } + this.strip(); + }; - return this === undefined; - }(); + function parseBase(str, start, end, mul) { + var r = 0; + var len = Math.min(str.length, end); + for (var i = start; i < len; i++) { + var c = str.charCodeAt(i) - 48; - if (isES5) { - module.exports = { - freeze: Object.freeze, - defineProperty: Object.defineProperty, - getDescriptor: Object.getOwnPropertyDescriptor, - keys: Object.keys, - names: Object.getOwnPropertyNames, - getPrototypeOf: Object.getPrototypeOf, - isArray: Array.isArray, - isES5: isES5, - propertyIsWritable: function propertyIsWritable(obj, prop) { - var descriptor = Object.getOwnPropertyDescriptor(obj, prop); - return !!(!descriptor || descriptor.writable || descriptor.set); - } - }; - } else { - var has = {}.hasOwnProperty; - var str = {}.toString; - var proto = {}.constructor.prototype; + r *= mul; - var ObjectKeys = function ObjectKeys(o) { - var ret = []; - for (var key in o) { - if (has.call(o, key)) { - ret.push(key); - } - } - return ret; - }; + // 'a' + if (c >= 49) { + r += c - 49 + 0xa; - var ObjectGetDescriptor = function ObjectGetDescriptor(o, key) { - return { value: o[key] }; - }; + // 'A' + } else if (c >= 17) { + r += c - 17 + 0xa; - var ObjectDefineProperty = function ObjectDefineProperty(o, key, desc) { - o[key] = desc.value; - return o; - }; + // '0' - '9' + } else { + r += c; + } + } + return r; + } - var ObjectFreeze = function ObjectFreeze(obj) { - return obj; - }; + BN.prototype._parseBase = function _parseBase(number, base, start) { + // Initialize as zero + this.words = [0]; + this.length = 1; - var ObjectGetPrototypeOf = function ObjectGetPrototypeOf(obj) { - try { - return Object(obj).constructor.prototype; - } catch (e) { - return proto; - } - }; + // Find length of limb in base + for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) { + limbLen++; + } + limbLen--; + limbPow = limbPow / base | 0; - var ArrayIsArray = function ArrayIsArray(obj) { - try { - return str.call(obj) === "[object Array]"; - } catch (e) { - return false; - } - }; + var total = number.length - start; + var mod = total % limbLen; + var end = Math.min(total, total - mod) + start; - module.exports = { - isArray: ArrayIsArray, - keys: ObjectKeys, - names: ObjectKeys, - defineProperty: ObjectDefineProperty, - getDescriptor: ObjectGetDescriptor, - freeze: ObjectFreeze, - getPrototypeOf: ObjectGetPrototypeOf, - isES5: isES5, - propertyIsWritable: function propertyIsWritable() { - return true; - } - }; - } - }, {}], 14: [function (_dereq_, module, exports) { - "use strict"; + var word = 0; + for (var i = start; i < end; i += limbLen) { + word = parseBase(number, i, i + limbLen, base); - module.exports = function (Promise, INTERNAL) { - var PromiseMap = Promise.map; + this.imuln(limbPow); + if (this.words[0] + word < 0x4000000) { + this.words[0] += word; + } else { + this._iaddn(word); + } + } - Promise.prototype.filter = function (fn, options) { - return PromiseMap(this, fn, options, INTERNAL); - }; + if (mod !== 0) { + var pow = 1; + word = parseBase(number, i, number.length, base); - Promise.filter = function (promises, fn, options) { - return PromiseMap(promises, fn, options, INTERNAL); - }; - }; - }, {}], 15: [function (_dereq_, module, exports) { - "use strict"; + for (i = 0; i < mod; i++) { + pow *= base; + } - module.exports = function (Promise, tryConvertToPromise) { - var util = _dereq_("./util"); - var CancellationError = Promise.CancellationError; - var errorObj = util.errorObj; + this.imuln(pow); + if (this.words[0] + word < 0x4000000) { + this.words[0] += word; + } else { + this._iaddn(word); + } + } + }; - function PassThroughHandlerContext(promise, type, handler) { - this.promise = promise; - this.type = type; - this.handler = handler; - this.called = false; - this.cancelPromise = null; - } + BN.prototype.copy = function copy(dest) { + dest.words = new Array(this.length); + for (var i = 0; i < this.length; i++) { + dest.words[i] = this.words[i]; + } + dest.length = this.length; + dest.negative = this.negative; + dest.red = this.red; + }; - PassThroughHandlerContext.prototype.isFinallyHandler = function () { - return this.type === 0; - }; + BN.prototype.clone = function clone() { + var r = new BN(null); + this.copy(r); + return r; + }; - function FinallyHandlerCancelReaction(finallyHandler) { - this.finallyHandler = finallyHandler; - } + BN.prototype._expand = function _expand(size) { + while (this.length < size) { + this.words[this.length++] = 0; + } + return this; + }; - FinallyHandlerCancelReaction.prototype._resultCancelled = function () { - checkCancel(this.finallyHandler); - }; + // Remove leading `0` from `this` + BN.prototype.strip = function strip() { + while (this.length > 1 && this.words[this.length - 1] === 0) { + this.length--; + } + return this._normSign(); + }; - function checkCancel(ctx, reason) { - if (ctx.cancelPromise != null) { - if (arguments.length > 1) { - ctx.cancelPromise._reject(reason); - } else { - ctx.cancelPromise._cancel(); - } - ctx.cancelPromise = null; - return true; - } - return false; - } + BN.prototype._normSign = function _normSign() { + // -0 = 0 + if (this.length === 1 && this.words[0] === 0) { + this.negative = 0; + } + return this; + }; - function succeed() { - return finallyHandler.call(this, this.promise._target()._settledValue()); - } - function fail(reason) { - if (checkCancel(this, reason)) return; - errorObj.e = reason; - return errorObj; - } - function finallyHandler(reasonOrValue) { - var promise = this.promise; - var handler = this.handler; + BN.prototype.inspect = function inspect() { + return (this.red ? ''; + }; - if (!this.called) { - this.called = true; - var ret = this.isFinallyHandler() ? handler.call(promise._boundValue()) : handler.call(promise._boundValue(), reasonOrValue); - if (ret !== undefined) { - promise._setReturnedNonUndefined(); - var maybePromise = tryConvertToPromise(ret, promise); - if (maybePromise instanceof Promise) { - if (this.cancelPromise != null) { - if (maybePromise.isCancelled()) { - var reason = new CancellationError("late cancellation observer"); - promise._attachExtraTrace(reason); - errorObj.e = reason; - return errorObj; - } else if (maybePromise.isPending()) { - maybePromise._attachCancellationCallback(new FinallyHandlerCancelReaction(this)); - } - } - return maybePromise._then(succeed, fail, undefined, this, undefined); - } - } - } + /* + var zeros = []; + var groupSizes = []; + var groupBases = []; + var s = ''; + var i = -1; + while (++i < BN.wordSize) { + zeros[i] = s; + s += '0'; + } + groupSizes[0] = 0; + groupSizes[1] = 0; + groupBases[0] = 0; + groupBases[1] = 0; + var base = 2 - 1; + while (++base < 36 + 1) { + var groupSize = 0; + var groupBase = 1; + while (groupBase < (1 << BN.wordSize) / base) { + groupBase *= base; + groupSize += 1; + } + groupSizes[base] = groupSize; + groupBases[base] = groupBase; + } + */ - if (promise.isRejected()) { - checkCancel(this); - errorObj.e = reasonOrValue; - return errorObj; - } else { - checkCancel(this); - return reasonOrValue; - } - } + var zeros = ['', '0', '00', '000', '0000', '00000', '000000', '0000000', '00000000', '000000000', '0000000000', '00000000000', '000000000000', '0000000000000', '00000000000000', '000000000000000', '0000000000000000', '00000000000000000', '000000000000000000', '0000000000000000000', '00000000000000000000', '000000000000000000000', '0000000000000000000000', '00000000000000000000000', '000000000000000000000000', '0000000000000000000000000']; - Promise.prototype._passThrough = function (handler, type, success, fail) { - if (typeof handler !== "function") return this.then(); - return this._then(success, fail, undefined, new PassThroughHandlerContext(this, type, handler), undefined); - }; + var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]; - Promise.prototype.lastly = Promise.prototype["finally"] = function (handler) { - return this._passThrough(handler, 0, finallyHandler, finallyHandler); - }; + var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176]; - Promise.prototype.tap = function (handler) { - return this._passThrough(handler, 1, finallyHandler); - }; + BN.prototype.toString = function toString(base, padding) { + base = base || 10; + padding = padding | 0 || 1; - return PassThroughHandlerContext; - }; - }, { "./util": 36 }], 16: [function (_dereq_, module, exports) { - "use strict"; + var out; + if (base === 16 || base === 'hex') { + out = ''; + var off = 0; + var carry = 0; + for (var i = 0; i < this.length; i++) { + var w = this.words[i]; + var word = ((w << off | carry) & 0xffffff).toString(16); + carry = w >>> 24 - off & 0xffffff; + if (carry !== 0 || i !== this.length - 1) { + out = zeros[6 - word.length] + word + out; + } else { + out = word + out; + } + off += 2; + if (off >= 26) { + off -= 26; + i--; + } + } + if (carry !== 0) { + out = carry.toString(16) + out; + } + while (out.length % padding !== 0) { + out = '0' + out; + } + if (this.negative !== 0) { + out = '-' + out; + } + return out; + } - module.exports = function (Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug) { - var errors = _dereq_("./errors"); - var TypeError = errors.TypeError; - var util = _dereq_("./util"); - var errorObj = util.errorObj; - var tryCatch = util.tryCatch; - var yieldHandlers = []; + if (base === (base | 0) && base >= 2 && base <= 36) { + // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base)); + var groupSize = groupSizes[base]; + // var groupBase = Math.pow(base, groupSize); + var groupBase = groupBases[base]; + out = ''; + var c = this.clone(); + c.negative = 0; + while (!c.isZero()) { + var r = c.modn(groupBase).toString(base); + c = c.idivn(groupBase); - function promiseFromYieldHandler(value, yieldHandlers, traceParent) { - for (var i = 0; i < yieldHandlers.length; ++i) { - traceParent._pushContext(); - var result = tryCatch(yieldHandlers[i])(value); - traceParent._popContext(); - if (result === errorObj) { - traceParent._pushContext(); - var ret = Promise.reject(errorObj.e); - traceParent._popContext(); - return ret; - } - var maybePromise = tryConvertToPromise(result, traceParent); - if (maybePromise instanceof Promise) return maybePromise; - } - return null; - } + if (!c.isZero()) { + out = zeros[groupSize - r.length] + r + out; + } else { + out = r + out; + } + } + if (this.isZero()) { + out = '0' + out; + } + while (out.length % padding !== 0) { + out = '0' + out; + } + if (this.negative !== 0) { + out = '-' + out; + } + return out; + } - function PromiseSpawn(generatorFunction, receiver, yieldHandler, stack) { - var promise = this._promise = new Promise(INTERNAL); - promise._captureStackTrace(); - promise._setOnCancel(this); - this._stack = stack; - this._generatorFunction = generatorFunction; - this._receiver = receiver; - this._generator = undefined; - this._yieldHandlers = typeof yieldHandler === "function" ? [yieldHandler].concat(yieldHandlers) : yieldHandlers; - this._yieldedPromise = null; - } - util.inherits(PromiseSpawn, Proxyable); + assert(false, 'Base should be between 2 and 36'); + }; - PromiseSpawn.prototype._isResolved = function () { - return this._promise === null; - }; + BN.prototype.toNumber = function toNumber() { + var ret = this.words[0]; + if (this.length === 2) { + ret += this.words[1] * 0x4000000; + } else if (this.length === 3 && this.words[2] === 0x01) { + // NOTE: at this stage it is known that the top bit is set + ret += 0x10000000000000 + this.words[1] * 0x4000000; + } else if (this.length > 2) { + assert(false, 'Number can only safely store up to 53 bits'); + } + return this.negative !== 0 ? -ret : ret; + }; - PromiseSpawn.prototype._cleanup = function () { - this._promise = this._generator = null; - }; + BN.prototype.toJSON = function toJSON() { + return this.toString(16); + }; - PromiseSpawn.prototype._promiseCancelled = function () { - if (this._isResolved()) return; - var implementsReturn = typeof this._generator["return"] !== "undefined"; + BN.prototype.toBuffer = function toBuffer(endian, length) { + assert(typeof Buffer !== 'undefined'); + return this.toArrayLike(Buffer, endian, length); + }; - var result; - if (!implementsReturn) { - var reason = new Promise.CancellationError("generator .return() sentinel"); - Promise.coroutine.returnSentinel = reason; - this._promise._attachExtraTrace(reason); - this._promise._pushContext(); - result = tryCatch(this._generator["throw"]).call(this._generator, reason); - this._promise._popContext(); - if (result === errorObj && result.e === reason) { - result = null; - } - } else { - this._promise._pushContext(); - result = tryCatch(this._generator["return"]).call(this._generator, undefined); - this._promise._popContext(); - } - var promise = this._promise; - this._cleanup(); - if (result === errorObj) { - promise._rejectCallback(result.e, false); - } else { - promise.cancel(); - } - }; + BN.prototype.toArray = function toArray(endian, length) { + return this.toArrayLike(Array, endian, length); + }; - PromiseSpawn.prototype._promiseFulfilled = function (value) { - this._yieldedPromise = null; - this._promise._pushContext(); - var result = tryCatch(this._generator.next).call(this._generator, value); - this._promise._popContext(); - this._continue(result); - }; + BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) { + var byteLength = this.byteLength(); + var reqLength = length || Math.max(1, byteLength); + assert(byteLength <= reqLength, 'byte array longer than desired length'); + assert(reqLength > 0, 'Requested array length <= 0'); - PromiseSpawn.prototype._promiseRejected = function (reason) { - this._yieldedPromise = null; - this._promise._attachExtraTrace(reason); - this._promise._pushContext(); - var result = tryCatch(this._generator["throw"]).call(this._generator, reason); - this._promise._popContext(); - this._continue(result); - }; + this.strip(); + var littleEndian = endian === 'le'; + var res = new ArrayType(reqLength); - PromiseSpawn.prototype._resultCancelled = function () { - if (this._yieldedPromise instanceof Promise) { - var promise = this._yieldedPromise; - this._yieldedPromise = null; - promise.cancel(); - } - }; + var b, i; + var q = this.clone(); + if (!littleEndian) { + // Assume big-endian + for (i = 0; i < reqLength - byteLength; i++) { + res[i] = 0; + } - PromiseSpawn.prototype.promise = function () { - return this._promise; - }; + for (i = 0; !q.isZero(); i++) { + b = q.andln(0xff); + q.iushrn(8); - PromiseSpawn.prototype._run = function () { - this._generator = this._generatorFunction.call(this._receiver); - this._receiver = this._generatorFunction = undefined; - this._promiseFulfilled(undefined); - }; + res[reqLength - i - 1] = b; + } + } else { + for (i = 0; !q.isZero(); i++) { + b = q.andln(0xff); + q.iushrn(8); - PromiseSpawn.prototype._continue = function (result) { - var promise = this._promise; - if (result === errorObj) { - this._cleanup(); - return promise._rejectCallback(result.e, false); - } + res[i] = b; + } - var value = result.value; - if (result.done === true) { - this._cleanup(); - return promise._resolveCallback(value); - } else { - var maybePromise = tryConvertToPromise(value, this._promise); - if (!(maybePromise instanceof Promise)) { - maybePromise = promiseFromYieldHandler(maybePromise, this._yieldHandlers, this._promise); - if (maybePromise === null) { - this._promiseRejected(new TypeError("A value %s was yielded that could not be treated as a promise\n\n See http://goo.gl/MqrFmX\n\n".replace("%s", value) + "From coroutine:\n" + this._stack.split("\n").slice(1, -7).join("\n"))); - return; - } - } - maybePromise = maybePromise._target(); - var bitField = maybePromise._bitField; - ; - if ((bitField & 50397184) === 0) { - this._yieldedPromise = maybePromise; - maybePromise._proxy(this, null); - } else if ((bitField & 33554432) !== 0) { - this._promiseFulfilled(maybePromise._value()); - } else if ((bitField & 16777216) !== 0) { - this._promiseRejected(maybePromise._reason()); - } else { - this._promiseCancelled(); - } - } - }; + for (; i < reqLength; i++) { + res[i] = 0; + } + } - Promise.coroutine = function (generatorFunction, options) { - if (typeof generatorFunction !== "function") { - throw new TypeError("generatorFunction must be a function\n\n See http://goo.gl/MqrFmX\n"); - } - var yieldHandler = Object(options).yieldHandler; - var PromiseSpawn$ = PromiseSpawn; - var stack = new Error().stack; - return function () { - var generator = generatorFunction.apply(this, arguments); - var spawn = new PromiseSpawn$(undefined, undefined, yieldHandler, stack); - var ret = spawn.promise(); - spawn._generator = generator; - spawn._promiseFulfilled(undefined); - return ret; - }; - }; + return res; + }; - Promise.coroutine.addYieldHandler = function (fn) { - if (typeof fn !== "function") { - throw new TypeError("expecting a function but got " + util.classString(fn)); - } - yieldHandlers.push(fn); - }; + if (Math.clz32) { + BN.prototype._countBits = function _countBits(w) { + return 32 - Math.clz32(w); + }; + } else { + BN.prototype._countBits = function _countBits(w) { + var t = w; + var r = 0; + if (t >= 0x1000) { + r += 13; + t >>>= 13; + } + if (t >= 0x40) { + r += 7; + t >>>= 7; + } + if (t >= 0x8) { + r += 4; + t >>>= 4; + } + if (t >= 0x02) { + r += 2; + t >>>= 2; + } + return r + t; + }; + } - Promise.spawn = function (generatorFunction) { - debug.deprecated("Promise.spawn()", "Promise.coroutine()"); - if (typeof generatorFunction !== "function") { - return apiRejection("generatorFunction must be a function\n\n See http://goo.gl/MqrFmX\n"); - } - var spawn = new PromiseSpawn(generatorFunction, this); - var ret = spawn.promise(); - spawn._run(Promise.spawn); - return ret; - }; - }; - }, { "./errors": 12, "./util": 36 }], 17: [function (_dereq_, module, exports) { - "use strict"; + BN.prototype._zeroBits = function _zeroBits(w) { + // Short-cut + if (w === 0) return 26; - module.exports = function (Promise, PromiseArray, tryConvertToPromise, INTERNAL) { - var util = _dereq_("./util"); - var canEvaluate = util.canEvaluate; - var tryCatch = util.tryCatch; - var errorObj = util.errorObj; - var reject; + var t = w; + var r = 0; + if ((t & 0x1fff) === 0) { + r += 13; + t >>>= 13; + } + if ((t & 0x7f) === 0) { + r += 7; + t >>>= 7; + } + if ((t & 0xf) === 0) { + r += 4; + t >>>= 4; + } + if ((t & 0x3) === 0) { + r += 2; + t >>>= 2; + } + if ((t & 0x1) === 0) { + r++; + } + return r; + }; - if (!true) { - if (canEvaluate) { - var thenCallback = function thenCallback(i) { - return new Function("value", "holder", " \n\ - 'use strict'; \n\ - holder.pIndex = value; \n\ - holder.checkFulfillment(this); \n\ - ".replace(/Index/g, i)); - }; + // Return number of used bits in a BN + BN.prototype.bitLength = function bitLength() { + var w = this.words[this.length - 1]; + var hi = this._countBits(w); + return (this.length - 1) * 26 + hi; + }; - var promiseSetter = function promiseSetter(i) { - return new Function("promise", "holder", " \n\ - 'use strict'; \n\ - holder.pIndex = promise; \n\ - ".replace(/Index/g, i)); - }; + function toBitArray(num) { + var w = new Array(num.bitLength()); - var generateHolderClass = function generateHolderClass(total) { - var props = new Array(total); - for (var i = 0; i < props.length; ++i) { - props[i] = "this.p" + (i + 1); - } - var assignment = props.join(" = ") + " = null;"; - var cancellationCode = "var promise;\n" + props.map(function (prop) { - return " \n\ - promise = " + prop + "; \n\ - if (promise instanceof Promise) { \n\ - promise.cancel(); \n\ - } \n\ - "; - }).join("\n"); - var passedArguments = props.join(", "); - var name = "Holder$" + total; + for (var bit = 0; bit < w.length; bit++) { + var off = bit / 26 | 0; + var wbit = bit % 26; - var code = "return function(tryCatch, errorObj, Promise) { \n\ - 'use strict'; \n\ - function [TheName](fn) { \n\ - [TheProperties] \n\ - this.fn = fn; \n\ - this.now = 0; \n\ - } \n\ - [TheName].prototype.checkFulfillment = function(promise) { \n\ - var now = ++this.now; \n\ - if (now === [TheTotal]) { \n\ - promise._pushContext(); \n\ - var callback = this.fn; \n\ - var ret = tryCatch(callback)([ThePassedArguments]); \n\ - promise._popContext(); \n\ - if (ret === errorObj) { \n\ - promise._rejectCallback(ret.e, false); \n\ - } else { \n\ - promise._resolveCallback(ret); \n\ - } \n\ - } \n\ - }; \n\ - \n\ - [TheName].prototype._resultCancelled = function() { \n\ - [CancellationCode] \n\ - }; \n\ - \n\ - return [TheName]; \n\ - }(tryCatch, errorObj, Promise); \n\ - "; + w[bit] = (num.words[off] & 1 << wbit) >>> wbit; + } - code = code.replace(/\[TheName\]/g, name).replace(/\[TheTotal\]/g, total).replace(/\[ThePassedArguments\]/g, passedArguments).replace(/\[TheProperties\]/g, assignment).replace(/\[CancellationCode\]/g, cancellationCode); + return w; + } - return new Function("tryCatch", "errorObj", "Promise", code)(tryCatch, errorObj, Promise); - }; + // Number of trailing zero bits + BN.prototype.zeroBits = function zeroBits() { + if (this.isZero()) return 0; - var holderClasses = []; - var thenCallbacks = []; - var promiseSetters = []; + var r = 0; + for (var i = 0; i < this.length; i++) { + var b = this._zeroBits(this.words[i]); + r += b; + if (b !== 26) break; + } + return r; + }; - for (var i = 0; i < 8; ++i) { - holderClasses.push(generateHolderClass(i + 1)); - thenCallbacks.push(thenCallback(i + 1)); - promiseSetters.push(promiseSetter(i + 1)); - } + BN.prototype.byteLength = function byteLength() { + return Math.ceil(this.bitLength() / 8); + }; - reject = function reject(reason) { - this._reject(reason); - }; - } - } + BN.prototype.toTwos = function toTwos(width) { + if (this.negative !== 0) { + return this.abs().inotn(width).iaddn(1); + } + return this.clone(); + }; - Promise.join = function () { - var last = arguments.length - 1; - var fn; - if (last > 0 && typeof arguments[last] === "function") { - fn = arguments[last]; - if (!true) { - if (last <= 8 && canEvaluate) { - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - var HolderClass = holderClasses[last - 1]; - var holder = new HolderClass(fn); - var callbacks = thenCallbacks; + BN.prototype.fromTwos = function fromTwos(width) { + if (this.testn(width - 1)) { + return this.notn(width).iaddn(1).ineg(); + } + return this.clone(); + }; - for (var i = 0; i < last; ++i) { - var maybePromise = tryConvertToPromise(arguments[i], ret); - if (maybePromise instanceof Promise) { - maybePromise = maybePromise._target(); - var bitField = maybePromise._bitField; - ; - if ((bitField & 50397184) === 0) { - maybePromise._then(callbacks[i], reject, undefined, ret, holder); - promiseSetters[i](maybePromise, holder); - } else if ((bitField & 33554432) !== 0) { - callbacks[i].call(ret, maybePromise._value(), holder); - } else if ((bitField & 16777216) !== 0) { - ret._reject(maybePromise._reason()); - } else { - ret._cancel(); - } - } else { - callbacks[i].call(ret, maybePromise, holder); - } - } - if (!ret._isFateSealed()) { - ret._setAsyncGuaranteed(); - ret._setOnCancel(holder); - } - return ret; - } - } - } - var args = [].slice.call(arguments);; - if (fn) args.pop(); - var ret = new PromiseArray(args).promise(); - return fn !== undefined ? ret.spread(fn) : ret; - }; - }; - }, { "./util": 36 }], 18: [function (_dereq_, module, exports) { - "use strict"; + BN.prototype.isNeg = function isNeg() { + return this.negative !== 0; + }; - module.exports = function (Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug) { - var getDomain = Promise._getDomain; - var util = _dereq_("./util"); - var tryCatch = util.tryCatch; - var errorObj = util.errorObj; - var EMPTY_ARRAY = []; + // Return negative clone of `this` + BN.prototype.neg = function neg() { + return this.clone().ineg(); + }; - function MappingPromiseArray(promises, fn, limit, _filter) { - this.constructor$(promises); - this._promise._captureStackTrace(); - var domain = getDomain(); - this._callback = domain === null ? fn : domain.bind(fn); - this._preservedValues = _filter === INTERNAL ? new Array(this.length()) : null; - this._limit = limit; - this._inFlight = 0; - this._queue = limit >= 1 ? [] : EMPTY_ARRAY; - this._init$(undefined, -2); - } - util.inherits(MappingPromiseArray, PromiseArray); + BN.prototype.ineg = function ineg() { + if (!this.isZero()) { + this.negative ^= 1; + } - MappingPromiseArray.prototype._init = function () {}; + return this; + }; - MappingPromiseArray.prototype._promiseFulfilled = function (value, index) { - var values = this._values; - var length = this.length(); - var preservedValues = this._preservedValues; - var limit = this._limit; + // Or `num` with `this` in-place + BN.prototype.iuor = function iuor(num) { + while (this.length < num.length) { + this.words[this.length++] = 0; + } - if (index < 0) { - index = index * -1 - 1; - values[index] = value; - if (limit >= 1) { - this._inFlight--; - this._drainQueue(); - if (this._isResolved()) return true; - } - } else { - if (limit >= 1 && this._inFlight >= limit) { - values[index] = value; - this._queue.push(index); - return false; - } - if (preservedValues !== null) preservedValues[index] = value; + for (var i = 0; i < num.length; i++) { + this.words[i] = this.words[i] | num.words[i]; + } - var promise = this._promise; - var callback = this._callback; - var receiver = promise._boundValue(); - promise._pushContext(); - var ret = tryCatch(callback).call(receiver, value, index, length); - var promiseCreated = promise._popContext(); - debug.checkForgottenReturns(ret, promiseCreated, preservedValues !== null ? "Promise.filter" : "Promise.map", promise); - if (ret === errorObj) { - this._reject(ret.e); - return true; - } + return this.strip(); + }; - var maybePromise = tryConvertToPromise(ret, this._promise); - if (maybePromise instanceof Promise) { - maybePromise = maybePromise._target(); - var bitField = maybePromise._bitField; - ; - if ((bitField & 50397184) === 0) { - if (limit >= 1) this._inFlight++; - values[index] = maybePromise; - maybePromise._proxy(this, (index + 1) * -1); - return false; - } else if ((bitField & 33554432) !== 0) { - ret = maybePromise._value(); - } else if ((bitField & 16777216) !== 0) { - this._reject(maybePromise._reason()); - return true; - } else { - this._cancel(); - return true; - } - } - values[index] = ret; - } - var totalResolved = ++this._totalResolved; - if (totalResolved >= length) { - if (preservedValues !== null) { - this._filter(values, preservedValues); - } else { - this._resolve(values); - } - return true; - } - return false; - }; + BN.prototype.ior = function ior(num) { + assert((this.negative | num.negative) === 0); + return this.iuor(num); + }; - MappingPromiseArray.prototype._drainQueue = function () { - var queue = this._queue; - var limit = this._limit; - var values = this._values; - while (queue.length > 0 && this._inFlight < limit) { - if (this._isResolved()) return; - var index = queue.pop(); - this._promiseFulfilled(values[index], index); - } - }; + // Or `num` with `this` + BN.prototype.or = function or(num) { + if (this.length > num.length) return this.clone().ior(num); + return num.clone().ior(this); + }; - MappingPromiseArray.prototype._filter = function (booleans, values) { - var len = values.length; - var ret = new Array(len); - var j = 0; - for (var i = 0; i < len; ++i) { - if (booleans[i]) ret[j++] = values[i]; - } - ret.length = j; - this._resolve(ret); - }; + BN.prototype.uor = function uor(num) { + if (this.length > num.length) return this.clone().iuor(num); + return num.clone().iuor(this); + }; - MappingPromiseArray.prototype.preservedValues = function () { - return this._preservedValues; - }; + // And `num` with `this` in-place + BN.prototype.iuand = function iuand(num) { + // b = min-length(num, this) + var b; + if (this.length > num.length) { + b = num; + } else { + b = this; + } - function map(promises, fn, options, _filter) { - if (typeof fn !== "function") { - return apiRejection("expecting a function but got " + util.classString(fn)); - } - var limit = (typeof options === "undefined" ? "undefined" : _typeof(options)) === "object" && options !== null ? options.concurrency : 0; - limit = typeof limit === "number" && isFinite(limit) && limit >= 1 ? limit : 0; - return new MappingPromiseArray(promises, fn, limit, _filter).promise(); - } + for (var i = 0; i < b.length; i++) { + this.words[i] = this.words[i] & num.words[i]; + } - Promise.prototype.map = function (fn, options) { - return map(this, fn, options, null); - }; + this.length = b.length; - Promise.map = function (promises, fn, options, _filter) { - return map(promises, fn, options, _filter); - }; - }; - }, { "./util": 36 }], 19: [function (_dereq_, module, exports) { - "use strict"; + return this.strip(); + }; - module.exports = function (Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) { - var util = _dereq_("./util"); - var tryCatch = util.tryCatch; + BN.prototype.iand = function iand(num) { + assert((this.negative | num.negative) === 0); + return this.iuand(num); + }; - Promise.method = function (fn) { - if (typeof fn !== "function") { - throw new Promise.TypeError("expecting a function but got " + util.classString(fn)); - } - return function () { - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - ret._pushContext(); - var value = tryCatch(fn).apply(this, arguments); - var promiseCreated = ret._popContext(); - debug.checkForgottenReturns(value, promiseCreated, "Promise.method", ret); - ret._resolveFromSyncValue(value); - return ret; - }; - }; + // And `num` with `this` + BN.prototype.and = function and(num) { + if (this.length > num.length) return this.clone().iand(num); + return num.clone().iand(this); + }; - Promise.attempt = Promise["try"] = function (fn) { - if (typeof fn !== "function") { - return apiRejection("expecting a function but got " + util.classString(fn)); - } - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - ret._pushContext(); - var value; - if (arguments.length > 1) { - debug.deprecated("calling Promise.try with more than 1 argument"); - var arg = arguments[1]; - var ctx = arguments[2]; - value = util.isArray(arg) ? tryCatch(fn).apply(ctx, arg) : tryCatch(fn).call(ctx, arg); - } else { - value = tryCatch(fn)(); - } - var promiseCreated = ret._popContext(); - debug.checkForgottenReturns(value, promiseCreated, "Promise.try", ret); - ret._resolveFromSyncValue(value); - return ret; - }; + BN.prototype.uand = function uand(num) { + if (this.length > num.length) return this.clone().iuand(num); + return num.clone().iuand(this); + }; - Promise.prototype._resolveFromSyncValue = function (value) { - if (value === util.errorObj) { - this._rejectCallback(value.e, false); - } else { - this._resolveCallback(value, true); - } - }; - }; - }, { "./util": 36 }], 20: [function (_dereq_, module, exports) { - "use strict"; + // Xor `num` with `this` in-place + BN.prototype.iuxor = function iuxor(num) { + // a.length > b.length + var a; + var b; + if (this.length > num.length) { + a = this; + b = num; + } else { + a = num; + b = this; + } - var util = _dereq_("./util"); - var maybeWrapAsError = util.maybeWrapAsError; - var errors = _dereq_("./errors"); - var OperationalError = errors.OperationalError; - var es5 = _dereq_("./es5"); + for (var i = 0; i < b.length; i++) { + this.words[i] = a.words[i] ^ b.words[i]; + } - function isUntypedError(obj) { - return obj instanceof Error && es5.getPrototypeOf(obj) === Error.prototype; - } + if (this !== a) { + for (; i < a.length; i++) { + this.words[i] = a.words[i]; + } + } - var rErrorKey = /^(?:name|message|stack|cause)$/; - function wrapAsOperationalError(obj) { - var ret; - if (isUntypedError(obj)) { - ret = new OperationalError(obj); - ret.name = obj.name; - ret.message = obj.message; - ret.stack = obj.stack; - var keys = es5.keys(obj); - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - if (!rErrorKey.test(key)) { - ret[key] = obj[key]; - } - } - return ret; - } - util.markAsOriginatingFromRejection(obj); - return obj; - } + this.length = a.length; - function nodebackForPromise(promise, multiArgs) { - return function (err, value) { - if (promise === null) return; - if (err) { - var wrapped = wrapAsOperationalError(maybeWrapAsError(err)); - promise._attachExtraTrace(wrapped); - promise._reject(wrapped); - } else if (!multiArgs) { - promise._fulfill(value); - } else { - var args = [].slice.call(arguments, 1);; - promise._fulfill(args); - } - promise = null; - }; - } + return this.strip(); + }; - module.exports = nodebackForPromise; - }, { "./errors": 12, "./es5": 13, "./util": 36 }], 21: [function (_dereq_, module, exports) { - "use strict"; + BN.prototype.ixor = function ixor(num) { + assert((this.negative | num.negative) === 0); + return this.iuxor(num); + }; - module.exports = function (Promise) { - var util = _dereq_("./util"); - var async = Promise._async; - var tryCatch = util.tryCatch; - var errorObj = util.errorObj; + // Xor `num` with `this` + BN.prototype.xor = function xor(num) { + if (this.length > num.length) return this.clone().ixor(num); + return num.clone().ixor(this); + }; - function spreadAdapter(val, nodeback) { - var promise = this; - if (!util.isArray(val)) return successAdapter.call(promise, val, nodeback); - var ret = tryCatch(nodeback).apply(promise._boundValue(), [null].concat(val)); - if (ret === errorObj) { - async.throwLater(ret.e); - } - } + BN.prototype.uxor = function uxor(num) { + if (this.length > num.length) return this.clone().iuxor(num); + return num.clone().iuxor(this); + }; - function successAdapter(val, nodeback) { - var promise = this; - var receiver = promise._boundValue(); - var ret = val === undefined ? tryCatch(nodeback).call(receiver, null) : tryCatch(nodeback).call(receiver, null, val); - if (ret === errorObj) { - async.throwLater(ret.e); - } - } - function errorAdapter(reason, nodeback) { - var promise = this; - if (!reason) { - var newReason = new Error(reason + ""); - newReason.cause = reason; - reason = newReason; - } - var ret = tryCatch(nodeback).call(promise._boundValue(), reason); - if (ret === errorObj) { - async.throwLater(ret.e); - } - } + // Not ``this`` with ``width`` bitwidth + BN.prototype.inotn = function inotn(width) { + assert(typeof width === 'number' && width >= 0); - Promise.prototype.asCallback = Promise.prototype.nodeify = function (nodeback, options) { - if (typeof nodeback == "function") { - var adapter = successAdapter; - if (options !== undefined && Object(options).spread) { - adapter = spreadAdapter; - } - this._then(adapter, errorAdapter, undefined, this, nodeback); - } - return this; - }; - }; - }, { "./util": 36 }], 22: [function (_dereq_, module, exports) { - "use strict"; + var bytesNeeded = Math.ceil(width / 26) | 0; + var bitsLeft = width % 26; - module.exports = function () { - var makeSelfResolutionError = function makeSelfResolutionError() { - return new TypeError("circular promise resolution chain\n\n See http://goo.gl/MqrFmX\n"); - }; - var reflectHandler = function reflectHandler() { - return new Promise.PromiseInspection(this._target()); - }; - var apiRejection = function apiRejection(msg) { - return Promise.reject(new TypeError(msg)); - }; - function Proxyable() {} - var UNDEFINED_BINDING = {}; - var util = _dereq_("./util"); + // Extend the buffer with leading zeroes + this._expand(bytesNeeded); - var getDomain; - if (util.isNode) { - getDomain = function getDomain() { - var ret = process.domain; - if (ret === undefined) ret = null; - return ret; - }; - } else { - getDomain = function getDomain() { - return null; - }; - } - util.notEnumerableProp(Promise, "_getDomain", getDomain); + if (bitsLeft > 0) { + bytesNeeded--; + } - var es5 = _dereq_("./es5"); - var Async = _dereq_("./async"); - var async = new Async(); - es5.defineProperty(Promise, "_async", { value: async }); - var errors = _dereq_("./errors"); - var TypeError = Promise.TypeError = errors.TypeError; - Promise.RangeError = errors.RangeError; - var CancellationError = Promise.CancellationError = errors.CancellationError; - Promise.TimeoutError = errors.TimeoutError; - Promise.OperationalError = errors.OperationalError; - Promise.RejectionError = errors.OperationalError; - Promise.AggregateError = errors.AggregateError; - var INTERNAL = function INTERNAL() {}; - var APPLY = {}; - var NEXT_FILTER = {}; - var tryConvertToPromise = _dereq_("./thenables")(Promise, INTERNAL); - var PromiseArray = _dereq_("./promise_array")(Promise, INTERNAL, tryConvertToPromise, apiRejection, Proxyable); - var Context = _dereq_("./context")(Promise); - /*jshint unused:false*/ - var createContext = Context.create; - var debug = _dereq_("./debuggability")(Promise, Context); - var CapturedTrace = debug.CapturedTrace; - var PassThroughHandlerContext = _dereq_("./finally")(Promise, tryConvertToPromise); - var catchFilter = _dereq_("./catch_filter")(NEXT_FILTER); - var nodebackForPromise = _dereq_("./nodeback"); - var errorObj = util.errorObj; - var tryCatch = util.tryCatch; - function check(self, executor) { - if (typeof executor !== "function") { - throw new TypeError("expecting a function but got " + util.classString(executor)); - } - if (self.constructor !== Promise) { - throw new TypeError("the promise constructor cannot be invoked directly\n\n See http://goo.gl/MqrFmX\n"); - } - } - - function Promise(executor) { - this._bitField = 0; - this._fulfillmentHandler0 = undefined; - this._rejectionHandler0 = undefined; - this._promise0 = undefined; - this._receiver0 = undefined; - if (executor !== INTERNAL) { - check(this, executor); - this._resolveFromExecutor(executor); - } - this._promiseCreated(); - this._fireEvent("promiseCreated", this); - } + // Handle complete words + for (var i = 0; i < bytesNeeded; i++) { + this.words[i] = ~this.words[i] & 0x3ffffff; + } - Promise.prototype.toString = function () { - return "[object Promise]"; - }; + // Handle the residue + if (bitsLeft > 0) { + this.words[i] = ~this.words[i] & 0x3ffffff >> 26 - bitsLeft; + } - Promise.prototype.caught = Promise.prototype["catch"] = function (fn) { - var len = arguments.length; - if (len > 1) { - var catchInstances = new Array(len - 1), - j = 0, - i; - for (i = 0; i < len - 1; ++i) { - var item = arguments[i]; - if (util.isObject(item)) { - catchInstances[j++] = item; - } else { - return apiRejection("expecting an object but got " + util.classString(item)); - } - } - catchInstances.length = j; - fn = arguments[i]; - return this.then(undefined, catchFilter(catchInstances, fn, this)); - } - return this.then(undefined, fn); - }; + // And remove leading zeroes + return this.strip(); + }; - Promise.prototype.reflect = function () { - return this._then(reflectHandler, reflectHandler, undefined, this, undefined); - }; + BN.prototype.notn = function notn(width) { + return this.clone().inotn(width); + }; - Promise.prototype.then = function (didFulfill, didReject) { - if (debug.warnings() && arguments.length > 0 && typeof didFulfill !== "function" && typeof didReject !== "function") { - var msg = ".then() only accepts functions but was passed: " + util.classString(didFulfill); - if (arguments.length > 1) { - msg += ", " + util.classString(didReject); - } - this._warn(msg); - } - return this._then(didFulfill, didReject, undefined, undefined, undefined); - }; + // Set `bit` of `this` + BN.prototype.setn = function setn(bit, val) { + assert(typeof bit === 'number' && bit >= 0); - Promise.prototype.done = function (didFulfill, didReject) { - var promise = this._then(didFulfill, didReject, undefined, undefined, undefined); - promise._setIsFinal(); - }; + var off = bit / 26 | 0; + var wbit = bit % 26; - Promise.prototype.spread = function (fn) { - if (typeof fn !== "function") { - return apiRejection("expecting a function but got " + util.classString(fn)); - } - return this.all()._then(fn, undefined, undefined, APPLY, undefined); - }; + this._expand(off + 1); - Promise.prototype.toJSON = function () { - var ret = { - isFulfilled: false, - isRejected: false, - fulfillmentValue: undefined, - rejectionReason: undefined - }; - if (this.isFulfilled()) { - ret.fulfillmentValue = this.value(); - ret.isFulfilled = true; - } else if (this.isRejected()) { - ret.rejectionReason = this.reason(); - ret.isRejected = true; - } - return ret; - }; + if (val) { + this.words[off] = this.words[off] | 1 << wbit; + } else { + this.words[off] = this.words[off] & ~(1 << wbit); + } - Promise.prototype.all = function () { - if (arguments.length > 0) { - this._warn(".all() was passed arguments but it does not take any"); - } - return new PromiseArray(this).promise(); - }; + return this.strip(); + }; - Promise.prototype.error = function (fn) { - return this.caught(util.originatesFromRejection, fn); - }; + // Add `num` to `this` in-place + BN.prototype.iadd = function iadd(num) { + var r; - Promise.is = function (val) { - return val instanceof Promise; - }; + // negative + positive + if (this.negative !== 0 && num.negative === 0) { + this.negative = 0; + r = this.isub(num); + this.negative ^= 1; + return this._normSign(); - Promise.fromNode = Promise.fromCallback = function (fn) { - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - var multiArgs = arguments.length > 1 ? !!Object(arguments[1]).multiArgs : false; - var result = tryCatch(fn)(nodebackForPromise(ret, multiArgs)); - if (result === errorObj) { - ret._rejectCallback(result.e, true); - } - if (!ret._isFateSealed()) ret._setAsyncGuaranteed(); - return ret; - }; + // positive + negative + } else if (this.negative === 0 && num.negative !== 0) { + num.negative = 0; + r = this.isub(num); + num.negative = 1; + return r._normSign(); + } - Promise.all = function (promises) { - return new PromiseArray(promises).promise(); - }; + // a.length > b.length + var a, b; + if (this.length > num.length) { + a = this; + b = num; + } else { + a = num; + b = this; + } - Promise.cast = function (obj) { - var ret = tryConvertToPromise(obj); - if (!(ret instanceof Promise)) { - ret = new Promise(INTERNAL); - ret._captureStackTrace(); - ret._setFulfilled(); - ret._rejectionHandler0 = obj; - } - return ret; - }; + var carry = 0; + for (var i = 0; i < b.length; i++) { + r = (a.words[i] | 0) + (b.words[i] | 0) + carry; + this.words[i] = r & 0x3ffffff; + carry = r >>> 26; + } + for (; carry !== 0 && i < a.length; i++) { + r = (a.words[i] | 0) + carry; + this.words[i] = r & 0x3ffffff; + carry = r >>> 26; + } - Promise.resolve = Promise.fulfilled = Promise.cast; + this.length = a.length; + if (carry !== 0) { + this.words[this.length] = carry; + this.length++; + // Copy the rest of the words + } else if (a !== this) { + for (; i < a.length; i++) { + this.words[i] = a.words[i]; + } + } - Promise.reject = Promise.rejected = function (reason) { - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - ret._rejectCallback(reason, true); - return ret; - }; + return this; + }; - Promise.setScheduler = function (fn) { - if (typeof fn !== "function") { - throw new TypeError("expecting a function but got " + util.classString(fn)); - } - var prev = async._schedule; - async._schedule = fn; - return prev; - }; + // Add `num` to `this` + BN.prototype.add = function add(num) { + var res; + if (num.negative !== 0 && this.negative === 0) { + num.negative = 0; + res = this.sub(num); + num.negative ^= 1; + return res; + } else if (num.negative === 0 && this.negative !== 0) { + this.negative = 0; + res = num.sub(this); + this.negative = 1; + return res; + } - Promise.prototype._then = function (didFulfill, didReject, _, receiver, internalData) { - var haveInternalData = internalData !== undefined; - var promise = haveInternalData ? internalData : new Promise(INTERNAL); - var target = this._target(); - var bitField = target._bitField; + if (this.length > num.length) return this.clone().iadd(num); - if (!haveInternalData) { - promise._propagateFrom(this, 3); - promise._captureStackTrace(); - if (receiver === undefined && (this._bitField & 2097152) !== 0) { - if (!((bitField & 50397184) === 0)) { - receiver = this._boundValue(); - } else { - receiver = target === this ? undefined : this._boundTo; - } - } - this._fireEvent("promiseChained", this, promise); - } + return num.clone().iadd(this); + }; - var domain = getDomain(); - if (!((bitField & 50397184) === 0)) { - var handler, - value, - settler = target._settlePromiseCtx; - if ((bitField & 33554432) !== 0) { - value = target._rejectionHandler0; - handler = didFulfill; - } else if ((bitField & 16777216) !== 0) { - value = target._fulfillmentHandler0; - handler = didReject; - target._unsetRejectionIsUnhandled(); - } else { - settler = target._settlePromiseLateCancellationObserver; - value = new CancellationError("late cancellation observer"); - target._attachExtraTrace(value); - handler = didReject; - } + // Subtract `num` from `this` in-place + BN.prototype.isub = function isub(num) { + // this - (-num) = this + num + if (num.negative !== 0) { + num.negative = 0; + var r = this.iadd(num); + num.negative = 1; + return r._normSign(); - async.invoke(settler, target, { - handler: domain === null ? handler : typeof handler === "function" && domain.bind(handler), - promise: promise, - receiver: receiver, - value: value - }); - } else { - target._addCallbacks(didFulfill, didReject, promise, receiver, domain); - } + // -this - num = -(this + num) + } else if (this.negative !== 0) { + this.negative = 0; + this.iadd(num); + this.negative = 1; + return this._normSign(); + } - return promise; - }; + // At this point both numbers are positive + var cmp = this.cmp(num); - Promise.prototype._length = function () { - return this._bitField & 65535; - }; + // Optimization - zeroify + if (cmp === 0) { + this.negative = 0; + this.length = 1; + this.words[0] = 0; + return this; + } - Promise.prototype._isFateSealed = function () { - return (this._bitField & 117506048) !== 0; - }; + // a > b + var a, b; + if (cmp > 0) { + a = this; + b = num; + } else { + a = num; + b = this; + } - Promise.prototype._isFollowing = function () { - return (this._bitField & 67108864) === 67108864; - }; + var carry = 0; + for (var i = 0; i < b.length; i++) { + r = (a.words[i] | 0) - (b.words[i] | 0) + carry; + carry = r >> 26; + this.words[i] = r & 0x3ffffff; + } + for (; carry !== 0 && i < a.length; i++) { + r = (a.words[i] | 0) + carry; + carry = r >> 26; + this.words[i] = r & 0x3ffffff; + } - Promise.prototype._setLength = function (len) { - this._bitField = this._bitField & -65536 | len & 65535; - }; + // Copy rest of the words + if (carry === 0 && i < a.length && a !== this) { + for (; i < a.length; i++) { + this.words[i] = a.words[i]; + } + } - Promise.prototype._setFulfilled = function () { - this._bitField = this._bitField | 33554432; - this._fireEvent("promiseFulfilled", this); - }; + this.length = Math.max(this.length, i); - Promise.prototype._setRejected = function () { - this._bitField = this._bitField | 16777216; - this._fireEvent("promiseRejected", this); - }; + if (a !== this) { + this.negative = 1; + } - Promise.prototype._setFollowing = function () { - this._bitField = this._bitField | 67108864; - this._fireEvent("promiseResolved", this); - }; + return this.strip(); + }; - Promise.prototype._setIsFinal = function () { - this._bitField = this._bitField | 4194304; - }; + // Subtract `num` from `this` + BN.prototype.sub = function sub(num) { + return this.clone().isub(num); + }; - Promise.prototype._isFinal = function () { - return (this._bitField & 4194304) > 0; - }; + function smallMulTo(self, num, out) { + out.negative = num.negative ^ self.negative; + var len = self.length + num.length | 0; + out.length = len; + len = len - 1 | 0; - Promise.prototype._unsetCancelled = function () { - this._bitField = this._bitField & ~65536; - }; + // Peel one iteration (compiler can't do it, because of code complexity) + var a = self.words[0] | 0; + var b = num.words[0] | 0; + var r = a * b; - Promise.prototype._setCancelled = function () { - this._bitField = this._bitField | 65536; - this._fireEvent("promiseCancelled", this); - }; + var lo = r & 0x3ffffff; + var carry = r / 0x4000000 | 0; + out.words[0] = lo; - Promise.prototype._setAsyncGuaranteed = function () { - this._bitField = this._bitField | 134217728; - }; + for (var k = 1; k < len; k++) { + // Sum all words with the same `i + j = k` and accumulate `ncarry`, + // note that ncarry could be >= 0x3ffffff + var ncarry = carry >>> 26; + var rword = carry & 0x3ffffff; + var maxJ = Math.min(k, num.length - 1); + for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { + var i = k - j | 0; + a = self.words[i] | 0; + b = num.words[j] | 0; + r = a * b + rword; + ncarry += r / 0x4000000 | 0; + rword = r & 0x3ffffff; + } + out.words[k] = rword | 0; + carry = ncarry | 0; + } + if (carry !== 0) { + out.words[k] = carry | 0; + } else { + out.length--; + } - Promise.prototype._receiverAt = function (index) { - var ret = index === 0 ? this._receiver0 : this[index * 4 - 4 + 3]; - if (ret === UNDEFINED_BINDING) { - return undefined; - } else if (ret === undefined && this._isBound()) { - return this._boundValue(); - } - return ret; - }; + return out.strip(); + } - Promise.prototype._promiseAt = function (index) { - return this[index * 4 - 4 + 2]; - }; + // TODO(indutny): it may be reasonable to omit it for users who don't need + // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit + // multiplication (like elliptic secp256k1). + var comb10MulTo = function comb10MulTo(self, num, out) { + var a = self.words; + var b = num.words; + var o = out.words; + var c = 0; + var lo; + var mid; + var hi; + var a0 = a[0] | 0; + var al0 = a0 & 0x1fff; + var ah0 = a0 >>> 13; + var a1 = a[1] | 0; + var al1 = a1 & 0x1fff; + var ah1 = a1 >>> 13; + var a2 = a[2] | 0; + var al2 = a2 & 0x1fff; + var ah2 = a2 >>> 13; + var a3 = a[3] | 0; + var al3 = a3 & 0x1fff; + var ah3 = a3 >>> 13; + var a4 = a[4] | 0; + var al4 = a4 & 0x1fff; + var ah4 = a4 >>> 13; + var a5 = a[5] | 0; + var al5 = a5 & 0x1fff; + var ah5 = a5 >>> 13; + var a6 = a[6] | 0; + var al6 = a6 & 0x1fff; + var ah6 = a6 >>> 13; + var a7 = a[7] | 0; + var al7 = a7 & 0x1fff; + var ah7 = a7 >>> 13; + var a8 = a[8] | 0; + var al8 = a8 & 0x1fff; + var ah8 = a8 >>> 13; + var a9 = a[9] | 0; + var al9 = a9 & 0x1fff; + var ah9 = a9 >>> 13; + var b0 = b[0] | 0; + var bl0 = b0 & 0x1fff; + var bh0 = b0 >>> 13; + var b1 = b[1] | 0; + var bl1 = b1 & 0x1fff; + var bh1 = b1 >>> 13; + var b2 = b[2] | 0; + var bl2 = b2 & 0x1fff; + var bh2 = b2 >>> 13; + var b3 = b[3] | 0; + var bl3 = b3 & 0x1fff; + var bh3 = b3 >>> 13; + var b4 = b[4] | 0; + var bl4 = b4 & 0x1fff; + var bh4 = b4 >>> 13; + var b5 = b[5] | 0; + var bl5 = b5 & 0x1fff; + var bh5 = b5 >>> 13; + var b6 = b[6] | 0; + var bl6 = b6 & 0x1fff; + var bh6 = b6 >>> 13; + var b7 = b[7] | 0; + var bl7 = b7 & 0x1fff; + var bh7 = b7 >>> 13; + var b8 = b[8] | 0; + var bl8 = b8 & 0x1fff; + var bh8 = b8 >>> 13; + var b9 = b[9] | 0; + var bl9 = b9 & 0x1fff; + var bh9 = b9 >>> 13; - Promise.prototype._fulfillmentHandlerAt = function (index) { - return this[index * 4 - 4 + 0]; - }; + out.negative = self.negative ^ num.negative; + out.length = 19; + /* k = 0 */ + lo = Math.imul(al0, bl0); + mid = Math.imul(al0, bh0); + mid = mid + Math.imul(ah0, bl0) | 0; + hi = Math.imul(ah0, bh0); + var w0 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0; + w0 &= 0x3ffffff; + /* k = 1 */ + lo = Math.imul(al1, bl0); + mid = Math.imul(al1, bh0); + mid = mid + Math.imul(ah1, bl0) | 0; + hi = Math.imul(ah1, bh0); + lo = lo + Math.imul(al0, bl1) | 0; + mid = mid + Math.imul(al0, bh1) | 0; + mid = mid + Math.imul(ah0, bl1) | 0; + hi = hi + Math.imul(ah0, bh1) | 0; + var w1 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0; + w1 &= 0x3ffffff; + /* k = 2 */ + lo = Math.imul(al2, bl0); + mid = Math.imul(al2, bh0); + mid = mid + Math.imul(ah2, bl0) | 0; + hi = Math.imul(ah2, bh0); + lo = lo + Math.imul(al1, bl1) | 0; + mid = mid + Math.imul(al1, bh1) | 0; + mid = mid + Math.imul(ah1, bl1) | 0; + hi = hi + Math.imul(ah1, bh1) | 0; + lo = lo + Math.imul(al0, bl2) | 0; + mid = mid + Math.imul(al0, bh2) | 0; + mid = mid + Math.imul(ah0, bl2) | 0; + hi = hi + Math.imul(ah0, bh2) | 0; + var w2 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w2 >>> 26) | 0; + w2 &= 0x3ffffff; + /* k = 3 */ + lo = Math.imul(al3, bl0); + mid = Math.imul(al3, bh0); + mid = mid + Math.imul(ah3, bl0) | 0; + hi = Math.imul(ah3, bh0); + lo = lo + Math.imul(al2, bl1) | 0; + mid = mid + Math.imul(al2, bh1) | 0; + mid = mid + Math.imul(ah2, bl1) | 0; + hi = hi + Math.imul(ah2, bh1) | 0; + lo = lo + Math.imul(al1, bl2) | 0; + mid = mid + Math.imul(al1, bh2) | 0; + mid = mid + Math.imul(ah1, bl2) | 0; + hi = hi + Math.imul(ah1, bh2) | 0; + lo = lo + Math.imul(al0, bl3) | 0; + mid = mid + Math.imul(al0, bh3) | 0; + mid = mid + Math.imul(ah0, bl3) | 0; + hi = hi + Math.imul(ah0, bh3) | 0; + var w3 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w3 >>> 26) | 0; + w3 &= 0x3ffffff; + /* k = 4 */ + lo = Math.imul(al4, bl0); + mid = Math.imul(al4, bh0); + mid = mid + Math.imul(ah4, bl0) | 0; + hi = Math.imul(ah4, bh0); + lo = lo + Math.imul(al3, bl1) | 0; + mid = mid + Math.imul(al3, bh1) | 0; + mid = mid + Math.imul(ah3, bl1) | 0; + hi = hi + Math.imul(ah3, bh1) | 0; + lo = lo + Math.imul(al2, bl2) | 0; + mid = mid + Math.imul(al2, bh2) | 0; + mid = mid + Math.imul(ah2, bl2) | 0; + hi = hi + Math.imul(ah2, bh2) | 0; + lo = lo + Math.imul(al1, bl3) | 0; + mid = mid + Math.imul(al1, bh3) | 0; + mid = mid + Math.imul(ah1, bl3) | 0; + hi = hi + Math.imul(ah1, bh3) | 0; + lo = lo + Math.imul(al0, bl4) | 0; + mid = mid + Math.imul(al0, bh4) | 0; + mid = mid + Math.imul(ah0, bl4) | 0; + hi = hi + Math.imul(ah0, bh4) | 0; + var w4 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0; + w4 &= 0x3ffffff; + /* k = 5 */ + lo = Math.imul(al5, bl0); + mid = Math.imul(al5, bh0); + mid = mid + Math.imul(ah5, bl0) | 0; + hi = Math.imul(ah5, bh0); + lo = lo + Math.imul(al4, bl1) | 0; + mid = mid + Math.imul(al4, bh1) | 0; + mid = mid + Math.imul(ah4, bl1) | 0; + hi = hi + Math.imul(ah4, bh1) | 0; + lo = lo + Math.imul(al3, bl2) | 0; + mid = mid + Math.imul(al3, bh2) | 0; + mid = mid + Math.imul(ah3, bl2) | 0; + hi = hi + Math.imul(ah3, bh2) | 0; + lo = lo + Math.imul(al2, bl3) | 0; + mid = mid + Math.imul(al2, bh3) | 0; + mid = mid + Math.imul(ah2, bl3) | 0; + hi = hi + Math.imul(ah2, bh3) | 0; + lo = lo + Math.imul(al1, bl4) | 0; + mid = mid + Math.imul(al1, bh4) | 0; + mid = mid + Math.imul(ah1, bl4) | 0; + hi = hi + Math.imul(ah1, bh4) | 0; + lo = lo + Math.imul(al0, bl5) | 0; + mid = mid + Math.imul(al0, bh5) | 0; + mid = mid + Math.imul(ah0, bl5) | 0; + hi = hi + Math.imul(ah0, bh5) | 0; + var w5 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0; + w5 &= 0x3ffffff; + /* k = 6 */ + lo = Math.imul(al6, bl0); + mid = Math.imul(al6, bh0); + mid = mid + Math.imul(ah6, bl0) | 0; + hi = Math.imul(ah6, bh0); + lo = lo + Math.imul(al5, bl1) | 0; + mid = mid + Math.imul(al5, bh1) | 0; + mid = mid + Math.imul(ah5, bl1) | 0; + hi = hi + Math.imul(ah5, bh1) | 0; + lo = lo + Math.imul(al4, bl2) | 0; + mid = mid + Math.imul(al4, bh2) | 0; + mid = mid + Math.imul(ah4, bl2) | 0; + hi = hi + Math.imul(ah4, bh2) | 0; + lo = lo + Math.imul(al3, bl3) | 0; + mid = mid + Math.imul(al3, bh3) | 0; + mid = mid + Math.imul(ah3, bl3) | 0; + hi = hi + Math.imul(ah3, bh3) | 0; + lo = lo + Math.imul(al2, bl4) | 0; + mid = mid + Math.imul(al2, bh4) | 0; + mid = mid + Math.imul(ah2, bl4) | 0; + hi = hi + Math.imul(ah2, bh4) | 0; + lo = lo + Math.imul(al1, bl5) | 0; + mid = mid + Math.imul(al1, bh5) | 0; + mid = mid + Math.imul(ah1, bl5) | 0; + hi = hi + Math.imul(ah1, bh5) | 0; + lo = lo + Math.imul(al0, bl6) | 0; + mid = mid + Math.imul(al0, bh6) | 0; + mid = mid + Math.imul(ah0, bl6) | 0; + hi = hi + Math.imul(ah0, bh6) | 0; + var w6 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0; + w6 &= 0x3ffffff; + /* k = 7 */ + lo = Math.imul(al7, bl0); + mid = Math.imul(al7, bh0); + mid = mid + Math.imul(ah7, bl0) | 0; + hi = Math.imul(ah7, bh0); + lo = lo + Math.imul(al6, bl1) | 0; + mid = mid + Math.imul(al6, bh1) | 0; + mid = mid + Math.imul(ah6, bl1) | 0; + hi = hi + Math.imul(ah6, bh1) | 0; + lo = lo + Math.imul(al5, bl2) | 0; + mid = mid + Math.imul(al5, bh2) | 0; + mid = mid + Math.imul(ah5, bl2) | 0; + hi = hi + Math.imul(ah5, bh2) | 0; + lo = lo + Math.imul(al4, bl3) | 0; + mid = mid + Math.imul(al4, bh3) | 0; + mid = mid + Math.imul(ah4, bl3) | 0; + hi = hi + Math.imul(ah4, bh3) | 0; + lo = lo + Math.imul(al3, bl4) | 0; + mid = mid + Math.imul(al3, bh4) | 0; + mid = mid + Math.imul(ah3, bl4) | 0; + hi = hi + Math.imul(ah3, bh4) | 0; + lo = lo + Math.imul(al2, bl5) | 0; + mid = mid + Math.imul(al2, bh5) | 0; + mid = mid + Math.imul(ah2, bl5) | 0; + hi = hi + Math.imul(ah2, bh5) | 0; + lo = lo + Math.imul(al1, bl6) | 0; + mid = mid + Math.imul(al1, bh6) | 0; + mid = mid + Math.imul(ah1, bl6) | 0; + hi = hi + Math.imul(ah1, bh6) | 0; + lo = lo + Math.imul(al0, bl7) | 0; + mid = mid + Math.imul(al0, bh7) | 0; + mid = mid + Math.imul(ah0, bl7) | 0; + hi = hi + Math.imul(ah0, bh7) | 0; + var w7 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0; + w7 &= 0x3ffffff; + /* k = 8 */ + lo = Math.imul(al8, bl0); + mid = Math.imul(al8, bh0); + mid = mid + Math.imul(ah8, bl0) | 0; + hi = Math.imul(ah8, bh0); + lo = lo + Math.imul(al7, bl1) | 0; + mid = mid + Math.imul(al7, bh1) | 0; + mid = mid + Math.imul(ah7, bl1) | 0; + hi = hi + Math.imul(ah7, bh1) | 0; + lo = lo + Math.imul(al6, bl2) | 0; + mid = mid + Math.imul(al6, bh2) | 0; + mid = mid + Math.imul(ah6, bl2) | 0; + hi = hi + Math.imul(ah6, bh2) | 0; + lo = lo + Math.imul(al5, bl3) | 0; + mid = mid + Math.imul(al5, bh3) | 0; + mid = mid + Math.imul(ah5, bl3) | 0; + hi = hi + Math.imul(ah5, bh3) | 0; + lo = lo + Math.imul(al4, bl4) | 0; + mid = mid + Math.imul(al4, bh4) | 0; + mid = mid + Math.imul(ah4, bl4) | 0; + hi = hi + Math.imul(ah4, bh4) | 0; + lo = lo + Math.imul(al3, bl5) | 0; + mid = mid + Math.imul(al3, bh5) | 0; + mid = mid + Math.imul(ah3, bl5) | 0; + hi = hi + Math.imul(ah3, bh5) | 0; + lo = lo + Math.imul(al2, bl6) | 0; + mid = mid + Math.imul(al2, bh6) | 0; + mid = mid + Math.imul(ah2, bl6) | 0; + hi = hi + Math.imul(ah2, bh6) | 0; + lo = lo + Math.imul(al1, bl7) | 0; + mid = mid + Math.imul(al1, bh7) | 0; + mid = mid + Math.imul(ah1, bl7) | 0; + hi = hi + Math.imul(ah1, bh7) | 0; + lo = lo + Math.imul(al0, bl8) | 0; + mid = mid + Math.imul(al0, bh8) | 0; + mid = mid + Math.imul(ah0, bl8) | 0; + hi = hi + Math.imul(ah0, bh8) | 0; + var w8 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0; + w8 &= 0x3ffffff; + /* k = 9 */ + lo = Math.imul(al9, bl0); + mid = Math.imul(al9, bh0); + mid = mid + Math.imul(ah9, bl0) | 0; + hi = Math.imul(ah9, bh0); + lo = lo + Math.imul(al8, bl1) | 0; + mid = mid + Math.imul(al8, bh1) | 0; + mid = mid + Math.imul(ah8, bl1) | 0; + hi = hi + Math.imul(ah8, bh1) | 0; + lo = lo + Math.imul(al7, bl2) | 0; + mid = mid + Math.imul(al7, bh2) | 0; + mid = mid + Math.imul(ah7, bl2) | 0; + hi = hi + Math.imul(ah7, bh2) | 0; + lo = lo + Math.imul(al6, bl3) | 0; + mid = mid + Math.imul(al6, bh3) | 0; + mid = mid + Math.imul(ah6, bl3) | 0; + hi = hi + Math.imul(ah6, bh3) | 0; + lo = lo + Math.imul(al5, bl4) | 0; + mid = mid + Math.imul(al5, bh4) | 0; + mid = mid + Math.imul(ah5, bl4) | 0; + hi = hi + Math.imul(ah5, bh4) | 0; + lo = lo + Math.imul(al4, bl5) | 0; + mid = mid + Math.imul(al4, bh5) | 0; + mid = mid + Math.imul(ah4, bl5) | 0; + hi = hi + Math.imul(ah4, bh5) | 0; + lo = lo + Math.imul(al3, bl6) | 0; + mid = mid + Math.imul(al3, bh6) | 0; + mid = mid + Math.imul(ah3, bl6) | 0; + hi = hi + Math.imul(ah3, bh6) | 0; + lo = lo + Math.imul(al2, bl7) | 0; + mid = mid + Math.imul(al2, bh7) | 0; + mid = mid + Math.imul(ah2, bl7) | 0; + hi = hi + Math.imul(ah2, bh7) | 0; + lo = lo + Math.imul(al1, bl8) | 0; + mid = mid + Math.imul(al1, bh8) | 0; + mid = mid + Math.imul(ah1, bl8) | 0; + hi = hi + Math.imul(ah1, bh8) | 0; + lo = lo + Math.imul(al0, bl9) | 0; + mid = mid + Math.imul(al0, bh9) | 0; + mid = mid + Math.imul(ah0, bl9) | 0; + hi = hi + Math.imul(ah0, bh9) | 0; + var w9 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0; + w9 &= 0x3ffffff; + /* k = 10 */ + lo = Math.imul(al9, bl1); + mid = Math.imul(al9, bh1); + mid = mid + Math.imul(ah9, bl1) | 0; + hi = Math.imul(ah9, bh1); + lo = lo + Math.imul(al8, bl2) | 0; + mid = mid + Math.imul(al8, bh2) | 0; + mid = mid + Math.imul(ah8, bl2) | 0; + hi = hi + Math.imul(ah8, bh2) | 0; + lo = lo + Math.imul(al7, bl3) | 0; + mid = mid + Math.imul(al7, bh3) | 0; + mid = mid + Math.imul(ah7, bl3) | 0; + hi = hi + Math.imul(ah7, bh3) | 0; + lo = lo + Math.imul(al6, bl4) | 0; + mid = mid + Math.imul(al6, bh4) | 0; + mid = mid + Math.imul(ah6, bl4) | 0; + hi = hi + Math.imul(ah6, bh4) | 0; + lo = lo + Math.imul(al5, bl5) | 0; + mid = mid + Math.imul(al5, bh5) | 0; + mid = mid + Math.imul(ah5, bl5) | 0; + hi = hi + Math.imul(ah5, bh5) | 0; + lo = lo + Math.imul(al4, bl6) | 0; + mid = mid + Math.imul(al4, bh6) | 0; + mid = mid + Math.imul(ah4, bl6) | 0; + hi = hi + Math.imul(ah4, bh6) | 0; + lo = lo + Math.imul(al3, bl7) | 0; + mid = mid + Math.imul(al3, bh7) | 0; + mid = mid + Math.imul(ah3, bl7) | 0; + hi = hi + Math.imul(ah3, bh7) | 0; + lo = lo + Math.imul(al2, bl8) | 0; + mid = mid + Math.imul(al2, bh8) | 0; + mid = mid + Math.imul(ah2, bl8) | 0; + hi = hi + Math.imul(ah2, bh8) | 0; + lo = lo + Math.imul(al1, bl9) | 0; + mid = mid + Math.imul(al1, bh9) | 0; + mid = mid + Math.imul(ah1, bl9) | 0; + hi = hi + Math.imul(ah1, bh9) | 0; + var w10 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0; + w10 &= 0x3ffffff; + /* k = 11 */ + lo = Math.imul(al9, bl2); + mid = Math.imul(al9, bh2); + mid = mid + Math.imul(ah9, bl2) | 0; + hi = Math.imul(ah9, bh2); + lo = lo + Math.imul(al8, bl3) | 0; + mid = mid + Math.imul(al8, bh3) | 0; + mid = mid + Math.imul(ah8, bl3) | 0; + hi = hi + Math.imul(ah8, bh3) | 0; + lo = lo + Math.imul(al7, bl4) | 0; + mid = mid + Math.imul(al7, bh4) | 0; + mid = mid + Math.imul(ah7, bl4) | 0; + hi = hi + Math.imul(ah7, bh4) | 0; + lo = lo + Math.imul(al6, bl5) | 0; + mid = mid + Math.imul(al6, bh5) | 0; + mid = mid + Math.imul(ah6, bl5) | 0; + hi = hi + Math.imul(ah6, bh5) | 0; + lo = lo + Math.imul(al5, bl6) | 0; + mid = mid + Math.imul(al5, bh6) | 0; + mid = mid + Math.imul(ah5, bl6) | 0; + hi = hi + Math.imul(ah5, bh6) | 0; + lo = lo + Math.imul(al4, bl7) | 0; + mid = mid + Math.imul(al4, bh7) | 0; + mid = mid + Math.imul(ah4, bl7) | 0; + hi = hi + Math.imul(ah4, bh7) | 0; + lo = lo + Math.imul(al3, bl8) | 0; + mid = mid + Math.imul(al3, bh8) | 0; + mid = mid + Math.imul(ah3, bl8) | 0; + hi = hi + Math.imul(ah3, bh8) | 0; + lo = lo + Math.imul(al2, bl9) | 0; + mid = mid + Math.imul(al2, bh9) | 0; + mid = mid + Math.imul(ah2, bl9) | 0; + hi = hi + Math.imul(ah2, bh9) | 0; + var w11 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0; + w11 &= 0x3ffffff; + /* k = 12 */ + lo = Math.imul(al9, bl3); + mid = Math.imul(al9, bh3); + mid = mid + Math.imul(ah9, bl3) | 0; + hi = Math.imul(ah9, bh3); + lo = lo + Math.imul(al8, bl4) | 0; + mid = mid + Math.imul(al8, bh4) | 0; + mid = mid + Math.imul(ah8, bl4) | 0; + hi = hi + Math.imul(ah8, bh4) | 0; + lo = lo + Math.imul(al7, bl5) | 0; + mid = mid + Math.imul(al7, bh5) | 0; + mid = mid + Math.imul(ah7, bl5) | 0; + hi = hi + Math.imul(ah7, bh5) | 0; + lo = lo + Math.imul(al6, bl6) | 0; + mid = mid + Math.imul(al6, bh6) | 0; + mid = mid + Math.imul(ah6, bl6) | 0; + hi = hi + Math.imul(ah6, bh6) | 0; + lo = lo + Math.imul(al5, bl7) | 0; + mid = mid + Math.imul(al5, bh7) | 0; + mid = mid + Math.imul(ah5, bl7) | 0; + hi = hi + Math.imul(ah5, bh7) | 0; + lo = lo + Math.imul(al4, bl8) | 0; + mid = mid + Math.imul(al4, bh8) | 0; + mid = mid + Math.imul(ah4, bl8) | 0; + hi = hi + Math.imul(ah4, bh8) | 0; + lo = lo + Math.imul(al3, bl9) | 0; + mid = mid + Math.imul(al3, bh9) | 0; + mid = mid + Math.imul(ah3, bl9) | 0; + hi = hi + Math.imul(ah3, bh9) | 0; + var w12 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0; + w12 &= 0x3ffffff; + /* k = 13 */ + lo = Math.imul(al9, bl4); + mid = Math.imul(al9, bh4); + mid = mid + Math.imul(ah9, bl4) | 0; + hi = Math.imul(ah9, bh4); + lo = lo + Math.imul(al8, bl5) | 0; + mid = mid + Math.imul(al8, bh5) | 0; + mid = mid + Math.imul(ah8, bl5) | 0; + hi = hi + Math.imul(ah8, bh5) | 0; + lo = lo + Math.imul(al7, bl6) | 0; + mid = mid + Math.imul(al7, bh6) | 0; + mid = mid + Math.imul(ah7, bl6) | 0; + hi = hi + Math.imul(ah7, bh6) | 0; + lo = lo + Math.imul(al6, bl7) | 0; + mid = mid + Math.imul(al6, bh7) | 0; + mid = mid + Math.imul(ah6, bl7) | 0; + hi = hi + Math.imul(ah6, bh7) | 0; + lo = lo + Math.imul(al5, bl8) | 0; + mid = mid + Math.imul(al5, bh8) | 0; + mid = mid + Math.imul(ah5, bl8) | 0; + hi = hi + Math.imul(ah5, bh8) | 0; + lo = lo + Math.imul(al4, bl9) | 0; + mid = mid + Math.imul(al4, bh9) | 0; + mid = mid + Math.imul(ah4, bl9) | 0; + hi = hi + Math.imul(ah4, bh9) | 0; + var w13 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0; + w13 &= 0x3ffffff; + /* k = 14 */ + lo = Math.imul(al9, bl5); + mid = Math.imul(al9, bh5); + mid = mid + Math.imul(ah9, bl5) | 0; + hi = Math.imul(ah9, bh5); + lo = lo + Math.imul(al8, bl6) | 0; + mid = mid + Math.imul(al8, bh6) | 0; + mid = mid + Math.imul(ah8, bl6) | 0; + hi = hi + Math.imul(ah8, bh6) | 0; + lo = lo + Math.imul(al7, bl7) | 0; + mid = mid + Math.imul(al7, bh7) | 0; + mid = mid + Math.imul(ah7, bl7) | 0; + hi = hi + Math.imul(ah7, bh7) | 0; + lo = lo + Math.imul(al6, bl8) | 0; + mid = mid + Math.imul(al6, bh8) | 0; + mid = mid + Math.imul(ah6, bl8) | 0; + hi = hi + Math.imul(ah6, bh8) | 0; + lo = lo + Math.imul(al5, bl9) | 0; + mid = mid + Math.imul(al5, bh9) | 0; + mid = mid + Math.imul(ah5, bl9) | 0; + hi = hi + Math.imul(ah5, bh9) | 0; + var w14 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0; + w14 &= 0x3ffffff; + /* k = 15 */ + lo = Math.imul(al9, bl6); + mid = Math.imul(al9, bh6); + mid = mid + Math.imul(ah9, bl6) | 0; + hi = Math.imul(ah9, bh6); + lo = lo + Math.imul(al8, bl7) | 0; + mid = mid + Math.imul(al8, bh7) | 0; + mid = mid + Math.imul(ah8, bl7) | 0; + hi = hi + Math.imul(ah8, bh7) | 0; + lo = lo + Math.imul(al7, bl8) | 0; + mid = mid + Math.imul(al7, bh8) | 0; + mid = mid + Math.imul(ah7, bl8) | 0; + hi = hi + Math.imul(ah7, bh8) | 0; + lo = lo + Math.imul(al6, bl9) | 0; + mid = mid + Math.imul(al6, bh9) | 0; + mid = mid + Math.imul(ah6, bl9) | 0; + hi = hi + Math.imul(ah6, bh9) | 0; + var w15 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0; + w15 &= 0x3ffffff; + /* k = 16 */ + lo = Math.imul(al9, bl7); + mid = Math.imul(al9, bh7); + mid = mid + Math.imul(ah9, bl7) | 0; + hi = Math.imul(ah9, bh7); + lo = lo + Math.imul(al8, bl8) | 0; + mid = mid + Math.imul(al8, bh8) | 0; + mid = mid + Math.imul(ah8, bl8) | 0; + hi = hi + Math.imul(ah8, bh8) | 0; + lo = lo + Math.imul(al7, bl9) | 0; + mid = mid + Math.imul(al7, bh9) | 0; + mid = mid + Math.imul(ah7, bl9) | 0; + hi = hi + Math.imul(ah7, bh9) | 0; + var w16 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0; + w16 &= 0x3ffffff; + /* k = 17 */ + lo = Math.imul(al9, bl8); + mid = Math.imul(al9, bh8); + mid = mid + Math.imul(ah9, bl8) | 0; + hi = Math.imul(ah9, bh8); + lo = lo + Math.imul(al8, bl9) | 0; + mid = mid + Math.imul(al8, bh9) | 0; + mid = mid + Math.imul(ah8, bl9) | 0; + hi = hi + Math.imul(ah8, bh9) | 0; + var w17 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0; + w17 &= 0x3ffffff; + /* k = 18 */ + lo = Math.imul(al9, bl9); + mid = Math.imul(al9, bh9); + mid = mid + Math.imul(ah9, bl9) | 0; + hi = Math.imul(ah9, bh9); + var w18 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0; + w18 &= 0x3ffffff; + o[0] = w0; + o[1] = w1; + o[2] = w2; + o[3] = w3; + o[4] = w4; + o[5] = w5; + o[6] = w6; + o[7] = w7; + o[8] = w8; + o[9] = w9; + o[10] = w10; + o[11] = w11; + o[12] = w12; + o[13] = w13; + o[14] = w14; + o[15] = w15; + o[16] = w16; + o[17] = w17; + o[18] = w18; + if (c !== 0) { + o[19] = c; + out.length++; + } + return out; + }; - Promise.prototype._rejectionHandlerAt = function (index) { - return this[index * 4 - 4 + 1]; - }; + // Polyfill comb + if (!Math.imul) { + comb10MulTo = smallMulTo; + } - Promise.prototype._boundValue = function () {}; - - Promise.prototype._migrateCallback0 = function (follower) { - var bitField = follower._bitField; - var fulfill = follower._fulfillmentHandler0; - var reject = follower._rejectionHandler0; - var promise = follower._promise0; - var receiver = follower._receiverAt(0); - if (receiver === undefined) receiver = UNDEFINED_BINDING; - this._addCallbacks(fulfill, reject, promise, receiver, null); - }; + function bigMulTo(self, num, out) { + out.negative = num.negative ^ self.negative; + out.length = self.length + num.length; - Promise.prototype._migrateCallbackAt = function (follower, index) { - var fulfill = follower._fulfillmentHandlerAt(index); - var reject = follower._rejectionHandlerAt(index); - var promise = follower._promiseAt(index); - var receiver = follower._receiverAt(index); - if (receiver === undefined) receiver = UNDEFINED_BINDING; - this._addCallbacks(fulfill, reject, promise, receiver, null); - }; + var carry = 0; + var hncarry = 0; + for (var k = 0; k < out.length - 1; k++) { + // Sum all words with the same `i + j = k` and accumulate `ncarry`, + // note that ncarry could be >= 0x3ffffff + var ncarry = hncarry; + hncarry = 0; + var rword = carry & 0x3ffffff; + var maxJ = Math.min(k, num.length - 1); + for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { + var i = k - j; + var a = self.words[i] | 0; + var b = num.words[j] | 0; + var r = a * b; - Promise.prototype._addCallbacks = function (fulfill, reject, promise, receiver, domain) { - var index = this._length(); + var lo = r & 0x3ffffff; + ncarry = ncarry + (r / 0x4000000 | 0) | 0; + lo = lo + rword | 0; + rword = lo & 0x3ffffff; + ncarry = ncarry + (lo >>> 26) | 0; - if (index >= 65535 - 4) { - index = 0; - this._setLength(0); - } + hncarry += ncarry >>> 26; + ncarry &= 0x3ffffff; + } + out.words[k] = rword; + carry = ncarry; + ncarry = hncarry; + } + if (carry !== 0) { + out.words[k] = carry; + } else { + out.length--; + } - if (index === 0) { - this._promise0 = promise; - this._receiver0 = receiver; - if (typeof fulfill === "function") { - this._fulfillmentHandler0 = domain === null ? fulfill : domain.bind(fulfill); - } - if (typeof reject === "function") { - this._rejectionHandler0 = domain === null ? reject : domain.bind(reject); - } - } else { - var base = index * 4 - 4; - this[base + 2] = promise; - this[base + 3] = receiver; - if (typeof fulfill === "function") { - this[base + 0] = domain === null ? fulfill : domain.bind(fulfill); - } - if (typeof reject === "function") { - this[base + 1] = domain === null ? reject : domain.bind(reject); - } - } - this._setLength(index + 1); - return index; - }; + return out.strip(); + } - Promise.prototype._proxy = function (proxyable, arg) { - this._addCallbacks(undefined, undefined, arg, proxyable, null); - }; + function jumboMulTo(self, num, out) { + var fftm = new FFTM(); + return fftm.mulp(self, num, out); + } - Promise.prototype._resolveCallback = function (value, shouldBind) { - if ((this._bitField & 117506048) !== 0) return; - if (value === this) return this._rejectCallback(makeSelfResolutionError(), false); - var maybePromise = tryConvertToPromise(value, this); - if (!(maybePromise instanceof Promise)) return this._fulfill(value); + BN.prototype.mulTo = function mulTo(num, out) { + var res; + var len = this.length + num.length; + if (this.length === 10 && num.length === 10) { + res = comb10MulTo(this, num, out); + } else if (len < 63) { + res = smallMulTo(this, num, out); + } else if (len < 1024) { + res = bigMulTo(this, num, out); + } else { + res = jumboMulTo(this, num, out); + } - if (shouldBind) this._propagateFrom(maybePromise, 2); + return res; + }; - var promise = maybePromise._target(); - var bitField = promise._bitField; - if ((bitField & 50397184) === 0) { - var len = this._length(); - if (len > 0) promise._migrateCallback0(this); - for (var i = 1; i < len; ++i) { - promise._migrateCallbackAt(this, i); - } - this._setFollowing(); - this._setLength(0); - this._setFollowee(promise); - } else if ((bitField & 33554432) !== 0) { - this._fulfill(promise._value()); - } else if ((bitField & 16777216) !== 0) { - this._reject(promise._reason()); - } else { - var reason = new CancellationError("late cancellation observer"); - promise._attachExtraTrace(reason); - this._reject(reason); - } - }; + // Cooley-Tukey algorithm for FFT + // slightly revisited to rely on looping instead of recursion - Promise.prototype._rejectCallback = function (reason, synchronous, ignoreNonErrorWarnings) { - var trace = util.ensureErrorObject(reason); - var hasStack = trace === reason; - if (!hasStack && !ignoreNonErrorWarnings && debug.warnings()) { - var message = "a promise was rejected with a non-error: " + util.classString(reason); - this._warn(message, true); - } - this._attachExtraTrace(trace, synchronous ? hasStack : false); - this._reject(reason); - }; + function FFTM(x, y) { + this.x = x; + this.y = y; + } - Promise.prototype._resolveFromExecutor = function (executor) { - var promise = this; - this._captureStackTrace(); - this._pushContext(); - var synchronous = true; - var r = this._execute(executor, function (value) { - promise._resolveCallback(value); - }, function (reason) { - promise._rejectCallback(reason, synchronous); - }); - synchronous = false; - this._popContext(); + FFTM.prototype.makeRBT = function makeRBT(N) { + var t = new Array(N); + var l = BN.prototype._countBits(N) - 1; + for (var i = 0; i < N; i++) { + t[i] = this.revBin(i, l, N); + } - if (r !== undefined) { - promise._rejectCallback(r, true); - } - }; + return t; + }; - Promise.prototype._settlePromiseFromHandler = function (handler, receiver, value, promise) { - var bitField = promise._bitField; - if ((bitField & 65536) !== 0) return; - promise._pushContext(); - var x; - if (receiver === APPLY) { - if (!value || typeof value.length !== "number") { - x = errorObj; - x.e = new TypeError("cannot .spread() a non-array: " + util.classString(value)); - } else { - x = tryCatch(handler).apply(this._boundValue(), value); - } - } else { - x = tryCatch(handler).call(receiver, value); - } - var promiseCreated = promise._popContext(); - bitField = promise._bitField; - if ((bitField & 65536) !== 0) return; + // Returns binary-reversed representation of `x` + FFTM.prototype.revBin = function revBin(x, l, N) { + if (x === 0 || x === N - 1) return x; - if (x === NEXT_FILTER) { - promise._reject(value); - } else if (x === errorObj || x === promise) { - var err = x === promise ? makeSelfResolutionError() : x.e; - promise._rejectCallback(err, false); - } else { - debug.checkForgottenReturns(x, promiseCreated, "", promise, this); - promise._resolveCallback(x); - } - }; + var rb = 0; + for (var i = 0; i < l; i++) { + rb |= (x & 1) << l - i - 1; + x >>= 1; + } - Promise.prototype._target = function () { - var ret = this; - while (ret._isFollowing()) { - ret = ret._followee(); - }return ret; - }; + return rb; + }; - Promise.prototype._followee = function () { - return this._rejectionHandler0; - }; + // Performs "tweedling" phase, therefore 'emulating' + // behaviour of the recursive algorithm + FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) { + for (var i = 0; i < N; i++) { + rtws[i] = rws[rbt[i]]; + itws[i] = iws[rbt[i]]; + } + }; - Promise.prototype._setFollowee = function (promise) { - this._rejectionHandler0 = promise; - }; + FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) { + this.permute(rbt, rws, iws, rtws, itws, N); - Promise.prototype._settlePromise = function (promise, handler, receiver, value) { - var isPromise = promise instanceof Promise; - var bitField = this._bitField; - var asyncGuaranteed = (bitField & 134217728) !== 0; - if ((bitField & 65536) !== 0) { - if (isPromise) promise._invokeInternalOnCancel(); + for (var s = 1; s < N; s <<= 1) { + var l = s << 1; - if (receiver instanceof PassThroughHandlerContext && receiver.isFinallyHandler()) { - receiver.cancelPromise = promise; - if (tryCatch(handler).call(receiver, value) === errorObj) { - promise._reject(errorObj.e); - } - } else if (handler === reflectHandler) { - promise._fulfill(reflectHandler.call(receiver)); - } else if (receiver instanceof Proxyable) { - receiver._promiseCancelled(promise); - } else if (isPromise || promise instanceof PromiseArray) { - promise._cancel(); - } else { - receiver.cancel(); - } - } else if (typeof handler === "function") { - if (!isPromise) { - handler.call(receiver, value, promise); - } else { - if (asyncGuaranteed) promise._setAsyncGuaranteed(); - this._settlePromiseFromHandler(handler, receiver, value, promise); - } - } else if (receiver instanceof Proxyable) { - if (!receiver._isResolved()) { - if ((bitField & 33554432) !== 0) { - receiver._promiseFulfilled(value, promise); - } else { - receiver._promiseRejected(value, promise); - } - } - } else if (isPromise) { - if (asyncGuaranteed) promise._setAsyncGuaranteed(); - if ((bitField & 33554432) !== 0) { - promise._fulfill(value); - } else { - promise._reject(value); - } - } - }; + var rtwdf = Math.cos(2 * Math.PI / l); + var itwdf = Math.sin(2 * Math.PI / l); - Promise.prototype._settlePromiseLateCancellationObserver = function (ctx) { - var handler = ctx.handler; - var promise = ctx.promise; - var receiver = ctx.receiver; - var value = ctx.value; - if (typeof handler === "function") { - if (!(promise instanceof Promise)) { - handler.call(receiver, value, promise); - } else { - this._settlePromiseFromHandler(handler, receiver, value, promise); - } - } else if (promise instanceof Promise) { - promise._reject(value); - } - }; + for (var p = 0; p < N; p += l) { + var rtwdf_ = rtwdf; + var itwdf_ = itwdf; - Promise.prototype._settlePromiseCtx = function (ctx) { - this._settlePromise(ctx.promise, ctx.handler, ctx.receiver, ctx.value); - }; + for (var j = 0; j < s; j++) { + var re = rtws[p + j]; + var ie = itws[p + j]; - Promise.prototype._settlePromise0 = function (handler, value, bitField) { - var promise = this._promise0; - var receiver = this._receiverAt(0); - this._promise0 = undefined; - this._receiver0 = undefined; - this._settlePromise(promise, handler, receiver, value); - }; + var ro = rtws[p + j + s]; + var io = itws[p + j + s]; - Promise.prototype._clearCallbackDataAtIndex = function (index) { - var base = index * 4 - 4; - this[base + 2] = this[base + 3] = this[base + 0] = this[base + 1] = undefined; - }; + var rx = rtwdf_ * ro - itwdf_ * io; - Promise.prototype._fulfill = function (value) { - var bitField = this._bitField; - if ((bitField & 117506048) >>> 16) return; - if (value === this) { - var err = makeSelfResolutionError(); - this._attachExtraTrace(err); - return this._reject(err); - } - this._setFulfilled(); - this._rejectionHandler0 = value; + io = rtwdf_ * io + itwdf_ * ro; + ro = rx; - if ((bitField & 65535) > 0) { - if ((bitField & 134217728) !== 0) { - this._settlePromises(); - } else { - async.settlePromises(this); - } - } - }; + rtws[p + j] = re + ro; + itws[p + j] = ie + io; - Promise.prototype._reject = function (reason) { - var bitField = this._bitField; - if ((bitField & 117506048) >>> 16) return; - this._setRejected(); - this._fulfillmentHandler0 = reason; + rtws[p + j + s] = re - ro; + itws[p + j + s] = ie - io; - if (this._isFinal()) { - return async.fatalError(reason, util.isNode); - } + /* jshint maxdepth : false */ + if (j !== l) { + rx = rtwdf * rtwdf_ - itwdf * itwdf_; - if ((bitField & 65535) > 0) { - if ((bitField & 134217728) !== 0) { - this._settlePromises(); - } else { - async.settlePromises(this); - } - } else { - this._ensurePossibleRejectionHandled(); - } - }; + itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_; + rtwdf_ = rx; + } + } + } + } + }; - Promise.prototype._fulfillPromises = function (len, value) { - for (var i = 1; i < len; i++) { - var handler = this._fulfillmentHandlerAt(i); - var promise = this._promiseAt(i); - var receiver = this._receiverAt(i); - this._clearCallbackDataAtIndex(i); - this._settlePromise(promise, handler, receiver, value); - } - }; + FFTM.prototype.guessLen13b = function guessLen13b(n, m) { + var N = Math.max(m, n) | 1; + var odd = N & 1; + var i = 0; + for (N = N / 2 | 0; N; N = N >>> 1) { + i++; + } - Promise.prototype._rejectPromises = function (len, reason) { - for (var i = 1; i < len; i++) { - var handler = this._rejectionHandlerAt(i); - var promise = this._promiseAt(i); - var receiver = this._receiverAt(i); - this._clearCallbackDataAtIndex(i); - this._settlePromise(promise, handler, receiver, reason); - } - }; + return 1 << i + 1 + odd; + }; - Promise.prototype._settlePromises = function () { - var bitField = this._bitField; - var len = bitField & 65535; + FFTM.prototype.conjugate = function conjugate(rws, iws, N) { + if (N <= 1) return; - if (len > 0) { - if ((bitField & 16842752) !== 0) { - var reason = this._fulfillmentHandler0; - this._settlePromise0(this._rejectionHandler0, reason, bitField); - this._rejectPromises(len, reason); - } else { - var value = this._rejectionHandler0; - this._settlePromise0(this._fulfillmentHandler0, value, bitField); - this._fulfillPromises(len, value); - } - this._setLength(0); - } - this._clearCancellationData(); - }; + for (var i = 0; i < N / 2; i++) { + var t = rws[i]; - Promise.prototype._settledValue = function () { - var bitField = this._bitField; - if ((bitField & 33554432) !== 0) { - return this._rejectionHandler0; - } else if ((bitField & 16777216) !== 0) { - return this._fulfillmentHandler0; - } - }; + rws[i] = rws[N - i - 1]; + rws[N - i - 1] = t; - function deferResolve(v) { - this.promise._resolveCallback(v); - } - function deferReject(v) { - this.promise._rejectCallback(v, false); - } + t = iws[i]; - Promise.defer = Promise.pending = function () { - debug.deprecated("Promise.defer", "new Promise"); - var promise = new Promise(INTERNAL); - return { - promise: promise, - resolve: deferResolve, - reject: deferReject - }; - }; + iws[i] = -iws[N - i - 1]; + iws[N - i - 1] = -t; + } + }; - util.notEnumerableProp(Promise, "_makeSelfResolutionError", makeSelfResolutionError); + FFTM.prototype.normalize13b = function normalize13b(ws, N) { + var carry = 0; + for (var i = 0; i < N / 2; i++) { + var w = Math.round(ws[2 * i + 1] / N) * 0x2000 + Math.round(ws[2 * i] / N) + carry; - _dereq_("./method")(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug); - _dereq_("./bind")(Promise, INTERNAL, tryConvertToPromise, debug); - _dereq_("./cancel")(Promise, PromiseArray, apiRejection, debug); - _dereq_("./direct_resolve")(Promise); - _dereq_("./synchronous_inspection")(Promise); - _dereq_("./join")(Promise, PromiseArray, tryConvertToPromise, INTERNAL, debug); - Promise.Promise = Promise; - _dereq_('./map.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug); - _dereq_('./using.js')(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug); - _dereq_('./timers.js')(Promise, INTERNAL, debug); - _dereq_('./generators.js')(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug); - _dereq_('./nodeify.js')(Promise); - _dereq_('./call_get.js')(Promise); - _dereq_('./props.js')(Promise, PromiseArray, tryConvertToPromise, apiRejection); - _dereq_('./race.js')(Promise, INTERNAL, tryConvertToPromise, apiRejection); - _dereq_('./reduce.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug); - _dereq_('./settle.js')(Promise, PromiseArray, debug); - _dereq_('./some.js')(Promise, PromiseArray, apiRejection); - _dereq_('./promisify.js')(Promise, INTERNAL); - _dereq_('./any.js')(Promise); - _dereq_('./each.js')(Promise, INTERNAL); - _dereq_('./filter.js')(Promise, INTERNAL); + ws[i] = w & 0x3ffffff; - util.toFastProperties(Promise); - util.toFastProperties(Promise.prototype); - function fillTypes(value) { - var p = new Promise(INTERNAL); - p._fulfillmentHandler0 = value; - p._rejectionHandler0 = value; - p._promise0 = value; - p._receiver0 = value; - } - // Complete slack tracking, opt out of field-type tracking and - // stabilize map - fillTypes({ a: 1 }); - fillTypes({ b: 2 }); - fillTypes({ c: 3 }); - fillTypes(1); - fillTypes(function () {}); - fillTypes(undefined); - fillTypes(false); - fillTypes(new Promise(INTERNAL)); - debug.setBounds(Async.firstLineError, util.lastLineError); - return Promise; - }; - }, { "./any.js": 1, "./async": 2, "./bind": 3, "./call_get.js": 5, "./cancel": 6, "./catch_filter": 7, "./context": 8, "./debuggability": 9, "./direct_resolve": 10, "./each.js": 11, "./errors": 12, "./es5": 13, "./filter.js": 14, "./finally": 15, "./generators.js": 16, "./join": 17, "./map.js": 18, "./method": 19, "./nodeback": 20, "./nodeify.js": 21, "./promise_array": 23, "./promisify.js": 24, "./props.js": 25, "./race.js": 27, "./reduce.js": 28, "./settle.js": 30, "./some.js": 31, "./synchronous_inspection": 32, "./thenables": 33, "./timers.js": 34, "./using.js": 35, "./util": 36 }], 23: [function (_dereq_, module, exports) { - "use strict"; + if (w < 0x4000000) { + carry = 0; + } else { + carry = w / 0x4000000 | 0; + } + } - module.exports = function (Promise, INTERNAL, tryConvertToPromise, apiRejection, Proxyable) { - var util = _dereq_("./util"); - var isArray = util.isArray; + return ws; + }; - function toResolutionValue(val) { - switch (val) { - case -2: - return []; - case -3: - return {}; - } - } + FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) { + var carry = 0; + for (var i = 0; i < len; i++) { + carry = carry + (ws[i] | 0); - function PromiseArray(values) { - var promise = this._promise = new Promise(INTERNAL); - if (values instanceof Promise) { - promise._propagateFrom(values, 3); - } - promise._setOnCancel(this); - this._values = values; - this._length = 0; - this._totalResolved = 0; - this._init(undefined, -2); - } - util.inherits(PromiseArray, Proxyable); + rws[2 * i] = carry & 0x1fff;carry = carry >>> 13; + rws[2 * i + 1] = carry & 0x1fff;carry = carry >>> 13; + } - PromiseArray.prototype.length = function () { - return this._length; - }; + // Pad with zeroes + for (i = 2 * len; i < N; ++i) { + rws[i] = 0; + } - PromiseArray.prototype.promise = function () { - return this._promise; - }; + assert(carry === 0); + assert((carry & ~0x1fff) === 0); + }; - PromiseArray.prototype._init = function init(_, resolveValueIfEmpty) { - var values = tryConvertToPromise(this._values, this._promise); - if (values instanceof Promise) { - values = values._target(); - var bitField = values._bitField; - ; - this._values = values; + FFTM.prototype.stub = function stub(N) { + var ph = new Array(N); + for (var i = 0; i < N; i++) { + ph[i] = 0; + } - if ((bitField & 50397184) === 0) { - this._promise._setAsyncGuaranteed(); - return values._then(init, this._reject, undefined, this, resolveValueIfEmpty); - } else if ((bitField & 33554432) !== 0) { - values = values._value(); - } else if ((bitField & 16777216) !== 0) { - return this._reject(values._reason()); - } else { - return this._cancel(); - } - } - values = util.asArray(values); - if (values === null) { - var err = apiRejection("expecting an array or an iterable object but got " + util.classString(values)).reason(); - this._promise._rejectCallback(err, false); - return; - } + return ph; + }; - if (values.length === 0) { - if (resolveValueIfEmpty === -5) { - this._resolveEmptyArray(); - } else { - this._resolve(toResolutionValue(resolveValueIfEmpty)); - } - return; - } - this._iterate(values); - }; + FFTM.prototype.mulp = function mulp(x, y, out) { + var N = 2 * this.guessLen13b(x.length, y.length); - PromiseArray.prototype._iterate = function (values) { - var len = this.getActualLength(values.length); - this._length = len; - this._values = this.shouldCopyValues() ? new Array(len) : this._values; - var result = this._promise; - var isResolved = false; - var bitField = null; - for (var i = 0; i < len; ++i) { - var maybePromise = tryConvertToPromise(values[i], result); + var rbt = this.makeRBT(N); - if (maybePromise instanceof Promise) { - maybePromise = maybePromise._target(); - bitField = maybePromise._bitField; - } else { - bitField = null; - } + var _ = this.stub(N); - if (isResolved) { - if (bitField !== null) { - maybePromise.suppressUnhandledRejections(); - } - } else if (bitField !== null) { - if ((bitField & 50397184) === 0) { - maybePromise._proxy(this, i); - this._values[i] = maybePromise; - } else if ((bitField & 33554432) !== 0) { - isResolved = this._promiseFulfilled(maybePromise._value(), i); - } else if ((bitField & 16777216) !== 0) { - isResolved = this._promiseRejected(maybePromise._reason(), i); - } else { - isResolved = this._promiseCancelled(i); - } - } else { - isResolved = this._promiseFulfilled(maybePromise, i); - } - } - if (!isResolved) result._setAsyncGuaranteed(); - }; + var rws = new Array(N); + var rwst = new Array(N); + var iwst = new Array(N); - PromiseArray.prototype._isResolved = function () { - return this._values === null; - }; + var nrws = new Array(N); + var nrwst = new Array(N); + var niwst = new Array(N); - PromiseArray.prototype._resolve = function (value) { - this._values = null; - this._promise._fulfill(value); - }; + var rmws = out.words; + rmws.length = N; - PromiseArray.prototype._cancel = function () { - if (this._isResolved() || !this._promise.isCancellable()) return; - this._values = null; - this._promise._cancel(); - }; + this.convert13b(x.words, x.length, rws, N); + this.convert13b(y.words, y.length, nrws, N); - PromiseArray.prototype._reject = function (reason) { - this._values = null; - this._promise._rejectCallback(reason, false); - }; + this.transform(rws, _, rwst, iwst, N, rbt); + this.transform(nrws, _, nrwst, niwst, N, rbt); - PromiseArray.prototype._promiseFulfilled = function (value, index) { - this._values[index] = value; - var totalResolved = ++this._totalResolved; - if (totalResolved >= this._length) { - this._resolve(this._values); - return true; - } - return false; - }; + for (var i = 0; i < N; i++) { + var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i]; + iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i]; + rwst[i] = rx; + } - PromiseArray.prototype._promiseCancelled = function () { - this._cancel(); - return true; - }; + this.conjugate(rwst, iwst, N); + this.transform(rwst, iwst, rmws, _, N, rbt); + this.conjugate(rmws, _, N); + this.normalize13b(rmws, N); - PromiseArray.prototype._promiseRejected = function (reason) { - this._totalResolved++; - this._reject(reason); - return true; - }; + out.negative = x.negative ^ y.negative; + out.length = x.length + y.length; + return out.strip(); + }; - PromiseArray.prototype._resultCancelled = function () { - if (this._isResolved()) return; - var values = this._values; - this._cancel(); - if (values instanceof Promise) { - values.cancel(); - } else { - for (var i = 0; i < values.length; ++i) { - if (values[i] instanceof Promise) { - values[i].cancel(); - } - } - } - }; + // Multiply `this` by `num` + BN.prototype.mul = function mul(num) { + var out = new BN(null); + out.words = new Array(this.length + num.length); + return this.mulTo(num, out); + }; - PromiseArray.prototype.shouldCopyValues = function () { - return true; - }; + // Multiply employing FFT + BN.prototype.mulf = function mulf(num) { + var out = new BN(null); + out.words = new Array(this.length + num.length); + return jumboMulTo(this, num, out); + }; - PromiseArray.prototype.getActualLength = function (len) { - return len; - }; + // In-place Multiplication + BN.prototype.imul = function imul(num) { + return this.clone().mulTo(num, this); + }; - return PromiseArray; - }; - }, { "./util": 36 }], 24: [function (_dereq_, module, exports) { - "use strict"; + BN.prototype.imuln = function imuln(num) { + assert(typeof num === 'number'); + assert(num < 0x4000000); - module.exports = function (Promise, INTERNAL) { - var THIS = {}; - var util = _dereq_("./util"); - var nodebackForPromise = _dereq_("./nodeback"); - var withAppended = util.withAppended; - var maybeWrapAsError = util.maybeWrapAsError; - var canEvaluate = util.canEvaluate; - var TypeError = _dereq_("./errors").TypeError; - var defaultSuffix = "Async"; - var defaultPromisified = { __isPromisified__: true }; - var noCopyProps = ["arity", "length", "name", "arguments", "caller", "callee", "prototype", "__isPromisified__"]; - var noCopyPropsPattern = new RegExp("^(?:" + noCopyProps.join("|") + ")$"); + // Carry + var carry = 0; + for (var i = 0; i < this.length; i++) { + var w = (this.words[i] | 0) * num; + var lo = (w & 0x3ffffff) + (carry & 0x3ffffff); + carry >>= 26; + carry += w / 0x4000000 | 0; + // NOTE: lo is 27bit maximum + carry += lo >>> 26; + this.words[i] = lo & 0x3ffffff; + } - var defaultFilter = function defaultFilter(name) { - return util.isIdentifier(name) && name.charAt(0) !== "_" && name !== "constructor"; - }; + if (carry !== 0) { + this.words[i] = carry; + this.length++; + } - function propsFilter(key) { - return !noCopyPropsPattern.test(key); - } + return this; + }; - function isPromisified(fn) { - try { - return fn.__isPromisified__ === true; - } catch (e) { - return false; - } - } + BN.prototype.muln = function muln(num) { + return this.clone().imuln(num); + }; - function hasPromisified(obj, key, suffix) { - var val = util.getDataPropertyOrDefault(obj, key + suffix, defaultPromisified); - return val ? isPromisified(val) : false; - } - function checkValid(ret, suffix, suffixRegexp) { - for (var i = 0; i < ret.length; i += 2) { - var key = ret[i]; - if (suffixRegexp.test(key)) { - var keyWithoutAsyncSuffix = key.replace(suffixRegexp, ""); - for (var j = 0; j < ret.length; j += 2) { - if (ret[j] === keyWithoutAsyncSuffix) { - throw new TypeError("Cannot promisify an API that has normal methods with '%s'-suffix\n\n See http://goo.gl/MqrFmX\n".replace("%s", suffix)); - } - } - } - } - } + // `this` * `this` + BN.prototype.sqr = function sqr() { + return this.mul(this); + }; - function promisifiableMethods(obj, suffix, suffixRegexp, filter) { - var keys = util.inheritedDataKeys(obj); - var ret = []; - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - var value = obj[key]; - var passesDefaultFilter = filter === defaultFilter ? true : defaultFilter(key, value, obj); - if (typeof value === "function" && !isPromisified(value) && !hasPromisified(obj, key, suffix) && filter(key, value, obj, passesDefaultFilter)) { - ret.push(key, value); - } - } - checkValid(ret, suffix, suffixRegexp); - return ret; - } + // `this` * `this` in-place + BN.prototype.isqr = function isqr() { + return this.imul(this.clone()); + }; - var escapeIdentRegex = function escapeIdentRegex(str) { - return str.replace(/([$])/, "\\$"); - }; + // Math.pow(`this`, `num`) + BN.prototype.pow = function pow(num) { + var w = toBitArray(num); + if (w.length === 0) return new BN(1); - var makeNodePromisifiedEval; - if (!true) { - var switchCaseArgumentOrder = function switchCaseArgumentOrder(likelyArgumentCount) { - var ret = [likelyArgumentCount]; - var min = Math.max(0, likelyArgumentCount - 1 - 3); - for (var i = likelyArgumentCount - 1; i >= min; --i) { - ret.push(i); - } - for (var i = likelyArgumentCount + 1; i <= 3; ++i) { - ret.push(i); - } - return ret; - }; + // Skip leading zeroes + var res = this; + for (var i = 0; i < w.length; i++, res = res.sqr()) { + if (w[i] !== 0) break; + } - var argumentSequence = function argumentSequence(argumentCount) { - return util.filledRange(argumentCount, "_arg", ""); - }; + if (++i < w.length) { + for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) { + if (w[i] === 0) continue; - var parameterDeclaration = function parameterDeclaration(parameterCount) { - return util.filledRange(Math.max(parameterCount, 3), "_arg", ""); - }; + res = res.mul(q); + } + } - var parameterCount = function parameterCount(fn) { - if (typeof fn.length === "number") { - return Math.max(Math.min(fn.length, 1023 + 1), 0); - } - return 0; - }; + return res; + }; - makeNodePromisifiedEval = function makeNodePromisifiedEval(callback, receiver, originalName, fn, _, multiArgs) { - var newParameterCount = Math.max(0, parameterCount(fn) - 1); - var argumentOrder = switchCaseArgumentOrder(newParameterCount); - var shouldProxyThis = typeof callback === "string" || receiver === THIS; + // Shift-left in-place + BN.prototype.iushln = function iushln(bits) { + assert(typeof bits === 'number' && bits >= 0); + var r = bits % 26; + var s = (bits - r) / 26; + var carryMask = 0x3ffffff >>> 26 - r << 26 - r; + var i; - function generateCallForArgumentCount(count) { - var args = argumentSequence(count).join(", "); - var comma = count > 0 ? ", " : ""; - var ret; - if (shouldProxyThis) { - ret = "ret = callback.call(this, {{args}}, nodeback); break;\n"; - } else { - ret = receiver === undefined ? "ret = callback({{args}}, nodeback); break;\n" : "ret = callback.call(receiver, {{args}}, nodeback); break;\n"; - } - return ret.replace("{{args}}", args).replace(", ", comma); - } + if (r !== 0) { + var carry = 0; - function generateArgumentSwitchCase() { - var ret = ""; - for (var i = 0; i < argumentOrder.length; ++i) { - ret += "case " + argumentOrder[i] + ":" + generateCallForArgumentCount(argumentOrder[i]); - } + for (i = 0; i < this.length; i++) { + var newCarry = this.words[i] & carryMask; + var c = (this.words[i] | 0) - newCarry << r; + this.words[i] = c | carry; + carry = newCarry >>> 26 - r; + } - ret += " \n\ - default: \n\ - var args = new Array(len + 1); \n\ - var i = 0; \n\ - for (var i = 0; i < len; ++i) { \n\ - args[i] = arguments[i]; \n\ - } \n\ - args[i] = nodeback; \n\ - [CodeForCall] \n\ - break; \n\ - ".replace("[CodeForCall]", shouldProxyThis ? "ret = callback.apply(this, args);\n" : "ret = callback.apply(receiver, args);\n"); - return ret; - } + if (carry) { + this.words[i] = carry; + this.length++; + } + } - var getFunctionCode = typeof callback === "string" ? "this != null ? this['" + callback + "'] : fn" : "fn"; - var body = "'use strict'; \n\ - var ret = function (Parameters) { \n\ - 'use strict'; \n\ - var len = arguments.length; \n\ - var promise = new Promise(INTERNAL); \n\ - promise._captureStackTrace(); \n\ - var nodeback = nodebackForPromise(promise, " + multiArgs + "); \n\ - var ret; \n\ - var callback = tryCatch([GetFunctionCode]); \n\ - switch(len) { \n\ - [CodeForSwitchCase] \n\ - } \n\ - if (ret === errorObj) { \n\ - promise._rejectCallback(maybeWrapAsError(ret.e), true, true);\n\ - } \n\ - if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); \n\ - return promise; \n\ - }; \n\ - notEnumerableProp(ret, '__isPromisified__', true); \n\ - return ret; \n\ - ".replace("[CodeForSwitchCase]", generateArgumentSwitchCase()).replace("[GetFunctionCode]", getFunctionCode); - body = body.replace("Parameters", parameterDeclaration(newParameterCount)); - return new Function("Promise", "fn", "receiver", "withAppended", "maybeWrapAsError", "nodebackForPromise", "tryCatch", "errorObj", "notEnumerableProp", "INTERNAL", body)(Promise, fn, receiver, withAppended, maybeWrapAsError, nodebackForPromise, util.tryCatch, util.errorObj, util.notEnumerableProp, INTERNAL); - }; - } + if (s !== 0) { + for (i = this.length - 1; i >= 0; i--) { + this.words[i + s] = this.words[i]; + } - function makeNodePromisifiedClosure(callback, receiver, _, fn, __, multiArgs) { - var defaultThis = function () { - return this; - }(); - var method = callback; - if (typeof method === "string") { - callback = fn; - } - function promisified() { - var _receiver = receiver; - if (receiver === THIS) _receiver = this; - var promise = new Promise(INTERNAL); - promise._captureStackTrace(); - var cb = typeof method === "string" && this !== defaultThis ? this[method] : callback; - var fn = nodebackForPromise(promise, multiArgs); - try { - cb.apply(_receiver, withAppended(arguments, fn)); - } catch (e) { - promise._rejectCallback(maybeWrapAsError(e), true, true); - } - if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); - return promise; - } - util.notEnumerableProp(promisified, "__isPromisified__", true); - return promisified; - } + for (i = 0; i < s; i++) { + this.words[i] = 0; + } - var makeNodePromisified = canEvaluate ? makeNodePromisifiedEval : makeNodePromisifiedClosure; + this.length += s; + } - function promisifyAll(obj, suffix, filter, promisifier, multiArgs) { - var suffixRegexp = new RegExp(escapeIdentRegex(suffix) + "$"); - var methods = promisifiableMethods(obj, suffix, suffixRegexp, filter); + return this.strip(); + }; - for (var i = 0, len = methods.length; i < len; i += 2) { - var key = methods[i]; - var fn = methods[i + 1]; - var promisifiedKey = key + suffix; - if (promisifier === makeNodePromisified) { - obj[promisifiedKey] = makeNodePromisified(key, THIS, key, fn, suffix, multiArgs); - } else { - var promisified = promisifier(fn, function () { - return makeNodePromisified(key, THIS, key, fn, suffix, multiArgs); - }); - util.notEnumerableProp(promisified, "__isPromisified__", true); - obj[promisifiedKey] = promisified; - } - } - util.toFastProperties(obj); - return obj; - } + BN.prototype.ishln = function ishln(bits) { + // TODO(indutny): implement me + assert(this.negative === 0); + return this.iushln(bits); + }; - function promisify(callback, receiver, multiArgs) { - return makeNodePromisified(callback, receiver, undefined, callback, null, multiArgs); - } + // Shift-right in-place + // NOTE: `hint` is a lowest bit before trailing zeroes + // NOTE: if `extended` is present - it will be filled with destroyed bits + BN.prototype.iushrn = function iushrn(bits, hint, extended) { + assert(typeof bits === 'number' && bits >= 0); + var h; + if (hint) { + h = (hint - hint % 26) / 26; + } else { + h = 0; + } - Promise.promisify = function (fn, options) { - if (typeof fn !== "function") { - throw new TypeError("expecting a function but got " + util.classString(fn)); - } - if (isPromisified(fn)) { - return fn; - } - options = Object(options); - var receiver = options.context === undefined ? THIS : options.context; - var multiArgs = !!options.multiArgs; - var ret = promisify(fn, receiver, multiArgs); - util.copyDescriptors(fn, ret, propsFilter); - return ret; - }; + var r = bits % 26; + var s = Math.min((bits - r) / 26, this.length); + var mask = 0x3ffffff ^ 0x3ffffff >>> r << r; + var maskedWords = extended; - Promise.promisifyAll = function (target, options) { - if (typeof target !== "function" && (typeof target === "undefined" ? "undefined" : _typeof(target)) !== "object") { - throw new TypeError("the target of promisifyAll must be an object or a function\n\n See http://goo.gl/MqrFmX\n"); - } - options = Object(options); - var multiArgs = !!options.multiArgs; - var suffix = options.suffix; - if (typeof suffix !== "string") suffix = defaultSuffix; - var filter = options.filter; - if (typeof filter !== "function") filter = defaultFilter; - var promisifier = options.promisifier; - if (typeof promisifier !== "function") promisifier = makeNodePromisified; + h -= s; + h = Math.max(0, h); - if (!util.isIdentifier(suffix)) { - throw new RangeError("suffix must be a valid identifier\n\n See http://goo.gl/MqrFmX\n"); - } + // Extended mode, copy masked part + if (maskedWords) { + for (var i = 0; i < s; i++) { + maskedWords.words[i] = this.words[i]; + } + maskedWords.length = s; + } - var keys = util.inheritedDataKeys(target); - for (var i = 0; i < keys.length; ++i) { - var value = target[keys[i]]; - if (keys[i] !== "constructor" && util.isClass(value)) { - promisifyAll(value.prototype, suffix, filter, promisifier, multiArgs); - promisifyAll(value, suffix, filter, promisifier, multiArgs); - } - } + if (s === 0) { + // No-op, we should not move anything at all + } else if (this.length > s) { + this.length -= s; + for (i = 0; i < this.length; i++) { + this.words[i] = this.words[i + s]; + } + } else { + this.words[0] = 0; + this.length = 1; + } - return promisifyAll(target, suffix, filter, promisifier, multiArgs); - }; - }; - }, { "./errors": 12, "./nodeback": 20, "./util": 36 }], 25: [function (_dereq_, module, exports) { - "use strict"; + var carry = 0; + for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) { + var word = this.words[i] | 0; + this.words[i] = carry << 26 - r | word >>> r; + carry = word & mask; + } - module.exports = function (Promise, PromiseArray, tryConvertToPromise, apiRejection) { - var util = _dereq_("./util"); - var isObject = util.isObject; - var es5 = _dereq_("./es5"); - var Es6Map; - if (typeof Map === "function") Es6Map = Map; + // Push carried bits as a mask + if (maskedWords && carry !== 0) { + maskedWords.words[maskedWords.length++] = carry; + } - var mapToEntries = function () { - var index = 0; - var size = 0; + if (this.length === 0) { + this.words[0] = 0; + this.length = 1; + } - function extractEntry(value, key) { - this[index] = value; - this[index + size] = key; - index++; - } + return this.strip(); + }; - return function mapToEntries(map) { - size = map.size; - index = 0; - var ret = new Array(map.size * 2); - map.forEach(extractEntry, ret); - return ret; - }; - }(); + BN.prototype.ishrn = function ishrn(bits, hint, extended) { + // TODO(indutny): implement me + assert(this.negative === 0); + return this.iushrn(bits, hint, extended); + }; - var entriesToMap = function entriesToMap(entries) { - var ret = new Es6Map(); - var length = entries.length / 2 | 0; - for (var i = 0; i < length; ++i) { - var key = entries[length + i]; - var value = entries[i]; - ret.set(key, value); - } - return ret; - }; + // Shift-left + BN.prototype.shln = function shln(bits) { + return this.clone().ishln(bits); + }; - function PropertiesPromiseArray(obj) { - var isMap = false; - var entries; - if (Es6Map !== undefined && obj instanceof Es6Map) { - entries = mapToEntries(obj); - isMap = true; - } else { - var keys = es5.keys(obj); - var len = keys.length; - entries = new Array(len * 2); - for (var i = 0; i < len; ++i) { - var key = keys[i]; - entries[i] = obj[key]; - entries[i + len] = key; - } - } - this.constructor$(entries); - this._isMap = isMap; - this._init$(undefined, -3); - } - util.inherits(PropertiesPromiseArray, PromiseArray); + BN.prototype.ushln = function ushln(bits) { + return this.clone().iushln(bits); + }; - PropertiesPromiseArray.prototype._init = function () {}; + // Shift-right + BN.prototype.shrn = function shrn(bits) { + return this.clone().ishrn(bits); + }; - PropertiesPromiseArray.prototype._promiseFulfilled = function (value, index) { - this._values[index] = value; - var totalResolved = ++this._totalResolved; - if (totalResolved >= this._length) { - var val; - if (this._isMap) { - val = entriesToMap(this._values); - } else { - val = {}; - var keyOffset = this.length(); - for (var i = 0, len = this.length(); i < len; ++i) { - val[this._values[i + keyOffset]] = this._values[i]; - } - } - this._resolve(val); - return true; - } - return false; - }; + BN.prototype.ushrn = function ushrn(bits) { + return this.clone().iushrn(bits); + }; - PropertiesPromiseArray.prototype.shouldCopyValues = function () { - return false; - }; + // Test if n bit is set + BN.prototype.testn = function testn(bit) { + assert(typeof bit === 'number' && bit >= 0); + var r = bit % 26; + var s = (bit - r) / 26; + var q = 1 << r; - PropertiesPromiseArray.prototype.getActualLength = function (len) { - return len >> 1; - }; + // Fast case: bit is much higher than all existing words + if (this.length <= s) return false; - function props(promises) { - var ret; - var castValue = tryConvertToPromise(promises); + // Check bit and return + var w = this.words[s]; - if (!isObject(castValue)) { - return apiRejection("cannot await properties of a non-object\n\n See http://goo.gl/MqrFmX\n"); - } else if (castValue instanceof Promise) { - ret = castValue._then(Promise.props, undefined, undefined, undefined, undefined); - } else { - ret = new PropertiesPromiseArray(castValue).promise(); - } + return !!(w & q); + }; - if (castValue instanceof Promise) { - ret._propagateFrom(castValue, 2); - } - return ret; - } + // Return only lowers bits of number (in-place) + BN.prototype.imaskn = function imaskn(bits) { + assert(typeof bits === 'number' && bits >= 0); + var r = bits % 26; + var s = (bits - r) / 26; - Promise.prototype.props = function () { - return props(this); - }; + assert(this.negative === 0, 'imaskn works only with positive numbers'); - Promise.props = function (promises) { - return props(promises); - }; - }; - }, { "./es5": 13, "./util": 36 }], 26: [function (_dereq_, module, exports) { - "use strict"; + if (this.length <= s) { + return this; + } - function arrayMove(src, srcIndex, dst, dstIndex, len) { - for (var j = 0; j < len; ++j) { - dst[j + dstIndex] = src[j + srcIndex]; - src[j + srcIndex] = void 0; - } - } + if (r !== 0) { + s++; + } + this.length = Math.min(s, this.length); - function Queue(capacity) { - this._capacity = capacity; - this._length = 0; - this._front = 0; - } + if (r !== 0) { + var mask = 0x3ffffff ^ 0x3ffffff >>> r << r; + this.words[this.length - 1] &= mask; + } - Queue.prototype._willBeOverCapacity = function (size) { - return this._capacity < size; - }; + return this.strip(); + }; - Queue.prototype._pushOne = function (arg) { - var length = this.length(); - this._checkCapacity(length + 1); - var i = this._front + length & this._capacity - 1; - this[i] = arg; - this._length = length + 1; - }; + // Return only lowers bits of number + BN.prototype.maskn = function maskn(bits) { + return this.clone().imaskn(bits); + }; - Queue.prototype._unshiftOne = function (value) { - var capacity = this._capacity; - this._checkCapacity(this.length() + 1); - var front = this._front; - var i = (front - 1 & capacity - 1 ^ capacity) - capacity; - this[i] = value; - this._front = i; - this._length = this.length() + 1; - }; + // Add plain number `num` to `this` + BN.prototype.iaddn = function iaddn(num) { + assert(typeof num === 'number'); + assert(num < 0x4000000); + if (num < 0) return this.isubn(-num); - Queue.prototype.unshift = function (fn, receiver, arg) { - this._unshiftOne(arg); - this._unshiftOne(receiver); - this._unshiftOne(fn); - }; + // Possible sign change + if (this.negative !== 0) { + if (this.length === 1 && (this.words[0] | 0) < num) { + this.words[0] = num - (this.words[0] | 0); + this.negative = 0; + return this; + } - Queue.prototype.push = function (fn, receiver, arg) { - var length = this.length() + 3; - if (this._willBeOverCapacity(length)) { - this._pushOne(fn); - this._pushOne(receiver); - this._pushOne(arg); - return; - } - var j = this._front + length - 3; - this._checkCapacity(length); - var wrapMask = this._capacity - 1; - this[j + 0 & wrapMask] = fn; - this[j + 1 & wrapMask] = receiver; - this[j + 2 & wrapMask] = arg; - this._length = length; - }; + this.negative = 0; + this.isubn(num); + this.negative = 1; + return this; + } - Queue.prototype.shift = function () { - var front = this._front, - ret = this[front]; + // Add without checks + return this._iaddn(num); + }; - this[front] = undefined; - this._front = front + 1 & this._capacity - 1; - this._length--; - return ret; - }; + BN.prototype._iaddn = function _iaddn(num) { + this.words[0] += num; - Queue.prototype.length = function () { - return this._length; - }; + // Carry + for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) { + this.words[i] -= 0x4000000; + if (i === this.length - 1) { + this.words[i + 1] = 1; + } else { + this.words[i + 1]++; + } + } + this.length = Math.max(this.length, i + 1); - Queue.prototype._checkCapacity = function (size) { - if (this._capacity < size) { - this._resizeTo(this._capacity << 1); - } - }; + return this; + }; - Queue.prototype._resizeTo = function (capacity) { - var oldCapacity = this._capacity; - this._capacity = capacity; - var front = this._front; - var length = this._length; - var moveItemsCount = front + length & oldCapacity - 1; - arrayMove(this, 0, this, oldCapacity, moveItemsCount); - }; + // Subtract plain number `num` from `this` + BN.prototype.isubn = function isubn(num) { + assert(typeof num === 'number'); + assert(num < 0x4000000); + if (num < 0) return this.iaddn(-num); - module.exports = Queue; - }, {}], 27: [function (_dereq_, module, exports) { - "use strict"; + if (this.negative !== 0) { + this.negative = 0; + this.iaddn(num); + this.negative = 1; + return this; + } - module.exports = function (Promise, INTERNAL, tryConvertToPromise, apiRejection) { - var util = _dereq_("./util"); + this.words[0] -= num; - var raceLater = function raceLater(promise) { - return promise.then(function (array) { - return race(array, promise); - }); - }; + if (this.length === 1 && this.words[0] < 0) { + this.words[0] = -this.words[0]; + this.negative = 1; + } else { + // Carry + for (var i = 0; i < this.length && this.words[i] < 0; i++) { + this.words[i] += 0x4000000; + this.words[i + 1] -= 1; + } + } - function race(promises, parent) { - var maybePromise = tryConvertToPromise(promises); + return this.strip(); + }; - if (maybePromise instanceof Promise) { - return raceLater(maybePromise); - } else { - promises = util.asArray(promises); - if (promises === null) return apiRejection("expecting an array or an iterable object but got " + util.classString(promises)); - } + BN.prototype.addn = function addn(num) { + return this.clone().iaddn(num); + }; - var ret = new Promise(INTERNAL); - if (parent !== undefined) { - ret._propagateFrom(parent, 3); - } - var fulfill = ret._fulfill; - var reject = ret._reject; - for (var i = 0, len = promises.length; i < len; ++i) { - var val = promises[i]; + BN.prototype.subn = function subn(num) { + return this.clone().isubn(num); + }; - if (val === undefined && !(i in promises)) { - continue; - } + BN.prototype.iabs = function iabs() { + this.negative = 0; - Promise.cast(val)._then(fulfill, reject, undefined, ret, null); - } - return ret; - } + return this; + }; - Promise.race = function (promises) { - return race(promises, undefined); - }; + BN.prototype.abs = function abs() { + return this.clone().iabs(); + }; - Promise.prototype.race = function () { - return race(this, undefined); - }; - }; - }, { "./util": 36 }], 28: [function (_dereq_, module, exports) { - "use strict"; + BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) { + var len = num.length + shift; + var i; - module.exports = function (Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug) { - var getDomain = Promise._getDomain; - var util = _dereq_("./util"); - var tryCatch = util.tryCatch; + this._expand(len); - function ReductionPromiseArray(promises, fn, initialValue, _each) { - this.constructor$(promises); - var domain = getDomain(); - this._fn = domain === null ? fn : domain.bind(fn); - if (initialValue !== undefined) { - initialValue = Promise.resolve(initialValue); - initialValue._attachCancellationCallback(this); - } - this._initialValue = initialValue; - this._currentCancellable = null; - this._eachValues = _each === INTERNAL ? [] : undefined; - this._promise._captureStackTrace(); - this._init$(undefined, -5); - } - util.inherits(ReductionPromiseArray, PromiseArray); + var w; + var carry = 0; + for (i = 0; i < num.length; i++) { + w = (this.words[i + shift] | 0) + carry; + var right = (num.words[i] | 0) * mul; + w -= right & 0x3ffffff; + carry = (w >> 26) - (right / 0x4000000 | 0); + this.words[i + shift] = w & 0x3ffffff; + } + for (; i < this.length - shift; i++) { + w = (this.words[i + shift] | 0) + carry; + carry = w >> 26; + this.words[i + shift] = w & 0x3ffffff; + } - ReductionPromiseArray.prototype._gotAccum = function (accum) { - if (this._eachValues !== undefined && accum !== INTERNAL) { - this._eachValues.push(accum); - } - }; + if (carry === 0) return this.strip(); - ReductionPromiseArray.prototype._eachComplete = function (value) { - this._eachValues.push(value); - return this._eachValues; - }; + // Subtraction overflow + assert(carry === -1); + carry = 0; + for (i = 0; i < this.length; i++) { + w = -(this.words[i] | 0) + carry; + carry = w >> 26; + this.words[i] = w & 0x3ffffff; + } + this.negative = 1; - ReductionPromiseArray.prototype._init = function () {}; + return this.strip(); + }; - ReductionPromiseArray.prototype._resolveEmptyArray = function () { - this._resolve(this._eachValues !== undefined ? this._eachValues : this._initialValue); - }; + BN.prototype._wordDiv = function _wordDiv(num, mode) { + var shift = this.length - num.length; - ReductionPromiseArray.prototype.shouldCopyValues = function () { - return false; - }; + var a = this.clone(); + var b = num; - ReductionPromiseArray.prototype._resolve = function (value) { - this._promise._resolveCallback(value); - this._values = null; - }; + // Normalize + var bhi = b.words[b.length - 1] | 0; + var bhiBits = this._countBits(bhi); + shift = 26 - bhiBits; + if (shift !== 0) { + b = b.ushln(shift); + a.iushln(shift); + bhi = b.words[b.length - 1] | 0; + } - ReductionPromiseArray.prototype._resultCancelled = function (sender) { - if (sender === this._initialValue) return this._cancel(); - if (this._isResolved()) return; - this._resultCancelled$(); - if (this._currentCancellable instanceof Promise) { - this._currentCancellable.cancel(); - } - if (this._initialValue instanceof Promise) { - this._initialValue.cancel(); - } - }; - - ReductionPromiseArray.prototype._iterate = function (values) { - this._values = values; - var value; - var i; - var length = values.length; - if (this._initialValue !== undefined) { - value = this._initialValue; - i = 0; - } else { - value = Promise.resolve(values[0]); - i = 1; - } + // Initialize quotient + var m = a.length - b.length; + var q; - this._currentCancellable = value; + if (mode !== 'mod') { + q = new BN(null); + q.length = m + 1; + q.words = new Array(q.length); + for (var i = 0; i < q.length; i++) { + q.words[i] = 0; + } + } - if (!value.isRejected()) { - for (; i < length; ++i) { - var ctx = { - accum: null, - value: values[i], - index: i, - length: length, - array: this - }; - value = value._then(gotAccum, undefined, undefined, ctx, undefined); - } - } + var diff = a.clone()._ishlnsubmul(b, 1, m); + if (diff.negative === 0) { + a = diff; + if (q) { + q.words[m] = 1; + } + } - if (this._eachValues !== undefined) { - value = value._then(this._eachComplete, undefined, undefined, this, undefined); - } - value._then(completed, completed, undefined, value, this); - }; + for (var j = m - 1; j >= 0; j--) { + var qj = (a.words[b.length + j] | 0) * 0x4000000 + (a.words[b.length + j - 1] | 0); - Promise.prototype.reduce = function (fn, initialValue) { - return reduce(this, fn, initialValue, null); - }; + // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max + // (0x7ffffff) + qj = Math.min(qj / bhi | 0, 0x3ffffff); - Promise.reduce = function (promises, fn, initialValue, _each) { - return reduce(promises, fn, initialValue, _each); - }; + a._ishlnsubmul(b, qj, j); + while (a.negative !== 0) { + qj--; + a.negative = 0; + a._ishlnsubmul(b, 1, j); + if (!a.isZero()) { + a.negative ^= 1; + } + } + if (q) { + q.words[j] = qj; + } + } + if (q) { + q.strip(); + } + a.strip(); - function completed(valueOrReason, array) { - if (this.isFulfilled()) { - array._resolve(valueOrReason); - } else { - array._reject(valueOrReason); - } - } + // Denormalize + if (mode !== 'div' && shift !== 0) { + a.iushrn(shift); + } - function reduce(promises, fn, initialValue, _each) { - if (typeof fn !== "function") { - return apiRejection("expecting a function but got " + util.classString(fn)); - } - var array = new ReductionPromiseArray(promises, fn, initialValue, _each); - return array.promise(); - } + return { + div: q || null, + mod: a + }; + }; - function gotAccum(accum) { - this.accum = accum; - this.array._gotAccum(accum); - var value = tryConvertToPromise(this.value, this.array._promise); - if (value instanceof Promise) { - this.array._currentCancellable = value; - return value._then(gotValue, undefined, undefined, this, undefined); - } else { - return gotValue.call(this, value); - } - } + // NOTE: 1) `mode` can be set to `mod` to request mod only, + // to `div` to request div only, or be absent to + // request both div & mod + // 2) `positive` is true if unsigned mod is requested + BN.prototype.divmod = function divmod(num, mode, positive) { + assert(!num.isZero()); - function gotValue(value) { - var array = this.array; - var promise = array._promise; - var fn = tryCatch(array._fn); - promise._pushContext(); - var ret; - if (array._eachValues !== undefined) { - ret = fn.call(promise._boundValue(), value, this.index, this.length); - } else { - ret = fn.call(promise._boundValue(), this.accum, value, this.index, this.length); - } - if (ret instanceof Promise) { - array._currentCancellable = ret; - } - var promiseCreated = promise._popContext(); - debug.checkForgottenReturns(ret, promiseCreated, array._eachValues !== undefined ? "Promise.each" : "Promise.reduce", promise); - return ret; - } - }; - }, { "./util": 36 }], 29: [function (_dereq_, module, exports) { - "use strict"; + if (this.isZero()) { + return { + div: new BN(0), + mod: new BN(0) + }; + } - var util = _dereq_("./util"); - var schedule; - var noAsyncScheduler = function noAsyncScheduler() { - throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n"); - }; - if (util.isNode && typeof MutationObserver === "undefined") { - var GlobalSetImmediate = global.setImmediate; - var ProcessNextTick = process.nextTick; - schedule = util.isRecentNode ? function (fn) { - GlobalSetImmediate.call(global, fn); - } : function (fn) { - ProcessNextTick.call(process, fn); - }; - } else if (typeof MutationObserver !== "undefined" && !(typeof window !== "undefined" && window.navigator && window.navigator.standalone)) { - schedule = function () { - var div = document.createElement("div"); - var opts = { attributes: true }; - var toggleScheduled = false; - var div2 = document.createElement("div"); - var o2 = new MutationObserver(function () { - div.classList.toggle("foo"); - toggleScheduled = false; - }); - o2.observe(div2, opts); + var div, mod, res; + if (this.negative !== 0 && num.negative === 0) { + res = this.neg().divmod(num, mode); - var scheduleToggle = function scheduleToggle() { - if (toggleScheduled) return; - toggleScheduled = true; - div2.classList.toggle("foo"); - }; + if (mode !== 'mod') { + div = res.div.neg(); + } - return function schedule(fn) { - var o = new MutationObserver(function () { - o.disconnect(); - fn(); - }); - o.observe(div, opts); - scheduleToggle(); - }; - }(); - } else if (typeof setImmediate !== "undefined") { - schedule = function schedule(fn) { - setImmediate(fn); - }; - } else if (typeof setTimeout !== "undefined") { - schedule = function schedule(fn) { - setTimeout(fn, 0); - }; - } else { - schedule = noAsyncScheduler; + if (mode !== 'div') { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.iadd(num); } - module.exports = schedule; - }, { "./util": 36 }], 30: [function (_dereq_, module, exports) { - "use strict"; - - module.exports = function (Promise, PromiseArray, debug) { - var PromiseInspection = Promise.PromiseInspection; - var util = _dereq_("./util"); + } - function SettledPromiseArray(values) { - this.constructor$(values); - } - util.inherits(SettledPromiseArray, PromiseArray); + return { + div: div, + mod: mod + }; + } - SettledPromiseArray.prototype._promiseResolved = function (index, inspection) { - this._values[index] = inspection; - var totalResolved = ++this._totalResolved; - if (totalResolved >= this._length) { - this._resolve(this._values); - return true; - } - return false; - }; + if (this.negative === 0 && num.negative !== 0) { + res = this.divmod(num.neg(), mode); - SettledPromiseArray.prototype._promiseFulfilled = function (value, index) { - var ret = new PromiseInspection(); - ret._bitField = 33554432; - ret._settledValueField = value; - return this._promiseResolved(index, ret); - }; - SettledPromiseArray.prototype._promiseRejected = function (reason, index) { - var ret = new PromiseInspection(); - ret._bitField = 16777216; - ret._settledValueField = reason; - return this._promiseResolved(index, ret); - }; + if (mode !== 'mod') { + div = res.div.neg(); + } - Promise.settle = function (promises) { - debug.deprecated(".settle()", ".reflect()"); - return new SettledPromiseArray(promises).promise(); - }; + return { + div: div, + mod: res.mod + }; + } - Promise.prototype.settle = function () { - return Promise.settle(this); - }; - }; - }, { "./util": 36 }], 31: [function (_dereq_, module, exports) { - "use strict"; + if ((this.negative & num.negative) !== 0) { + res = this.neg().divmod(num.neg(), mode); - module.exports = function (Promise, PromiseArray, apiRejection) { - var util = _dereq_("./util"); - var RangeError = _dereq_("./errors").RangeError; - var AggregateError = _dereq_("./errors").AggregateError; - var isArray = util.isArray; - var CANCELLATION = {}; + if (mode !== 'div') { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.isub(num); + } + } - function SomePromiseArray(values) { - this.constructor$(values); - this._howMany = 0; - this._unwrap = false; - this._initialized = false; - } - util.inherits(SomePromiseArray, PromiseArray); + return { + div: res.div, + mod: mod + }; + } - SomePromiseArray.prototype._init = function () { - if (!this._initialized) { - return; - } - if (this._howMany === 0) { - this._resolve([]); - return; - } - this._init$(undefined, -5); - var isArrayResolved = isArray(this._values); - if (!this._isResolved() && isArrayResolved && this._howMany > this._canPossiblyFulfill()) { - this._reject(this._getRangeError(this.length())); - } - }; + // Both numbers are positive at this point - SomePromiseArray.prototype.init = function () { - this._initialized = true; - this._init(); - }; + // Strip both numbers to approximate shift value + if (num.length > this.length || this.cmp(num) < 0) { + return { + div: new BN(0), + mod: this + }; + } - SomePromiseArray.prototype.setUnwrap = function () { - this._unwrap = true; - }; + // Very short reduction + if (num.length === 1) { + if (mode === 'div') { + return { + div: this.divn(num.words[0]), + mod: null + }; + } - SomePromiseArray.prototype.howMany = function () { - return this._howMany; - }; + if (mode === 'mod') { + return { + div: null, + mod: new BN(this.modn(num.words[0])) + }; + } - SomePromiseArray.prototype.setHowMany = function (count) { - this._howMany = count; - }; + return { + div: this.divn(num.words[0]), + mod: new BN(this.modn(num.words[0])) + }; + } - SomePromiseArray.prototype._promiseFulfilled = function (value) { - this._addFulfilled(value); - if (this._fulfilled() === this.howMany()) { - this._values.length = this.howMany(); - if (this.howMany() === 1 && this._unwrap) { - this._resolve(this._values[0]); - } else { - this._resolve(this._values); - } - return true; - } - return false; - }; - SomePromiseArray.prototype._promiseRejected = function (reason) { - this._addRejected(reason); - return this._checkOutcome(); - }; + return this._wordDiv(num, mode); + }; - SomePromiseArray.prototype._promiseCancelled = function () { - if (this._values instanceof Promise || this._values == null) { - return this._cancel(); - } - this._addRejected(CANCELLATION); - return this._checkOutcome(); - }; + // Find `this` / `num` + BN.prototype.div = function div(num) { + return this.divmod(num, 'div', false).div; + }; - SomePromiseArray.prototype._checkOutcome = function () { - if (this.howMany() > this._canPossiblyFulfill()) { - var e = new AggregateError(); - for (var i = this.length(); i < this._values.length; ++i) { - if (this._values[i] !== CANCELLATION) { - e.push(this._values[i]); - } - } - if (e.length > 0) { - this._reject(e); - } else { - this._cancel(); - } - return true; - } - return false; - }; + // Find `this` % `num` + BN.prototype.mod = function mod(num) { + return this.divmod(num, 'mod', false).mod; + }; - SomePromiseArray.prototype._fulfilled = function () { - return this._totalResolved; - }; + BN.prototype.umod = function umod(num) { + return this.divmod(num, 'mod', true).mod; + }; - SomePromiseArray.prototype._rejected = function () { - return this._values.length - this.length(); - }; + // Find Round(`this` / `num`) + BN.prototype.divRound = function divRound(num) { + var dm = this.divmod(num); - SomePromiseArray.prototype._addRejected = function (reason) { - this._values.push(reason); - }; + // Fast case - exact division + if (dm.mod.isZero()) return dm.div; - SomePromiseArray.prototype._addFulfilled = function (value) { - this._values[this._totalResolved++] = value; - }; + var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod; - SomePromiseArray.prototype._canPossiblyFulfill = function () { - return this.length() - this._rejected(); - }; + var half = num.ushrn(1); + var r2 = num.andln(1); + var cmp = mod.cmp(half); - SomePromiseArray.prototype._getRangeError = function (count) { - var message = "Input array must contain at least " + this._howMany + " items but contains only " + count + " items"; - return new RangeError(message); - }; + // Round down + if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div; - SomePromiseArray.prototype._resolveEmptyArray = function () { - this._reject(this._getRangeError(0)); - }; + // Round up + return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1); + }; - function some(promises, howMany) { - if ((howMany | 0) !== howMany || howMany < 0) { - return apiRejection("expecting a positive integer\n\n See http://goo.gl/MqrFmX\n"); - } - var ret = new SomePromiseArray(promises); - var promise = ret.promise(); - ret.setHowMany(howMany); - ret.init(); - return promise; - } + BN.prototype.modn = function modn(num) { + assert(num <= 0x3ffffff); + var p = (1 << 26) % num; - Promise.some = function (promises, howMany) { - return some(promises, howMany); - }; + var acc = 0; + for (var i = this.length - 1; i >= 0; i--) { + acc = (p * acc + (this.words[i] | 0)) % num; + } - Promise.prototype.some = function (howMany) { - return some(this, howMany); - }; + return acc; + }; - Promise._SomePromiseArray = SomePromiseArray; - }; - }, { "./errors": 12, "./util": 36 }], 32: [function (_dereq_, module, exports) { - "use strict"; + // In-place division by number + BN.prototype.idivn = function idivn(num) { + assert(num <= 0x3ffffff); - module.exports = function (Promise) { - function PromiseInspection(promise) { - if (promise !== undefined) { - promise = promise._target(); - this._bitField = promise._bitField; - this._settledValueField = promise._isFateSealed() ? promise._settledValue() : undefined; - } else { - this._bitField = 0; - this._settledValueField = undefined; - } - } + var carry = 0; + for (var i = this.length - 1; i >= 0; i--) { + var w = (this.words[i] | 0) + carry * 0x4000000; + this.words[i] = w / num | 0; + carry = w % num; + } - PromiseInspection.prototype._settledValue = function () { - return this._settledValueField; - }; + return this.strip(); + }; - var value = PromiseInspection.prototype.value = function () { - if (!this.isFulfilled()) { - throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\n\n See http://goo.gl/MqrFmX\n"); - } - return this._settledValue(); - }; + BN.prototype.divn = function divn(num) { + return this.clone().idivn(num); + }; - var reason = PromiseInspection.prototype.error = PromiseInspection.prototype.reason = function () { - if (!this.isRejected()) { - throw new TypeError("cannot get rejection reason of a non-rejected promise\n\n See http://goo.gl/MqrFmX\n"); - } - return this._settledValue(); - }; + BN.prototype.egcd = function egcd(p) { + assert(p.negative === 0); + assert(!p.isZero()); - var isFulfilled = PromiseInspection.prototype.isFulfilled = function () { - return (this._bitField & 33554432) !== 0; - }; + var x = this; + var y = p.clone(); - var isRejected = PromiseInspection.prototype.isRejected = function () { - return (this._bitField & 16777216) !== 0; - }; + if (x.negative !== 0) { + x = x.umod(p); + } else { + x = x.clone(); + } - var isPending = PromiseInspection.prototype.isPending = function () { - return (this._bitField & 50397184) === 0; - }; + // A * x + B * y = x + var A = new BN(1); + var B = new BN(0); - var isResolved = PromiseInspection.prototype.isResolved = function () { - return (this._bitField & 50331648) !== 0; - }; + // C * x + D * y = y + var C = new BN(0); + var D = new BN(1); - PromiseInspection.prototype.isCancelled = Promise.prototype._isCancelled = function () { - return (this._bitField & 65536) === 65536; - }; + var g = 0; - Promise.prototype.isCancelled = function () { - return this._target()._isCancelled(); - }; + while (x.isEven() && y.isEven()) { + x.iushrn(1); + y.iushrn(1); + ++g; + } - Promise.prototype.isPending = function () { - return isPending.call(this._target()); - }; + var yp = y.clone(); + var xp = x.clone(); - Promise.prototype.isRejected = function () { - return isRejected.call(this._target()); - }; + while (!x.isZero()) { + for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1) {} + if (i > 0) { + x.iushrn(i); + while (i-- > 0) { + if (A.isOdd() || B.isOdd()) { + A.iadd(yp); + B.isub(xp); + } - Promise.prototype.isFulfilled = function () { - return isFulfilled.call(this._target()); - }; + A.iushrn(1); + B.iushrn(1); + } + } - Promise.prototype.isResolved = function () { - return isResolved.call(this._target()); - }; + for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1) {} + if (j > 0) { + y.iushrn(j); + while (j-- > 0) { + if (C.isOdd() || D.isOdd()) { + C.iadd(yp); + D.isub(xp); + } - Promise.prototype.value = function () { - return value.call(this._target()); - }; + C.iushrn(1); + D.iushrn(1); + } + } - Promise.prototype.reason = function () { - var target = this._target(); - target._unsetRejectionIsUnhandled(); - return reason.call(target); - }; + if (x.cmp(y) >= 0) { + x.isub(y); + A.isub(C); + B.isub(D); + } else { + y.isub(x); + C.isub(A); + D.isub(B); + } + } - Promise.prototype._value = function () { - return this._settledValue(); - }; + return { + a: C, + b: D, + gcd: y.iushln(g) + }; + }; - Promise.prototype._reason = function () { - this._unsetRejectionIsUnhandled(); - return this._settledValue(); - }; + // This is reduced incarnation of the binary EEA + // above, designated to invert members of the + // _prime_ fields F(p) at a maximal speed + BN.prototype._invmp = function _invmp(p) { + assert(p.negative === 0); + assert(!p.isZero()); - Promise.PromiseInspection = PromiseInspection; - }; - }, {}], 33: [function (_dereq_, module, exports) { - "use strict"; + var a = this; + var b = p.clone(); - module.exports = function (Promise, INTERNAL) { - var util = _dereq_("./util"); - var errorObj = util.errorObj; - var isObject = util.isObject; + if (a.negative !== 0) { + a = a.umod(p); + } else { + a = a.clone(); + } - function tryConvertToPromise(obj, context) { - if (isObject(obj)) { - if (obj instanceof Promise) return obj; - var then = getThen(obj); - if (then === errorObj) { - if (context) context._pushContext(); - var ret = Promise.reject(then.e); - if (context) context._popContext(); - return ret; - } else if (typeof then === "function") { - if (isAnyBluebirdPromise(obj)) { - var ret = new Promise(INTERNAL); - obj._then(ret._fulfill, ret._reject, undefined, ret, null); - return ret; - } - return doThenable(obj, then, context); - } - } - return obj; - } + var x1 = new BN(1); + var x2 = new BN(0); - function doGetThen(obj) { - return obj.then; - } + var delta = b.clone(); - function getThen(obj) { - try { - return doGetThen(obj); - } catch (e) { - errorObj.e = e; - return errorObj; - } + while (a.cmpn(1) > 0 && b.cmpn(1) > 0) { + for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1) {} + if (i > 0) { + a.iushrn(i); + while (i-- > 0) { + if (x1.isOdd()) { + x1.iadd(delta); } - var hasProp = {}.hasOwnProperty; - function isAnyBluebirdPromise(obj) { - return hasProp.call(obj, "_promise0"); - } + x1.iushrn(1); + } + } - function doThenable(x, then, context) { - var promise = new Promise(INTERNAL); - var ret = promise; - if (context) context._pushContext(); - promise._captureStackTrace(); - if (context) context._popContext(); - var synchronous = true; - var result = util.tryCatch(then).call(x, resolve, reject); - synchronous = false; + for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1) {} + if (j > 0) { + b.iushrn(j); + while (j-- > 0) { + if (x2.isOdd()) { + x2.iadd(delta); + } - if (promise && result === errorObj) { - promise._rejectCallback(result.e, true, true); - promise = null; - } + x2.iushrn(1); + } + } - function resolve(value) { - if (!promise) return; - promise._resolveCallback(value); - promise = null; - } + if (a.cmp(b) >= 0) { + a.isub(b); + x1.isub(x2); + } else { + b.isub(a); + x2.isub(x1); + } + } - function reject(reason) { - if (!promise) return; - promise._rejectCallback(reason, synchronous, true); - promise = null; - } - return ret; - } + var res; + if (a.cmpn(1) === 0) { + res = x1; + } else { + res = x2; + } - return tryConvertToPromise; - }; - }, { "./util": 36 }], 34: [function (_dereq_, module, exports) { - "use strict"; + if (res.cmpn(0) < 0) { + res.iadd(p); + } - module.exports = function (Promise, INTERNAL, debug) { - var util = _dereq_("./util"); - var TimeoutError = Promise.TimeoutError; + return res; + }; - function HandleWrapper(handle) { - this.handle = handle; - } + BN.prototype.gcd = function gcd(num) { + if (this.isZero()) return num.abs(); + if (num.isZero()) return this.abs(); - HandleWrapper.prototype._resultCancelled = function () { - clearTimeout(this.handle); - }; + var a = this.clone(); + var b = num.clone(); + a.negative = 0; + b.negative = 0; - var afterValue = function afterValue(value) { - return delay(+this).thenReturn(value); - }; - var delay = Promise.delay = function (ms, value) { - var ret; - var handle; - if (value !== undefined) { - ret = Promise.resolve(value)._then(afterValue, null, null, ms, undefined); - if (debug.cancellation() && value instanceof Promise) { - ret._setOnCancel(value); - } - } else { - ret = new Promise(INTERNAL); - handle = setTimeout(function () { - ret._fulfill(); - }, +ms); - if (debug.cancellation()) { - ret._setOnCancel(new HandleWrapper(handle)); - } - } - ret._setAsyncGuaranteed(); - return ret; - }; + // Remove common factor of two + for (var shift = 0; a.isEven() && b.isEven(); shift++) { + a.iushrn(1); + b.iushrn(1); + } - Promise.prototype.delay = function (ms) { - return delay(ms, this); - }; + do { + while (a.isEven()) { + a.iushrn(1); + } + while (b.isEven()) { + b.iushrn(1); + } - var afterTimeout = function afterTimeout(promise, message, parent) { - var err; - if (typeof message !== "string") { - if (message instanceof Error) { - err = message; - } else { - err = new TimeoutError("operation timed out"); - } - } else { - err = new TimeoutError(message); - } - util.markAsOriginatingFromRejection(err); - promise._attachExtraTrace(err); - promise._reject(err); + var r = a.cmp(b); + if (r < 0) { + // Swap `a` and `b` to make `a` always bigger than `b` + var t = a; + a = b; + b = t; + } else if (r === 0 || b.cmpn(1) === 0) { + break; + } - if (parent != null) { - parent.cancel(); - } - }; + a.isub(b); + } while (true); - function successClear(value) { - clearTimeout(this.handle); - return value; - } + return b.iushln(shift); + }; - function failureClear(reason) { - clearTimeout(this.handle); - throw reason; - } + // Invert number in the field F(num) + BN.prototype.invm = function invm(num) { + return this.egcd(num).a.umod(num); + }; - Promise.prototype.timeout = function (ms, message) { - ms = +ms; - var ret, parent; + BN.prototype.isEven = function isEven() { + return (this.words[0] & 1) === 0; + }; - var handleWrapper = new HandleWrapper(setTimeout(function timeoutTimeout() { - if (ret.isPending()) { - afterTimeout(ret, message, parent); - } - }, ms)); + BN.prototype.isOdd = function isOdd() { + return (this.words[0] & 1) === 1; + }; - if (debug.cancellation()) { - parent = this.then(); - ret = parent._then(successClear, failureClear, undefined, handleWrapper, undefined); - ret._setOnCancel(handleWrapper); - } else { - ret = this._then(successClear, failureClear, undefined, handleWrapper, undefined); - } + // And first word and num + BN.prototype.andln = function andln(num) { + return this.words[0] & num; + }; - return ret; - }; - }; - }, { "./util": 36 }], 35: [function (_dereq_, module, exports) { - "use strict"; + // Increment at the bit position in-line + BN.prototype.bincn = function bincn(bit) { + assert(typeof bit === 'number'); + var r = bit % 26; + var s = (bit - r) / 26; + var q = 1 << r; - module.exports = function (Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug) { - var util = _dereq_("./util"); - var TypeError = _dereq_("./errors").TypeError; - var inherits = _dereq_("./util").inherits; - var errorObj = util.errorObj; - var tryCatch = util.tryCatch; + // Fast case: bit is much higher than all existing words + if (this.length <= s) { + this._expand(s + 1); + this.words[s] |= q; + return this; + } - function thrower(e) { - setTimeout(function () { - throw e; - }, 0); - } + // Add bit and propagate, if needed + var carry = q; + for (var i = s; carry !== 0 && i < this.length; i++) { + var w = this.words[i] | 0; + w += carry; + carry = w >>> 26; + w &= 0x3ffffff; + this.words[i] = w; + } + if (carry !== 0) { + this.words[i] = carry; + this.length++; + } + return this; + }; - function castPreservingDisposable(thenable) { - var maybePromise = tryConvertToPromise(thenable); - if (maybePromise !== thenable && typeof thenable._isDisposable === "function" && typeof thenable._getDisposer === "function" && thenable._isDisposable()) { - maybePromise._setDisposable(thenable._getDisposer()); - } - return maybePromise; - } - function dispose(resources, inspection) { - var i = 0; - var len = resources.length; - var ret = new Promise(INTERNAL); - function iterator() { - if (i >= len) return ret._fulfill(); - var maybePromise = castPreservingDisposable(resources[i++]); - if (maybePromise instanceof Promise && maybePromise._isDisposable()) { - try { - maybePromise = tryConvertToPromise(maybePromise._getDisposer().tryDispose(inspection), resources.promise); - } catch (e) { - return thrower(e); - } - if (maybePromise instanceof Promise) { - return maybePromise._then(iterator, thrower, null, null, null); - } - } - iterator(); - } - iterator(); - return ret; - } + BN.prototype.isZero = function isZero() { + return this.length === 1 && this.words[0] === 0; + }; - function Disposer(data, promise, context) { - this._data = data; - this._promise = promise; - this._context = context; - } + BN.prototype.cmpn = function cmpn(num) { + var negative = num < 0; - Disposer.prototype.data = function () { - return this._data; - }; + if (this.negative !== 0 && !negative) return -1; + if (this.negative === 0 && negative) return 1; - Disposer.prototype.promise = function () { - return this._promise; - }; + this.strip(); - Disposer.prototype.resource = function () { - if (this.promise().isFulfilled()) { - return this.promise().value(); - } - return null; - }; + var res; + if (this.length > 1) { + res = 1; + } else { + if (negative) { + num = -num; + } - Disposer.prototype.tryDispose = function (inspection) { - var resource = this.resource(); - var context = this._context; - if (context !== undefined) context._pushContext(); - var ret = resource !== null ? this.doDispose(resource, inspection) : null; - if (context !== undefined) context._popContext(); - this._promise._unsetDisposable(); - this._data = null; - return ret; - }; + assert(num <= 0x3ffffff, 'Number is too big'); - Disposer.isDisposer = function (d) { - return d != null && typeof d.resource === "function" && typeof d.tryDispose === "function"; - }; + var w = this.words[0] | 0; + res = w === num ? 0 : w < num ? -1 : 1; + } + if (this.negative !== 0) return -res | 0; + return res; + }; - function FunctionDisposer(fn, promise, context) { - this.constructor$(fn, promise, context); - } - inherits(FunctionDisposer, Disposer); + // Compare two numbers and return: + // 1 - if `this` > `num` + // 0 - if `this` == `num` + // -1 - if `this` < `num` + BN.prototype.cmp = function cmp(num) { + if (this.negative !== 0 && num.negative === 0) return -1; + if (this.negative === 0 && num.negative !== 0) return 1; - FunctionDisposer.prototype.doDispose = function (resource, inspection) { - var fn = this.data(); - return fn.call(resource, resource, inspection); - }; + var res = this.ucmp(num); + if (this.negative !== 0) return -res | 0; + return res; + }; - function maybeUnwrapDisposer(value) { - if (Disposer.isDisposer(value)) { - this.resources[this.index]._setDisposable(value); - return value.promise(); - } - return value; - } + // Unsigned comparison + BN.prototype.ucmp = function ucmp(num) { + // At this point both numbers have the same sign + if (this.length > num.length) return 1; + if (this.length < num.length) return -1; - function ResourceList(length) { - this.length = length; - this.promise = null; - this[length - 1] = null; - } + var res = 0; + for (var i = this.length - 1; i >= 0; i--) { + var a = this.words[i] | 0; + var b = num.words[i] | 0; - ResourceList.prototype._resultCancelled = function () { - var len = this.length; - for (var i = 0; i < len; ++i) { - var item = this[i]; - if (item instanceof Promise) { - item.cancel(); - } - } - }; - - Promise.using = function () { - var len = arguments.length; - if (len < 2) return apiRejection("you must pass at least 2 arguments to Promise.using"); - var fn = arguments[len - 1]; - if (typeof fn !== "function") { - return apiRejection("expecting a function but got " + util.classString(fn)); - } - var input; - var spreadArgs = true; - if (len === 2 && Array.isArray(arguments[0])) { - input = arguments[0]; - len = input.length; - spreadArgs = false; - } else { - input = arguments; - len--; - } - var resources = new ResourceList(len); - for (var i = 0; i < len; ++i) { - var resource = input[i]; - if (Disposer.isDisposer(resource)) { - var disposer = resource; - resource = resource.promise(); - resource._setDisposable(disposer); - } else { - var maybePromise = tryConvertToPromise(resource); - if (maybePromise instanceof Promise) { - resource = maybePromise._then(maybeUnwrapDisposer, null, null, { - resources: resources, - index: i - }, undefined); - } - } - resources[i] = resource; - } + if (a === b) continue; + if (a < b) { + res = -1; + } else if (a > b) { + res = 1; + } + break; + } + return res; + }; - var reflectedResources = new Array(resources.length); - for (var i = 0; i < reflectedResources.length; ++i) { - reflectedResources[i] = Promise.resolve(resources[i]).reflect(); - } + BN.prototype.gtn = function gtn(num) { + return this.cmpn(num) === 1; + }; - var resultPromise = Promise.all(reflectedResources).then(function (inspections) { - for (var i = 0; i < inspections.length; ++i) { - var inspection = inspections[i]; - if (inspection.isRejected()) { - errorObj.e = inspection.error(); - return errorObj; - } else if (!inspection.isFulfilled()) { - resultPromise.cancel(); - return; - } - inspections[i] = inspection.value(); - } - promise._pushContext(); + BN.prototype.gt = function gt(num) { + return this.cmp(num) === 1; + }; - fn = tryCatch(fn); - var ret = spreadArgs ? fn.apply(undefined, inspections) : fn(inspections); - var promiseCreated = promise._popContext(); - debug.checkForgottenReturns(ret, promiseCreated, "Promise.using", promise); - return ret; - }); + BN.prototype.gten = function gten(num) { + return this.cmpn(num) >= 0; + }; - var promise = resultPromise.lastly(function () { - var inspection = new Promise.PromiseInspection(resultPromise); - return dispose(resources, inspection); - }); - resources.promise = promise; - promise._setOnCancel(resources); - return promise; - }; + BN.prototype.gte = function gte(num) { + return this.cmp(num) >= 0; + }; - Promise.prototype._setDisposable = function (disposer) { - this._bitField = this._bitField | 131072; - this._disposer = disposer; - }; + BN.prototype.ltn = function ltn(num) { + return this.cmpn(num) === -1; + }; - Promise.prototype._isDisposable = function () { - return (this._bitField & 131072) > 0; - }; + BN.prototype.lt = function lt(num) { + return this.cmp(num) === -1; + }; - Promise.prototype._getDisposer = function () { - return this._disposer; - }; + BN.prototype.lten = function lten(num) { + return this.cmpn(num) <= 0; + }; - Promise.prototype._unsetDisposable = function () { - this._bitField = this._bitField & ~131072; - this._disposer = undefined; - }; + BN.prototype.lte = function lte(num) { + return this.cmp(num) <= 0; + }; - Promise.prototype.disposer = function (fn) { - if (typeof fn === "function") { - return new FunctionDisposer(fn, this, createContext()); - } - throw new TypeError(); - }; - }; - }, { "./errors": 12, "./util": 36 }], 36: [function (_dereq_, module, exports) { - "use strict"; + BN.prototype.eqn = function eqn(num) { + return this.cmpn(num) === 0; + }; - var es5 = _dereq_("./es5"); - var canEvaluate = typeof navigator == "undefined"; + BN.prototype.eq = function eq(num) { + return this.cmp(num) === 0; + }; - var errorObj = { e: {} }; - var tryCatchTarget; - var globalObject = typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : this !== undefined ? this : null; + // + // A reduce context, could be using montgomery or something better, depending + // on the `m` itself. + // + BN.red = function red(num) { + return new Red(num); + }; - function tryCatcher() { - try { - var target = tryCatchTarget; - tryCatchTarget = null; - return target.apply(this, arguments); - } catch (e) { - errorObj.e = e; - return errorObj; - } - } - function tryCatch(fn) { - tryCatchTarget = fn; - return tryCatcher; - } + BN.prototype.toRed = function toRed(ctx) { + assert(!this.red, 'Already a number in reduction context'); + assert(this.negative === 0, 'red works only with positives'); + return ctx.convertTo(this)._forceRed(ctx); + }; - var inherits = function inherits(Child, Parent) { - var hasProp = {}.hasOwnProperty; + BN.prototype.fromRed = function fromRed() { + assert(this.red, 'fromRed works only with numbers in reduction context'); + return this.red.convertFrom(this); + }; - function T() { - this.constructor = Child; - this.constructor$ = Parent; - for (var propertyName in Parent.prototype) { - if (hasProp.call(Parent.prototype, propertyName) && propertyName.charAt(propertyName.length - 1) !== "$") { - this[propertyName + "$"] = Parent.prototype[propertyName]; - } - } - } - T.prototype = Parent.prototype; - Child.prototype = new T(); - return Child.prototype; - }; + BN.prototype._forceRed = function _forceRed(ctx) { + this.red = ctx; + return this; + }; - function isPrimitive(val) { - return val == null || val === true || val === false || typeof val === "string" || typeof val === "number"; - } + BN.prototype.forceRed = function forceRed(ctx) { + assert(!this.red, 'Already a number in reduction context'); + return this._forceRed(ctx); + }; - function isObject(value) { - return typeof value === "function" || (typeof value === "undefined" ? "undefined" : _typeof(value)) === "object" && value !== null; - } + BN.prototype.redAdd = function redAdd(num) { + assert(this.red, 'redAdd works only with red numbers'); + return this.red.add(this, num); + }; - function maybeWrapAsError(maybeError) { - if (!isPrimitive(maybeError)) return maybeError; + BN.prototype.redIAdd = function redIAdd(num) { + assert(this.red, 'redIAdd works only with red numbers'); + return this.red.iadd(this, num); + }; - return new Error(safeToString(maybeError)); - } + BN.prototype.redSub = function redSub(num) { + assert(this.red, 'redSub works only with red numbers'); + return this.red.sub(this, num); + }; - function withAppended(target, appendee) { - var len = target.length; - var ret = new Array(len + 1); - var i; - for (i = 0; i < len; ++i) { - ret[i] = target[i]; - } - ret[i] = appendee; - return ret; - } + BN.prototype.redISub = function redISub(num) { + assert(this.red, 'redISub works only with red numbers'); + return this.red.isub(this, num); + }; - function getDataPropertyOrDefault(obj, key, defaultValue) { - if (es5.isES5) { - var desc = Object.getOwnPropertyDescriptor(obj, key); + BN.prototype.redShl = function redShl(num) { + assert(this.red, 'redShl works only with red numbers'); + return this.red.shl(this, num); + }; - if (desc != null) { - return desc.get == null && desc.set == null ? desc.value : defaultValue; - } - } else { - return {}.hasOwnProperty.call(obj, key) ? obj[key] : undefined; - } - } + BN.prototype.redMul = function redMul(num) { + assert(this.red, 'redMul works only with red numbers'); + this.red._verify2(this, num); + return this.red.mul(this, num); + }; - function notEnumerableProp(obj, name, value) { - if (isPrimitive(obj)) return obj; - var descriptor = { - value: value, - configurable: true, - enumerable: false, - writable: true - }; - es5.defineProperty(obj, name, descriptor); - return obj; - } + BN.prototype.redIMul = function redIMul(num) { + assert(this.red, 'redMul works only with red numbers'); + this.red._verify2(this, num); + return this.red.imul(this, num); + }; - function thrower(r) { - throw r; - } + BN.prototype.redSqr = function redSqr() { + assert(this.red, 'redSqr works only with red numbers'); + this.red._verify1(this); + return this.red.sqr(this); + }; - var inheritedDataKeys = function () { - var excludedPrototypes = [Array.prototype, Object.prototype, Function.prototype]; + BN.prototype.redISqr = function redISqr() { + assert(this.red, 'redISqr works only with red numbers'); + this.red._verify1(this); + return this.red.isqr(this); + }; - var isExcludedProto = function isExcludedProto(val) { - for (var i = 0; i < excludedPrototypes.length; ++i) { - if (excludedPrototypes[i] === val) { - return true; - } - } - return false; - }; + // Square root over p + BN.prototype.redSqrt = function redSqrt() { + assert(this.red, 'redSqrt works only with red numbers'); + this.red._verify1(this); + return this.red.sqrt(this); + }; - if (es5.isES5) { - var getKeys = Object.getOwnPropertyNames; - return function (obj) { - var ret = []; - var visitedKeys = Object.create(null); - while (obj != null && !isExcludedProto(obj)) { - var keys; - try { - keys = getKeys(obj); - } catch (e) { - return ret; - } - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - if (visitedKeys[key]) continue; - visitedKeys[key] = true; - var desc = Object.getOwnPropertyDescriptor(obj, key); - if (desc != null && desc.get == null && desc.set == null) { - ret.push(key); - } - } - obj = es5.getPrototypeOf(obj); - } - return ret; - }; - } else { - var hasProp = {}.hasOwnProperty; - return function (obj) { - if (isExcludedProto(obj)) return []; - var ret = []; + BN.prototype.redInvm = function redInvm() { + assert(this.red, 'redInvm works only with red numbers'); + this.red._verify1(this); + return this.red.invm(this); + }; - /*jshint forin:false */ - enumeration: for (var key in obj) { - if (hasProp.call(obj, key)) { - ret.push(key); - } else { - for (var i = 0; i < excludedPrototypes.length; ++i) { - if (hasProp.call(excludedPrototypes[i], key)) { - continue enumeration; - } - } - ret.push(key); - } - } - return ret; - }; - } - }(); + // Return negative clone of `this` % `red modulo` + BN.prototype.redNeg = function redNeg() { + assert(this.red, 'redNeg works only with red numbers'); + this.red._verify1(this); + return this.red.neg(this); + }; - var thisAssignmentPattern = /this\s*\.\s*\S+\s*=/; - function isClass(fn) { - try { - if (typeof fn === "function") { - var keys = es5.names(fn.prototype); + BN.prototype.redPow = function redPow(num) { + assert(this.red && !num.red, 'redPow(normalNum)'); + this.red._verify1(this); + return this.red.pow(this, num); + }; - var hasMethods = es5.isES5 && keys.length > 1; - var hasMethodsOtherThanConstructor = keys.length > 0 && !(keys.length === 1 && keys[0] === "constructor"); - var hasThisAssignmentAndStaticMethods = thisAssignmentPattern.test(fn + "") && es5.names(fn).length > 0; + // Prime numbers with efficient reduction + var primes = { + k256: null, + p224: null, + p192: null, + p25519: null + }; - if (hasMethods || hasMethodsOtherThanConstructor || hasThisAssignmentAndStaticMethods) { - return true; - } - } - return false; - } catch (e) { - return false; - } - } + // Pseudo-Mersenne prime + function MPrime(name, p) { + // P = 2 ^ N - K + this.name = name; + this.p = new BN(p, 16); + this.n = this.p.bitLength(); + this.k = new BN(1).iushln(this.n).isub(this.p); - function toFastProperties(obj) { - /*jshint -W027,-W055,-W031*/ - function FakeConstructor() {} - FakeConstructor.prototype = obj; - var l = 8; - while (l--) { - new FakeConstructor(); - }return obj; - eval(obj); - } + this.tmp = this._tmp(); + } - var rident = /^[a-z$_][a-z$_0-9]*$/i; - function isIdentifier(str) { - return rident.test(str); - } + MPrime.prototype._tmp = function _tmp() { + var tmp = new BN(null); + tmp.words = new Array(Math.ceil(this.n / 13)); + return tmp; + }; - function filledRange(count, prefix, suffix) { - var ret = new Array(count); - for (var i = 0; i < count; ++i) { - ret[i] = prefix + i + suffix; - } - return ret; - } + MPrime.prototype.ireduce = function ireduce(num) { + // Assumes that `num` is less than `P^2` + // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P) + var r = num; + var rlen; - function safeToString(obj) { - try { - return obj + ""; - } catch (e) { - return "[no string representation]"; - } - } + do { + this.split(r, this.tmp); + r = this.imulK(r); + r = r.iadd(this.tmp); + rlen = r.bitLength(); + } while (rlen > this.n); - function isError(obj) { - return obj !== null && (typeof obj === "undefined" ? "undefined" : _typeof(obj)) === "object" && typeof obj.message === "string" && typeof obj.name === "string"; - } + var cmp = rlen < this.n ? -1 : r.ucmp(this.p); + if (cmp === 0) { + r.words[0] = 0; + r.length = 1; + } else if (cmp > 0) { + r.isub(this.p); + } else { + r.strip(); + } - function markAsOriginatingFromRejection(e) { - try { - notEnumerableProp(e, "isOperational", true); - } catch (ignore) {} - } + return r; + }; - function originatesFromRejection(e) { - if (e == null) return false; - return e instanceof Error["__BluebirdErrorTypes__"].OperationalError || e["isOperational"] === true; - } + MPrime.prototype.split = function split(input, out) { + input.iushrn(this.n, 0, out); + }; - function canAttachTrace(obj) { - return isError(obj) && es5.propertyIsWritable(obj, "stack"); - } + MPrime.prototype.imulK = function imulK(num) { + return num.imul(this.k); + }; - var ensureErrorObject = function () { - if (!("stack" in new Error())) { - return function (value) { - if (canAttachTrace(value)) return value; - try { - throw new Error(safeToString(value)); - } catch (err) { - return err; - } - }; - } else { - return function (value) { - if (canAttachTrace(value)) return value; - return new Error(safeToString(value)); - }; - } - }(); + function K256() { + MPrime.call(this, 'k256', 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f'); + } + inherits(K256, MPrime); - function classString(obj) { - return {}.toString.call(obj); - } + K256.prototype.split = function split(input, output) { + // 256 = 9 * 26 + 22 + var mask = 0x3fffff; - function copyDescriptors(from, to, filter) { - var keys = es5.names(from); - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - if (filter(key)) { - try { - es5.defineProperty(to, key, es5.getDescriptor(from, key)); - } catch (ignore) {} - } - } - } + var outLen = Math.min(input.length, 9); + for (var i = 0; i < outLen; i++) { + output.words[i] = input.words[i]; + } + output.length = outLen; - var asArray = function asArray(v) { - if (es5.isArray(v)) { - return v; - } - return null; - }; + if (input.length <= 9) { + input.words[0] = 0; + input.length = 1; + return; + } - if (typeof Symbol !== "undefined" && Symbol.iterator) { - var ArrayFrom = typeof Array.from === "function" ? function (v) { - return Array.from(v); - } : function (v) { - var ret = []; - var it = v[Symbol.iterator](); - var itResult; - while (!(itResult = it.next()).done) { - ret.push(itResult.value); - } - return ret; - }; + // Shift by 9 limbs + var prev = input.words[9]; + output.words[output.length++] = prev & mask; - asArray = function asArray(v) { - if (es5.isArray(v)) { - return v; - } else if (v != null && typeof v[Symbol.iterator] === "function") { - return ArrayFrom(v); - } - return null; - }; - } + for (i = 10; i < input.length; i++) { + var next = input.words[i] | 0; + input.words[i - 10] = (next & mask) << 4 | prev >>> 22; + prev = next; + } + prev >>>= 22; + input.words[i - 10] = prev; + if (prev === 0 && input.length > 10) { + input.length -= 10; + } else { + input.length -= 9; + } + }; - var isNode = typeof process !== "undefined" && classString(process).toLowerCase() === "[object process]"; + K256.prototype.imulK = function imulK(num) { + // K = 0x1000003d1 = [ 0x40, 0x3d1 ] + num.words[num.length] = 0; + num.words[num.length + 1] = 0; + num.length += 2; - function env(key, def) { - return isNode ? process.env[key] : def; - } + // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390 + var lo = 0; + for (var i = 0; i < num.length; i++) { + var w = num.words[i] | 0; + lo += w * 0x3d1; + num.words[i] = lo & 0x3ffffff; + lo = w * 0x40 + (lo / 0x4000000 | 0); + } - var ret = { - isClass: isClass, - isIdentifier: isIdentifier, - inheritedDataKeys: inheritedDataKeys, - getDataPropertyOrDefault: getDataPropertyOrDefault, - thrower: thrower, - isArray: es5.isArray, - asArray: asArray, - notEnumerableProp: notEnumerableProp, - isPrimitive: isPrimitive, - isObject: isObject, - isError: isError, - canEvaluate: canEvaluate, - errorObj: errorObj, - tryCatch: tryCatch, - inherits: inherits, - withAppended: withAppended, - maybeWrapAsError: maybeWrapAsError, - toFastProperties: toFastProperties, - filledRange: filledRange, - toString: safeToString, - canAttachTrace: canAttachTrace, - ensureErrorObject: ensureErrorObject, - originatesFromRejection: originatesFromRejection, - markAsOriginatingFromRejection: markAsOriginatingFromRejection, - classString: classString, - copyDescriptors: copyDescriptors, - hasDevTools: typeof chrome !== "undefined" && chrome && typeof chrome.loadTimes === "function", - isNode: isNode, - env: env, - global: globalObject - }; - ret.isRecentNode = ret.isNode && function () { - var version = process.versions.node.split(".").map(Number); - return version[0] === 0 && version[1] > 10 || version[0] > 0; - }(); + // Fast length reduction + if (num.words[num.length - 1] === 0) { + num.length--; + if (num.words[num.length - 1] === 0) { + num.length--; + } + } + return num; + }; - if (ret.isNode) ret.toFastProperties(process); + function P224() { + MPrime.call(this, 'p224', 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001'); + } + inherits(P224, MPrime); - try { - throw new Error(); - } catch (e) { - ret.lastLineError = e; + function P192() { + MPrime.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff'); + } + inherits(P192, MPrime); + + function P25519() { + // 2 ^ 255 - 19 + MPrime.call(this, '25519', '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed'); + } + inherits(P25519, MPrime); + + P25519.prototype.imulK = function imulK(num) { + // K = 0x13 + var carry = 0; + for (var i = 0; i < num.length; i++) { + var hi = (num.words[i] | 0) * 0x13 + carry; + var lo = hi & 0x3ffffff; + hi >>>= 26; + + num.words[i] = lo; + carry = hi; + } + if (carry !== 0) { + num.words[num.length++] = carry; + } + return num; + }; + + // Exported mostly for testing purposes, use plain name instead + BN._prime = function prime(name) { + // Cached version of prime + if (primes[name]) return primes[name]; + + var prime; + if (name === 'k256') { + prime = new K256(); + } else if (name === 'p224') { + prime = new P224(); + } else if (name === 'p192') { + prime = new P192(); + } else if (name === 'p25519') { + prime = new P25519(); + } else { + throw new Error('Unknown prime ' + name); + } + primes[name] = prime; + + return prime; + }; + + // + // Base reduction engine + // + function Red(m) { + if (typeof m === 'string') { + var prime = BN._prime(m); + this.m = prime.p; + this.prime = prime; + } else { + assert(m.gtn(1), 'modulus must be greater than 1'); + this.m = m; + this.prime = null; + } + } + + Red.prototype._verify1 = function _verify1(a) { + assert(a.negative === 0, 'red works only with positives'); + assert(a.red, 'red works only with red numbers'); + }; + + Red.prototype._verify2 = function _verify2(a, b) { + assert((a.negative | b.negative) === 0, 'red works only with positives'); + assert(a.red && a.red === b.red, 'red works only with red numbers'); + }; + + Red.prototype.imod = function imod(a) { + if (this.prime) return this.prime.ireduce(a)._forceRed(this); + return a.umod(this.m)._forceRed(this); + }; + + Red.prototype.neg = function neg(a) { + if (a.isZero()) { + return a.clone(); + } + + return this.m.sub(a)._forceRed(this); + }; + + Red.prototype.add = function add(a, b) { + this._verify2(a, b); + + var res = a.add(b); + if (res.cmp(this.m) >= 0) { + res.isub(this.m); + } + return res._forceRed(this); + }; + + Red.prototype.iadd = function iadd(a, b) { + this._verify2(a, b); + + var res = a.iadd(b); + if (res.cmp(this.m) >= 0) { + res.isub(this.m); + } + return res; + }; + + Red.prototype.sub = function sub(a, b) { + this._verify2(a, b); + + var res = a.sub(b); + if (res.cmpn(0) < 0) { + res.iadd(this.m); + } + return res._forceRed(this); + }; + + Red.prototype.isub = function isub(a, b) { + this._verify2(a, b); + + var res = a.isub(b); + if (res.cmpn(0) < 0) { + res.iadd(this.m); + } + return res; + }; + + Red.prototype.shl = function shl(a, num) { + this._verify1(a); + return this.imod(a.ushln(num)); + }; + + Red.prototype.imul = function imul(a, b) { + this._verify2(a, b); + return this.imod(a.imul(b)); + }; + + Red.prototype.mul = function mul(a, b) { + this._verify2(a, b); + return this.imod(a.mul(b)); + }; + + Red.prototype.isqr = function isqr(a) { + return this.imul(a, a.clone()); + }; + + Red.prototype.sqr = function sqr(a) { + return this.mul(a, a); + }; + + Red.prototype.sqrt = function sqrt(a) { + if (a.isZero()) return a.clone(); + + var mod3 = this.m.andln(3); + assert(mod3 % 2 === 1); + + // Fast case + if (mod3 === 3) { + var pow = this.m.add(new BN(1)).iushrn(2); + return this.pow(a, pow); + } + + // Tonelli-Shanks algorithm (Totally unoptimized and slow) + // + // Find Q and S, that Q * 2 ^ S = (P - 1) + var q = this.m.subn(1); + var s = 0; + while (!q.isZero() && q.andln(1) === 0) { + s++; + q.iushrn(1); + } + assert(!q.isZero()); + + var one = new BN(1).toRed(this); + var nOne = one.redNeg(); + + // Find quadratic non-residue + // NOTE: Max is such because of generalized Riemann hypothesis. + var lpow = this.m.subn(1).iushrn(1); + var z = this.m.bitLength(); + z = new BN(2 * z * z).toRed(this); + + while (this.pow(z, lpow).cmp(nOne) !== 0) { + z.redIAdd(nOne); + } + + var c = this.pow(z, q); + var r = this.pow(a, q.addn(1).iushrn(1)); + var t = this.pow(a, q); + var m = s; + while (t.cmp(one) !== 0) { + var tmp = t; + for (var i = 0; tmp.cmp(one) !== 0; i++) { + tmp = tmp.redSqr(); + } + assert(i < m); + var b = this.pow(c, new BN(1).iushln(m - i - 1)); + + r = r.redMul(b); + c = b.redSqr(); + t = t.redMul(c); + m = i; + } + + return r; + }; + + Red.prototype.invm = function invm(a) { + var inv = a._invmp(this.m); + if (inv.negative !== 0) { + inv.negative = 0; + return this.imod(inv).redNeg(); + } else { + return this.imod(inv); + } + }; + + Red.prototype.pow = function pow(a, num) { + if (num.isZero()) return new BN(1).toRed(this); + if (num.cmpn(1) === 0) return a.clone(); + + var windowSize = 4; + var wnd = new Array(1 << windowSize); + wnd[0] = new BN(1).toRed(this); + wnd[1] = a; + for (var i = 2; i < wnd.length; i++) { + wnd[i] = this.mul(wnd[i - 1], a); + } + + var res = wnd[0]; + var current = 0; + var currentLen = 0; + var start = num.bitLength() % 26; + if (start === 0) { + start = 26; + } + + for (i = num.length - 1; i >= 0; i--) { + var word = num.words[i]; + for (var j = start - 1; j >= 0; j--) { + var bit = word >> j & 1; + if (res !== wnd[0]) { + res = this.sqr(res); } - module.exports = ret; - }, { "./es5": 13 }] }, {}, [4])(4); - });;if (typeof window !== 'undefined' && window !== null) { - window.P = window.Promise; - } else if (typeof self !== 'undefined' && self !== null) { - self.P = self.Promise; + + if (bit === 0 && current === 0) { + currentLen = 0; + continue; + } + + current <<= 1; + current |= bit; + currentLen++; + if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue; + + res = this.mul(res, wnd[current]); + currentLen = 0; + current = 0; + } + start = 26; + } + + return res; + }; + + Red.prototype.convertTo = function convertTo(num) { + var r = num.umod(this.m); + + return r === num ? r.clone() : r; + }; + + Red.prototype.convertFrom = function convertFrom(num) { + var res = num.clone(); + res.red = null; + return res; + }; + + // + // Montgomery method engine + // + + BN.mont = function mont(num) { + return new Mont(num); + }; + + function Mont(m) { + Red.call(this, m); + + this.shift = this.m.bitLength(); + if (this.shift % 26 !== 0) { + this.shift += 26 - this.shift % 26; + } + + this.r = new BN(1).iushln(this.shift); + this.r2 = this.imod(this.r.sqr()); + this.rinv = this.r._invmp(this.m); + + this.minv = this.rinv.mul(this.r).isubn(1).div(this.m); + this.minv = this.minv.umod(this.r); + this.minv = this.r.sub(this.minv); } - }).call(this, require('_process'), typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}); - }, { "_process": 120 }], 230: [function (require, module, exports) { + inherits(Mont, Red); + + Mont.prototype.convertTo = function convertTo(num) { + return this.imod(num.ushln(this.shift)); + }; + + Mont.prototype.convertFrom = function convertFrom(num) { + var r = this.imod(num.mul(this.rinv)); + r.red = null; + return r; + }; + + Mont.prototype.imul = function imul(a, b) { + if (a.isZero() || b.isZero()) { + a.words[0] = 0; + a.length = 1; + return a; + } + + var t = a.imul(b); + var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m); + var u = t.isub(c).iushrn(this.shift); + var res = u; + + if (u.cmp(this.m) >= 0) { + res = u.isub(this.m); + } else if (u.cmpn(0) < 0) { + res = u.iadd(this.m); + } + + return res._forceRed(this); + }; + + Mont.prototype.mul = function mul(a, b) { + if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this); + + var t = a.mul(b); + var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m); + var u = t.isub(c).iushrn(this.shift); + var res = u; + if (u.cmp(this.m) >= 0) { + res = u.isub(this.m); + } else if (u.cmpn(0) < 0) { + res = u.iadd(this.m); + } + + return res._forceRed(this); + }; + + Mont.prototype.invm = function invm(a) { + // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R + var res = this.imod(a._invmp(this.m).mul(this.r2)); + return res._forceRed(this); + }; + })(typeof module === 'undefined' || module, this); + }, { "buffer": 17 }], 231: [function (require, module, exports) { arguments[4][16][0].apply(exports, arguments); - }, { "crypto": 17, "dup": 16 }], 231: [function (require, module, exports) { + }, { "crypto": 17, "dup": 16 }], 232: [function (require, module, exports) { arguments[4][18][0].apply(exports, arguments); - }, { "dup": 18, "safe-buffer": 347 }], 232: [function (require, module, exports) { + }, { "dup": 18, "safe-buffer": 340 }], 233: [function (require, module, exports) { arguments[4][19][0].apply(exports, arguments); - }, { "./aes": 231, "./ghash": 236, "./incr32": 237, "buffer-xor": 260, "cipher-base": 261, "dup": 19, "inherits": 320, "safe-buffer": 347 }], 233: [function (require, module, exports) { + }, { "./aes": 232, "./ghash": 237, "./incr32": 238, "buffer-xor": 259, "cipher-base": 260, "dup": 19, "inherits": 315, "safe-buffer": 340 }], 234: [function (require, module, exports) { arguments[4][20][0].apply(exports, arguments); - }, { "./decrypter": 234, "./encrypter": 235, "./modes/list.json": 245, "dup": 20 }], 234: [function (require, module, exports) { + }, { "./decrypter": 235, "./encrypter": 236, "./modes/list.json": 246, "dup": 20 }], 235: [function (require, module, exports) { arguments[4][21][0].apply(exports, arguments); - }, { "./aes": 231, "./authCipher": 232, "./modes": 244, "./streamCipher": 247, "cipher-base": 261, "dup": 21, "evp_bytestokey": 305, "inherits": 320, "safe-buffer": 347 }], 235: [function (require, module, exports) { + }, { "./aes": 232, "./authCipher": 233, "./modes": 245, "./streamCipher": 248, "cipher-base": 260, "dup": 21, "evp_bytestokey": 300, "inherits": 315, "safe-buffer": 340 }], 236: [function (require, module, exports) { arguments[4][22][0].apply(exports, arguments); - }, { "./aes": 231, "./authCipher": 232, "./modes": 244, "./streamCipher": 247, "cipher-base": 261, "dup": 22, "evp_bytestokey": 305, "inherits": 320, "safe-buffer": 347 }], 236: [function (require, module, exports) { + }, { "./aes": 232, "./authCipher": 233, "./modes": 245, "./streamCipher": 248, "cipher-base": 260, "dup": 22, "evp_bytestokey": 300, "inherits": 315, "safe-buffer": 340 }], 237: [function (require, module, exports) { arguments[4][23][0].apply(exports, arguments); - }, { "dup": 23, "safe-buffer": 347 }], 237: [function (require, module, exports) { + }, { "dup": 23, "safe-buffer": 340 }], 238: [function (require, module, exports) { arguments[4][24][0].apply(exports, arguments); - }, { "dup": 24 }], 238: [function (require, module, exports) { + }, { "dup": 24 }], 239: [function (require, module, exports) { arguments[4][25][0].apply(exports, arguments); - }, { "buffer-xor": 260, "dup": 25 }], 239: [function (require, module, exports) { + }, { "buffer-xor": 259, "dup": 25 }], 240: [function (require, module, exports) { arguments[4][26][0].apply(exports, arguments); - }, { "buffer-xor": 260, "dup": 26, "safe-buffer": 347 }], 240: [function (require, module, exports) { + }, { "buffer-xor": 259, "dup": 26, "safe-buffer": 340 }], 241: [function (require, module, exports) { arguments[4][27][0].apply(exports, arguments); - }, { "dup": 27, "safe-buffer": 347 }], 241: [function (require, module, exports) { + }, { "dup": 27, "safe-buffer": 340 }], 242: [function (require, module, exports) { arguments[4][28][0].apply(exports, arguments); - }, { "dup": 28, "safe-buffer": 347 }], 242: [function (require, module, exports) { + }, { "dup": 28, "safe-buffer": 340 }], 243: [function (require, module, exports) { arguments[4][29][0].apply(exports, arguments); - }, { "../incr32": 237, "buffer-xor": 260, "dup": 29, "safe-buffer": 347 }], 243: [function (require, module, exports) { + }, { "../incr32": 238, "buffer-xor": 259, "dup": 29, "safe-buffer": 340 }], 244: [function (require, module, exports) { arguments[4][30][0].apply(exports, arguments); - }, { "dup": 30 }], 244: [function (require, module, exports) { + }, { "dup": 30 }], 245: [function (require, module, exports) { arguments[4][31][0].apply(exports, arguments); - }, { "./cbc": 238, "./cfb": 239, "./cfb1": 240, "./cfb8": 241, "./ctr": 242, "./ecb": 243, "./list.json": 245, "./ofb": 246, "dup": 31 }], 245: [function (require, module, exports) { + }, { "./cbc": 239, "./cfb": 240, "./cfb1": 241, "./cfb8": 242, "./ctr": 243, "./ecb": 244, "./list.json": 246, "./ofb": 247, "dup": 31 }], 246: [function (require, module, exports) { arguments[4][32][0].apply(exports, arguments); - }, { "dup": 32 }], 246: [function (require, module, exports) { + }, { "dup": 32 }], 247: [function (require, module, exports) { (function (Buffer) { var xor = require('buffer-xor'); @@ -41163,11 +41141,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return xor(chunk, pad); }; }).call(this, require("buffer").Buffer); - }, { "buffer": 47, "buffer-xor": 260 }], 247: [function (require, module, exports) { + }, { "buffer": 48, "buffer-xor": 259 }], 248: [function (require, module, exports) { arguments[4][34][0].apply(exports, arguments); - }, { "./aes": 231, "cipher-base": 261, "dup": 34, "inherits": 320, "safe-buffer": 347 }], 248: [function (require, module, exports) { + }, { "./aes": 232, "cipher-base": 260, "dup": 34, "inherits": 315, "safe-buffer": 340 }], 249: [function (require, module, exports) { arguments[4][35][0].apply(exports, arguments); - }, { "browserify-aes/browser": 233, "browserify-aes/modes": 244, "browserify-des": 249, "browserify-des/modes": 250, "dup": 35, "evp_bytestokey": 305 }], 249: [function (require, module, exports) { + }, { "browserify-aes/browser": 234, "browserify-aes/modes": 245, "browserify-des": 250, "browserify-des/modes": 251, "dup": 35, "evp_bytestokey": 300 }], 250: [function (require, module, exports) { (function (Buffer) { var CipherBase = require('cipher-base'); var des = require('des.js'); @@ -41213,9 +41191,9 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return new Buffer(this._des.final()); }; }).call(this, require("buffer").Buffer); - }, { "buffer": 47, "cipher-base": 261, "des.js": 270, "inherits": 320 }], 250: [function (require, module, exports) { + }, { "buffer": 48, "cipher-base": 260, "des.js": 268, "inherits": 315 }], 251: [function (require, module, exports) { arguments[4][37][0].apply(exports, arguments); - }, { "dup": 37 }], 251: [function (require, module, exports) { + }, { "dup": 37 }], 252: [function (require, module, exports) { (function (Buffer) { var bn = require('bn.js'); var randomBytes = require('randombytes'); @@ -41257,9 +41235,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return r; } }).call(this, require("buffer").Buffer); - }, { "bn.js": 252, "buffer": 47, "randombytes": 344 }], 252: [function (require, module, exports) { - arguments[4][228][0].apply(exports, arguments); - }, { "buffer": 17, "dup": 228 }], 253: [function (require, module, exports) { + }, { "bn.js": 230, "buffer": 48, "randombytes": 337 }], 253: [function (require, module, exports) { arguments[4][39][0].apply(exports, arguments); }, { "./browser/algorithms.json": 254, "dup": 39 }], 254: [function (require, module, exports) { arguments[4][40][0].apply(exports, arguments); @@ -41359,7 +41335,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol createVerify: createVerify }; }).call(this, require("buffer").Buffer); - }, { "./algorithms.json": 254, "./sign": 257, "./verify": 258, "buffer": 47, "create-hash": 264, "inherits": 320, "stream": 152 }], 257: [function (require, module, exports) { + }, { "./algorithms.json": 254, "./sign": 257, "./verify": 258, "buffer": 48, "create-hash": 262, "inherits": 315, "stream": 139 }], 257: [function (require, module, exports) { (function (Buffer) { // much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js var createHmac = require('create-hmac'); @@ -41508,7 +41484,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol module.exports.getKey = getKey; module.exports.makeKey = makeKey; }).call(this, require("buffer").Buffer); - }, { "./curves.json": 255, "bn.js": 259, "browserify-rsa": 251, "buffer": 47, "create-hmac": 267, "elliptic": 281, "parse-asn1": 331 }], 258: [function (require, module, exports) { + }, { "./curves.json": 255, "bn.js": 230, "browserify-rsa": 252, "buffer": 48, "create-hmac": 265, "elliptic": 278, "parse-asn1": 325 }], 258: [function (require, module, exports) { (function (Buffer) { // much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js var BN = require('bn.js'); @@ -41590,9 +41566,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol module.exports = verify; }).call(this, require("buffer").Buffer); - }, { "./curves.json": 255, "bn.js": 259, "buffer": 47, "elliptic": 281, "parse-asn1": 331 }], 259: [function (require, module, exports) { - arguments[4][228][0].apply(exports, arguments); - }, { "buffer": 17, "dup": 228 }], 260: [function (require, module, exports) { + }, { "./curves.json": 255, "bn.js": 230, "buffer": 48, "elliptic": 278, "parse-asn1": 325 }], 259: [function (require, module, exports) { (function (Buffer) { module.exports = function xor(a, b) { var length = Math.min(a.length, b.length); @@ -41605,9 +41579,9 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return buffer; }; }).call(this, require("buffer").Buffer); - }, { "buffer": 47 }], 261: [function (require, module, exports) { - arguments[4][48][0].apply(exports, arguments); - }, { "dup": 48, "inherits": 320, "safe-buffer": 347, "stream": 152, "string_decoder": 153 }], 262: [function (require, module, exports) { + }, { "buffer": 48 }], 260: [function (require, module, exports) { + arguments[4][49][0].apply(exports, arguments); + }, { "dup": 49, "inherits": 315, "safe-buffer": 340, "stream": 139, "string_decoder": 46 }], 261: [function (require, module, exports) { (function (Buffer) { var elliptic = require('elliptic'); var BN = require('bn.js'); @@ -41732,9 +41706,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol } } }).call(this, require("buffer").Buffer); - }, { "bn.js": 263, "buffer": 47, "elliptic": 281 }], 263: [function (require, module, exports) { - arguments[4][228][0].apply(exports, arguments); - }, { "buffer": 17, "dup": 228 }], 264: [function (require, module, exports) { + }, { "bn.js": 230, "buffer": 48, "elliptic": 278 }], 262: [function (require, module, exports) { (function (Buffer) { 'use strict'; @@ -41790,7 +41762,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return new Hash(sha(alg)); }; }).call(this, require("buffer").Buffer); - }, { "./md5": 266, "buffer": 47, "cipher-base": 261, "inherits": 320, "ripemd160": 346, "sha.js": 351 }], 265: [function (require, module, exports) { + }, { "./md5": 264, "buffer": 48, "cipher-base": 260, "inherits": 315, "ripemd160": 339, "sha.js": 344 }], 263: [function (require, module, exports) { (function (Buffer) { 'use strict'; @@ -41824,27 +41796,27 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return buf; }; }).call(this, require("buffer").Buffer); - }, { "buffer": 47 }], 266: [function (require, module, exports) { - arguments[4][53][0].apply(exports, arguments); - }, { "./make-hash": 265, "dup": 53 }], 267: [function (require, module, exports) { + }, { "buffer": 48 }], 264: [function (require, module, exports) { arguments[4][54][0].apply(exports, arguments); - }, { "./legacy": 268, "cipher-base": 261, "create-hash/md5": 266, "dup": 54, "inherits": 320, "ripemd160": 346, "safe-buffer": 347, "sha.js": 351 }], 268: [function (require, module, exports) { + }, { "./make-hash": 263, "dup": 54 }], 265: [function (require, module, exports) { arguments[4][55][0].apply(exports, arguments); - }, { "cipher-base": 261, "dup": 55, "inherits": 320, "safe-buffer": 347 }], 269: [function (require, module, exports) { + }, { "./legacy": 266, "cipher-base": 260, "create-hash/md5": 264, "dup": 55, "inherits": 315, "ripemd160": 339, "safe-buffer": 340, "sha.js": 344 }], 266: [function (require, module, exports) { arguments[4][56][0].apply(exports, arguments); - }, { "browserify-cipher": 248, "browserify-sign": 256, "browserify-sign/algos": 253, "create-ecdh": 262, "create-hash": 264, "create-hmac": 267, "diffie-hellman": 276, "dup": 56, "pbkdf2": 332, "public-encrypt": 337, "randombytes": 344, "randomfill": 345 }], 270: [function (require, module, exports) { + }, { "cipher-base": 260, "dup": 56, "inherits": 315, "safe-buffer": 340 }], 267: [function (require, module, exports) { arguments[4][57][0].apply(exports, arguments); - }, { "./des/cbc": 271, "./des/cipher": 272, "./des/des": 273, "./des/ede": 274, "./des/utils": 275, "dup": 57 }], 271: [function (require, module, exports) { + }, { "browserify-cipher": 249, "browserify-sign": 256, "browserify-sign/algos": 253, "create-ecdh": 261, "create-hash": 262, "create-hmac": 265, "diffie-hellman": 274, "dup": 57, "pbkdf2": 326, "public-encrypt": 331, "randombytes": 337, "randomfill": 338 }], 268: [function (require, module, exports) { arguments[4][58][0].apply(exports, arguments); - }, { "dup": 58, "inherits": 320, "minimalistic-assert": 325 }], 272: [function (require, module, exports) { + }, { "./des/cbc": 269, "./des/cipher": 270, "./des/des": 271, "./des/ede": 272, "./des/utils": 273, "dup": 58 }], 269: [function (require, module, exports) { arguments[4][59][0].apply(exports, arguments); - }, { "dup": 59, "minimalistic-assert": 325 }], 273: [function (require, module, exports) { + }, { "dup": 59, "inherits": 315, "minimalistic-assert": 319 }], 270: [function (require, module, exports) { arguments[4][60][0].apply(exports, arguments); - }, { "../des": 270, "dup": 60, "inherits": 320, "minimalistic-assert": 325 }], 274: [function (require, module, exports) { + }, { "dup": 60, "minimalistic-assert": 319 }], 271: [function (require, module, exports) { arguments[4][61][0].apply(exports, arguments); - }, { "../des": 270, "dup": 61, "inherits": 320, "minimalistic-assert": 325 }], 275: [function (require, module, exports) { + }, { "../des": 268, "dup": 61, "inherits": 315, "minimalistic-assert": 319 }], 272: [function (require, module, exports) { arguments[4][62][0].apply(exports, arguments); - }, { "dup": 62 }], 276: [function (require, module, exports) { + }, { "../des": 268, "dup": 62, "inherits": 315, "minimalistic-assert": 319 }], 273: [function (require, module, exports) { + arguments[4][63][0].apply(exports, arguments); + }, { "dup": 63 }], 274: [function (require, module, exports) { (function (Buffer) { var generatePrime = require('./lib/generatePrime'); var primes = require('./lib/primes.json'); @@ -41889,7 +41861,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol exports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman; exports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman; }).call(this, require("buffer").Buffer); - }, { "./lib/dh": 277, "./lib/generatePrime": 278, "./lib/primes.json": 279, "buffer": 47 }], 277: [function (require, module, exports) { + }, { "./lib/dh": 275, "./lib/generatePrime": 276, "./lib/primes.json": 277, "buffer": 48 }], 275: [function (require, module, exports) { (function (Buffer) { var BN = require('bn.js'); var MillerRabin = require('miller-rabin'); @@ -42053,85 +42025,63 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol } } }).call(this, require("buffer").Buffer); - }, { "./generatePrime": 278, "bn.js": 280, "buffer": 47, "miller-rabin": 323, "randombytes": 344 }], 278: [function (require, module, exports) { - arguments[4][65][0].apply(exports, arguments); - }, { "bn.js": 280, "dup": 65, "miller-rabin": 323, "randombytes": 344 }], 279: [function (require, module, exports) { + }, { "./generatePrime": 276, "bn.js": 230, "buffer": 48, "miller-rabin": 318, "randombytes": 337 }], 276: [function (require, module, exports) { arguments[4][66][0].apply(exports, arguments); - }, { "dup": 66 }], 280: [function (require, module, exports) { - arguments[4][228][0].apply(exports, arguments); - }, { "buffer": 17, "dup": 228 }], 281: [function (require, module, exports) { + }, { "bn.js": 230, "dup": 66, "miller-rabin": 318, "randombytes": 337 }], 277: [function (require, module, exports) { arguments[4][67][0].apply(exports, arguments); - }, { "../package.json": 297, "./elliptic/curve": 284, "./elliptic/curves": 287, "./elliptic/ec": 288, "./elliptic/eddsa": 291, "./elliptic/utils": 295, "brorand": 230, "dup": 67 }], 282: [function (require, module, exports) { + }, { "dup": 67 }], 278: [function (require, module, exports) { arguments[4][68][0].apply(exports, arguments); - }, { "../../elliptic": 281, "bn.js": 296, "dup": 68 }], 283: [function (require, module, exports) { + }, { "../package.json": 293, "./elliptic/curve": 281, "./elliptic/curves": 284, "./elliptic/ec": 285, "./elliptic/eddsa": 288, "./elliptic/utils": 292, "brorand": 231, "dup": 68 }], 279: [function (require, module, exports) { arguments[4][69][0].apply(exports, arguments); - }, { "../../elliptic": 281, "../curve": 284, "bn.js": 296, "dup": 69, "inherits": 320 }], 284: [function (require, module, exports) { + }, { "../../elliptic": 278, "bn.js": 230, "dup": 69 }], 280: [function (require, module, exports) { arguments[4][70][0].apply(exports, arguments); - }, { "./base": 282, "./edwards": 283, "./mont": 285, "./short": 286, "dup": 70 }], 285: [function (require, module, exports) { + }, { "../../elliptic": 278, "../curve": 281, "bn.js": 230, "dup": 70, "inherits": 315 }], 281: [function (require, module, exports) { arguments[4][71][0].apply(exports, arguments); - }, { "../../elliptic": 281, "../curve": 284, "bn.js": 296, "dup": 71, "inherits": 320 }], 286: [function (require, module, exports) { + }, { "./base": 279, "./edwards": 280, "./mont": 282, "./short": 283, "dup": 71 }], 282: [function (require, module, exports) { arguments[4][72][0].apply(exports, arguments); - }, { "../../elliptic": 281, "../curve": 284, "bn.js": 296, "dup": 72, "inherits": 320 }], 287: [function (require, module, exports) { + }, { "../../elliptic": 278, "../curve": 281, "bn.js": 230, "dup": 72, "inherits": 315 }], 283: [function (require, module, exports) { arguments[4][73][0].apply(exports, arguments); - }, { "../elliptic": 281, "./precomputed/secp256k1": 294, "dup": 73, "hash.js": 307 }], 288: [function (require, module, exports) { + }, { "../../elliptic": 278, "../curve": 281, "bn.js": 230, "dup": 73, "inherits": 315 }], 284: [function (require, module, exports) { arguments[4][74][0].apply(exports, arguments); - }, { "../../elliptic": 281, "./key": 289, "./signature": 290, "bn.js": 296, "dup": 74, "hmac-drbg": 319 }], 289: [function (require, module, exports) { + }, { "../elliptic": 278, "./precomputed/secp256k1": 291, "dup": 74, "hash.js": 302 }], 285: [function (require, module, exports) { arguments[4][75][0].apply(exports, arguments); - }, { "../../elliptic": 281, "bn.js": 296, "dup": 75 }], 290: [function (require, module, exports) { + }, { "../../elliptic": 278, "./key": 286, "./signature": 287, "bn.js": 230, "dup": 75, "hmac-drbg": 314 }], 286: [function (require, module, exports) { arguments[4][76][0].apply(exports, arguments); - }, { "../../elliptic": 281, "bn.js": 296, "dup": 76 }], 291: [function (require, module, exports) { + }, { "../../elliptic": 278, "bn.js": 230, "dup": 76 }], 287: [function (require, module, exports) { arguments[4][77][0].apply(exports, arguments); - }, { "../../elliptic": 281, "./key": 292, "./signature": 293, "dup": 77, "hash.js": 307 }], 292: [function (require, module, exports) { + }, { "../../elliptic": 278, "bn.js": 230, "dup": 77 }], 288: [function (require, module, exports) { arguments[4][78][0].apply(exports, arguments); - }, { "../../elliptic": 281, "dup": 78 }], 293: [function (require, module, exports) { + }, { "../../elliptic": 278, "./key": 289, "./signature": 290, "dup": 78, "hash.js": 302 }], 289: [function (require, module, exports) { arguments[4][79][0].apply(exports, arguments); - }, { "../../elliptic": 281, "bn.js": 296, "dup": 79 }], 294: [function (require, module, exports) { + }, { "../../elliptic": 278, "dup": 79 }], 290: [function (require, module, exports) { arguments[4][80][0].apply(exports, arguments); - }, { "dup": 80 }], 295: [function (require, module, exports) { + }, { "../../elliptic": 278, "bn.js": 230, "dup": 80 }], 291: [function (require, module, exports) { arguments[4][81][0].apply(exports, arguments); - }, { "bn.js": 296, "dup": 81, "minimalistic-assert": 325, "minimalistic-crypto-utils": 326 }], 296: [function (require, module, exports) { - arguments[4][228][0].apply(exports, arguments); - }, { "buffer": 17, "dup": 228 }], 297: [function (require, module, exports) { + }, { "dup": 81 }], 292: [function (require, module, exports) { + arguments[4][82][0].apply(exports, arguments); + }, { "bn.js": 230, "dup": 82, "minimalistic-assert": 319, "minimalistic-crypto-utils": 320 }], 293: [function (require, module, exports) { module.exports = { - "_args": [[{ - "raw": "elliptic@^6.4.0", - "scope": null, - "escapedName": "elliptic", - "name": "elliptic", - "rawSpec": "^6.4.0", - "spec": ">=6.4.0 <7.0.0", - "type": "range" - }, "/Users/frozeman/Sites/_ethereum/web3/packages/web3-eth-accounts/node_modules/eth-lib"]], - "_from": "elliptic@>=6.4.0 <7.0.0", + "_args": [["elliptic@6.4.0", "/Users/gasolin/Documents/eth/web3.js/packages/web3-eth-accounts"]], + "_from": "elliptic@6.4.0", "_id": "elliptic@6.4.0", - "_inCache": true, + "_inBundle": false, + "_integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", "_location": "/elliptic", - "_nodeVersion": "7.0.0", - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/elliptic-6.4.0.tgz_1487798866428_0.30510620190761983" - }, - "_npmUser": { - "name": "indutny", - "email": "fedor@indutny.com" - }, - "_npmVersion": "3.10.8", "_phantomChildren": {}, "_requested": { - "raw": "elliptic@^6.4.0", - "scope": null, - "escapedName": "elliptic", + "type": "version", + "registry": true, + "raw": "elliptic@6.4.0", "name": "elliptic", - "rawSpec": "^6.4.0", - "spec": ">=6.4.0 <7.0.0", - "type": "range" + "escapedName": "elliptic", + "rawSpec": "6.4.0", + "saveSpec": null, + "fetchSpec": "6.4.0" }, - "_requiredBy": ["/eth-lib"], + "_requiredBy": ["/browserify-sign", "/create-ecdh", "/eth-lib"], "_resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", - "_shasum": "cac9af8762c85836187003c8dfe193e5e2eae5df", - "_shrinkwrap": null, - "_spec": "elliptic@^6.4.0", - "_where": "/Users/frozeman/Sites/_ethereum/web3/packages/web3-eth-accounts/node_modules/eth-lib", + "_spec": "6.4.0", + "_where": "/Users/gasolin/Documents/eth/web3.js/packages/web3-eth-accounts", "author": { "name": "Fedor Indutny", "email": "fedor@indutny.com" @@ -42165,24 +42115,12 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol "jshint": "^2.6.0", "mocha": "^2.1.0" }, - "directories": {}, - "dist": { - "shasum": "cac9af8762c85836187003c8dfe193e5e2eae5df", - "tarball": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz" - }, "files": ["lib"], - "gitHead": "6b0d2b76caae91471649c8e21f0b1d3ba0f96090", "homepage": "https://github.com/indutny/elliptic", "keywords": ["EC", "Elliptic", "curve", "Cryptography"], "license": "MIT", "main": "lib/elliptic.js", - "maintainers": [{ - "name": "indutny", - "email": "fedor@indutny.com" - }], "name": "elliptic", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+ssh://git@github.com/indutny/elliptic.git" @@ -42197,7 +42135,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }, "version": "6.4.0" }; - }, {}], 298: [function (require, module, exports) { + }, {}], 294: [function (require, module, exports) { (function (Buffer) { var _slicedToArray = function () { function sliceIterator(arr, i) { @@ -42305,13 +42243,13 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol decodeSignature: decodeSignature }; }).call(this, require("buffer").Buffer); - }, { "./bytes": 300, "./hash": 301, "./nat": 302, "./rlp": 303, "buffer": 47, "elliptic": 281 }], 299: [function (require, module, exports) { - arguments[4][156][0].apply(exports, arguments); - }, { "dup": 156 }], 300: [function (require, module, exports) { + }, { "./bytes": 296, "./hash": 297, "./nat": 298, "./rlp": 299, "buffer": 48, "elliptic": 278 }], 295: [function (require, module, exports) { arguments[4][157][0].apply(exports, arguments); - }, { "./array.js": 299, "dup": 157 }], 301: [function (require, module, exports) { + }, { "dup": 157 }], 296: [function (require, module, exports) { arguments[4][158][0].apply(exports, arguments); - }, { "dup": 158 }], 302: [function (require, module, exports) { + }, { "./array.js": 295, "dup": 158 }], 297: [function (require, module, exports) { + arguments[4][159][0].apply(exports, arguments); + }, { "dup": 159 }], 298: [function (require, module, exports) { var BN = require("bn.js"); var Bytes = require("./bytes"); @@ -42376,7 +42314,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol div: div, sub: sub }; - }, { "./bytes": 300, "bn.js": 304 }], 303: [function (require, module, exports) { + }, { "./bytes": 296, "bn.js": 230 }], 299: [function (require, module, exports) { // The RLP format // Serialization and deserialization for the BytesTree type, under the following grammar: // | First byte | Meaning | @@ -42450,11 +42388,9 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; module.exports = { encode: encode, decode: decode }; - }, {}], 304: [function (require, module, exports) { - arguments[4][228][0].apply(exports, arguments); - }, { "buffer": 17, "dup": 228 }], 305: [function (require, module, exports) { - arguments[4][84][0].apply(exports, arguments); - }, { "dup": 84, "md5.js": 321, "safe-buffer": 347 }], 306: [function (require, module, exports) { + }, {}], 300: [function (require, module, exports) { + arguments[4][85][0].apply(exports, arguments); + }, { "dup": 85, "md5.js": 316, "safe-buffer": 340 }], 301: [function (require, module, exports) { (function (Buffer) { 'use strict'; @@ -42542,35 +42478,35 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol module.exports = HashBase; }).call(this, require("buffer").Buffer); - }, { "buffer": 47, "inherits": 320, "stream": 152 }], 307: [function (require, module, exports) { - arguments[4][86][0].apply(exports, arguments); - }, { "./hash/common": 308, "./hash/hmac": 309, "./hash/ripemd": 310, "./hash/sha": 311, "./hash/utils": 318, "dup": 86 }], 308: [function (require, module, exports) { + }, { "buffer": 48, "inherits": 315, "stream": 139 }], 302: [function (require, module, exports) { arguments[4][87][0].apply(exports, arguments); - }, { "./utils": 318, "dup": 87, "minimalistic-assert": 325 }], 309: [function (require, module, exports) { + }, { "./hash/common": 303, "./hash/hmac": 304, "./hash/ripemd": 305, "./hash/sha": 306, "./hash/utils": 313, "dup": 87 }], 303: [function (require, module, exports) { arguments[4][88][0].apply(exports, arguments); - }, { "./utils": 318, "dup": 88, "minimalistic-assert": 325 }], 310: [function (require, module, exports) { + }, { "./utils": 313, "dup": 88, "minimalistic-assert": 319 }], 304: [function (require, module, exports) { arguments[4][89][0].apply(exports, arguments); - }, { "./common": 308, "./utils": 318, "dup": 89 }], 311: [function (require, module, exports) { + }, { "./utils": 313, "dup": 89, "minimalistic-assert": 319 }], 305: [function (require, module, exports) { arguments[4][90][0].apply(exports, arguments); - }, { "./sha/1": 312, "./sha/224": 313, "./sha/256": 314, "./sha/384": 315, "./sha/512": 316, "dup": 90 }], 312: [function (require, module, exports) { + }, { "./common": 303, "./utils": 313, "dup": 90 }], 306: [function (require, module, exports) { arguments[4][91][0].apply(exports, arguments); - }, { "../common": 308, "../utils": 318, "./common": 317, "dup": 91 }], 313: [function (require, module, exports) { + }, { "./sha/1": 307, "./sha/224": 308, "./sha/256": 309, "./sha/384": 310, "./sha/512": 311, "dup": 91 }], 307: [function (require, module, exports) { arguments[4][92][0].apply(exports, arguments); - }, { "../utils": 318, "./256": 314, "dup": 92 }], 314: [function (require, module, exports) { + }, { "../common": 303, "../utils": 313, "./common": 312, "dup": 92 }], 308: [function (require, module, exports) { arguments[4][93][0].apply(exports, arguments); - }, { "../common": 308, "../utils": 318, "./common": 317, "dup": 93, "minimalistic-assert": 325 }], 315: [function (require, module, exports) { + }, { "../utils": 313, "./256": 309, "dup": 93 }], 309: [function (require, module, exports) { arguments[4][94][0].apply(exports, arguments); - }, { "../utils": 318, "./512": 316, "dup": 94 }], 316: [function (require, module, exports) { + }, { "../common": 303, "../utils": 313, "./common": 312, "dup": 94, "minimalistic-assert": 319 }], 310: [function (require, module, exports) { arguments[4][95][0].apply(exports, arguments); - }, { "../common": 308, "../utils": 318, "dup": 95, "minimalistic-assert": 325 }], 317: [function (require, module, exports) { + }, { "../utils": 313, "./512": 311, "dup": 95 }], 311: [function (require, module, exports) { arguments[4][96][0].apply(exports, arguments); - }, { "../utils": 318, "dup": 96 }], 318: [function (require, module, exports) { + }, { "../common": 303, "../utils": 313, "dup": 96, "minimalistic-assert": 319 }], 312: [function (require, module, exports) { arguments[4][97][0].apply(exports, arguments); - }, { "dup": 97, "inherits": 320, "minimalistic-assert": 325 }], 319: [function (require, module, exports) { + }, { "../utils": 313, "dup": 97 }], 313: [function (require, module, exports) { arguments[4][98][0].apply(exports, arguments); - }, { "dup": 98, "hash.js": 307, "minimalistic-assert": 325, "minimalistic-crypto-utils": 326 }], 320: [function (require, module, exports) { - arguments[4][101][0].apply(exports, arguments); - }, { "dup": 101 }], 321: [function (require, module, exports) { + }, { "dup": 98, "inherits": 315, "minimalistic-assert": 319 }], 314: [function (require, module, exports) { + arguments[4][99][0].apply(exports, arguments); + }, { "dup": 99, "hash.js": 302, "minimalistic-assert": 319, "minimalistic-crypto-utils": 320 }], 315: [function (require, module, exports) { + arguments[4][102][0].apply(exports, arguments); + }, { "dup": 102 }], 316: [function (require, module, exports) { (function (Buffer) { 'use strict'; @@ -42719,23 +42655,21 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol module.exports = MD5; }).call(this, require("buffer").Buffer); - }, { "buffer": 47, "hash-base": 322, "inherits": 320 }], 322: [function (require, module, exports) { + }, { "buffer": 48, "hash-base": 317, "inherits": 315 }], 317: [function (require, module, exports) { arguments[4][105][0].apply(exports, arguments); - }, { "dup": 105, "inherits": 320, "safe-buffer": 347, "stream": 152 }], 323: [function (require, module, exports) { + }, { "dup": 105, "inherits": 315, "safe-buffer": 340, "stream": 139 }], 318: [function (require, module, exports) { arguments[4][106][0].apply(exports, arguments); - }, { "bn.js": 324, "brorand": 230, "dup": 106 }], 324: [function (require, module, exports) { - arguments[4][228][0].apply(exports, arguments); - }, { "buffer": 17, "dup": 228 }], 325: [function (require, module, exports) { + }, { "bn.js": 230, "brorand": 231, "dup": 106 }], 319: [function (require, module, exports) { arguments[4][107][0].apply(exports, arguments); - }, { "dup": 107 }], 326: [function (require, module, exports) { + }, { "dup": 107 }], 320: [function (require, module, exports) { arguments[4][108][0].apply(exports, arguments); - }, { "dup": 108 }], 327: [function (require, module, exports) { + }, { "dup": 108 }], 321: [function (require, module, exports) { arguments[4][109][0].apply(exports, arguments); - }, { "dup": 109 }], 328: [function (require, module, exports) { + }, { "dup": 109 }], 322: [function (require, module, exports) { arguments[4][110][0].apply(exports, arguments); - }, { "./certificate": 329, "asn1.js": 214, "dup": 110 }], 329: [function (require, module, exports) { + }, { "./certificate": 323, "asn1.js": 215, "dup": 110 }], 323: [function (require, module, exports) { arguments[4][111][0].apply(exports, arguments); - }, { "asn1.js": 214, "dup": 111 }], 330: [function (require, module, exports) { + }, { "asn1.js": 215, "dup": 111 }], 324: [function (require, module, exports) { (function (Buffer) { // adapted from https://github.com/apatil/pemstrip var findProc = /Proc-Type: 4,ENCRYPTED\n\r?DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)\n\r?\n\r?([0-9A-z\n\r\+\/\=]+)\n\r?/m; @@ -42768,7 +42702,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; }; }).call(this, require("buffer").Buffer); - }, { "browserify-aes": 233, "buffer": 47, "evp_bytestokey": 305 }], 331: [function (require, module, exports) { + }, { "browserify-aes": 234, "buffer": 48, "evp_bytestokey": 300 }], 325: [function (require, module, exports) { (function (Buffer) { var asn1 = require('./asn1'); var aesid = require('./aesid.json'); @@ -42880,9 +42814,9 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return Buffer.concat(out); } }).call(this, require("buffer").Buffer); - }, { "./aesid.json": 327, "./asn1": 328, "./fixProc": 330, "browserify-aes": 233, "buffer": 47, "pbkdf2": 332 }], 332: [function (require, module, exports) { + }, { "./aesid.json": 321, "./asn1": 322, "./fixProc": 324, "browserify-aes": 234, "buffer": 48, "pbkdf2": 326 }], 326: [function (require, module, exports) { arguments[4][114][0].apply(exports, arguments); - }, { "./lib/async": 333, "./lib/sync": 336, "dup": 114 }], 333: [function (require, module, exports) { + }, { "./lib/async": 327, "./lib/sync": 330, "dup": 114 }], 327: [function (require, module, exports) { (function (process, global) { var checkParameters = require('./precondition'); var defaultEncoding = require('./default-encoding'); @@ -42942,5874 +42876,2593 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol callback(null, out); }); }, function (e) { - process.nextTick(function () { - callback(e); - }); - }); - } - module.exports = function (password, salt, iterations, keylen, digest, callback) { - if (!Buffer.isBuffer(password)) password = Buffer.from(password, defaultEncoding); - if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, defaultEncoding); - - checkParameters(iterations, keylen); - if (typeof digest === 'function') { - callback = digest; - digest = undefined; - } - if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2'); - - digest = digest || 'sha1'; - var algo = toBrowser[digest.toLowerCase()]; - if (!algo || typeof global.Promise !== 'function') { - return process.nextTick(function () { - var out; - try { - out = sync(password, salt, iterations, keylen, digest); - } catch (e) { - return callback(e); - } - callback(null, out); - }); - } - resolvePromise(checkNative(algo).then(function (resp) { - if (resp) { - return browserPbkdf2(password, salt, iterations, keylen, algo); - } else { - return sync(password, salt, iterations, keylen, digest); - } - }), callback); - }; - }).call(this, require('_process'), typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}); - }, { "./default-encoding": 334, "./precondition": 335, "./sync": 336, "_process": 120, "safe-buffer": 347 }], 334: [function (require, module, exports) { - (function (process) { - var defaultEncoding; - /* istanbul ignore next */ - if (process.browser) { - defaultEncoding = 'utf-8'; - } else { - var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10); - - defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary'; - } - module.exports = defaultEncoding; - }).call(this, require('_process')); - }, { "_process": 120 }], 335: [function (require, module, exports) { - arguments[4][117][0].apply(exports, arguments); - }, { "dup": 117 }], 336: [function (require, module, exports) { - arguments[4][118][0].apply(exports, arguments); - }, { "./default-encoding": 334, "./precondition": 335, "create-hash/md5": 266, "dup": 118, "ripemd160": 346, "safe-buffer": 347, "sha.js": 351 }], 337: [function (require, module, exports) { - arguments[4][121][0].apply(exports, arguments); - }, { "./privateDecrypt": 340, "./publicEncrypt": 341, "dup": 121 }], 338: [function (require, module, exports) { - (function (Buffer) { - var createHash = require('create-hash'); - module.exports = function (seed, len) { - var t = new Buffer(''); - var i = 0, - c; - while (t.length < len) { - c = i2ops(i++); - t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()]); - } - return t.slice(0, len); - }; - - function i2ops(c) { - var out = new Buffer(4); - out.writeUInt32BE(c, 0); - return out; - } - }).call(this, require("buffer").Buffer); - }, { "buffer": 47, "create-hash": 264 }], 339: [function (require, module, exports) { - arguments[4][228][0].apply(exports, arguments); - }, { "buffer": 17, "dup": 228 }], 340: [function (require, module, exports) { - (function (Buffer) { - var parseKeys = require('parse-asn1'); - var mgf = require('./mgf'); - var xor = require('./xor'); - var bn = require('bn.js'); - var crt = require('browserify-rsa'); - var createHash = require('create-hash'); - var withPublic = require('./withPublic'); - module.exports = function privateDecrypt(private_key, enc, reverse) { - var padding; - if (private_key.padding) { - padding = private_key.padding; - } else if (reverse) { - padding = 1; - } else { - padding = 4; - } - - var key = parseKeys(private_key); - var k = key.modulus.byteLength(); - if (enc.length > k || new bn(enc).cmp(key.modulus) >= 0) { - throw new Error('decryption error'); - } - var msg; - if (reverse) { - msg = withPublic(new bn(enc), key); - } else { - msg = crt(enc, key); - } - var zBuffer = new Buffer(k - msg.length); - zBuffer.fill(0); - msg = Buffer.concat([zBuffer, msg], k); - if (padding === 4) { - return oaep(key, msg); - } else if (padding === 1) { - return pkcs1(key, msg, reverse); - } else if (padding === 3) { - return msg; - } else { - throw new Error('unknown padding'); - } - }; - - function oaep(key, msg) { - var n = key.modulus; - var k = key.modulus.byteLength(); - var mLen = msg.length; - var iHash = createHash('sha1').update(new Buffer('')).digest(); - var hLen = iHash.length; - var hLen2 = 2 * hLen; - if (msg[0] !== 0) { - throw new Error('decryption error'); - } - var maskedSeed = msg.slice(1, hLen + 1); - var maskedDb = msg.slice(hLen + 1); - var seed = xor(maskedSeed, mgf(maskedDb, hLen)); - var db = xor(maskedDb, mgf(seed, k - hLen - 1)); - if (compare(iHash, db.slice(0, hLen))) { - throw new Error('decryption error'); - } - var i = hLen; - while (db[i] === 0) { - i++; - } - if (db[i++] !== 1) { - throw new Error('decryption error'); - } - return db.slice(i); - } - - function pkcs1(key, msg, reverse) { - var p1 = msg.slice(0, 2); - var i = 2; - var status = 0; - while (msg[i++] !== 0) { - if (i >= msg.length) { - status++; - break; - } - } - var ps = msg.slice(2, i - 1); - var p2 = msg.slice(i - 1, i); - - if (p1.toString('hex') !== '0002' && !reverse || p1.toString('hex') !== '0001' && reverse) { - status++; - } - if (ps.length < 8) { - status++; - } - if (status) { - throw new Error('decryption error'); - } - return msg.slice(i); - } - function compare(a, b) { - a = new Buffer(a); - b = new Buffer(b); - var dif = 0; - var len = a.length; - if (a.length !== b.length) { - dif++; - len = Math.min(a.length, b.length); - } - var i = -1; - while (++i < len) { - dif += a[i] ^ b[i]; - } - return dif; - } - }).call(this, require("buffer").Buffer); - }, { "./mgf": 338, "./withPublic": 342, "./xor": 343, "bn.js": 339, "browserify-rsa": 251, "buffer": 47, "create-hash": 264, "parse-asn1": 331 }], 341: [function (require, module, exports) { - (function (Buffer) { - var parseKeys = require('parse-asn1'); - var randomBytes = require('randombytes'); - var createHash = require('create-hash'); - var mgf = require('./mgf'); - var xor = require('./xor'); - var bn = require('bn.js'); - var withPublic = require('./withPublic'); - var crt = require('browserify-rsa'); - - var constants = { - RSA_PKCS1_OAEP_PADDING: 4, - RSA_PKCS1_PADDIN: 1, - RSA_NO_PADDING: 3 - }; - - module.exports = function publicEncrypt(public_key, msg, reverse) { - var padding; - if (public_key.padding) { - padding = public_key.padding; - } else if (reverse) { - padding = 1; - } else { - padding = 4; - } - var key = parseKeys(public_key); - var paddedMsg; - if (padding === 4) { - paddedMsg = oaep(key, msg); - } else if (padding === 1) { - paddedMsg = pkcs1(key, msg, reverse); - } else if (padding === 3) { - paddedMsg = new bn(msg); - if (paddedMsg.cmp(key.modulus) >= 0) { - throw new Error('data too long for modulus'); - } - } else { - throw new Error('unknown padding'); - } - if (reverse) { - return crt(paddedMsg, key); - } else { - return withPublic(paddedMsg, key); - } - }; - - function oaep(key, msg) { - var k = key.modulus.byteLength(); - var mLen = msg.length; - var iHash = createHash('sha1').update(new Buffer('')).digest(); - var hLen = iHash.length; - var hLen2 = 2 * hLen; - if (mLen > k - hLen2 - 2) { - throw new Error('message too long'); - } - var ps = new Buffer(k - mLen - hLen2 - 2); - ps.fill(0); - var dblen = k - hLen - 1; - var seed = randomBytes(hLen); - var maskedDb = xor(Buffer.concat([iHash, ps, new Buffer([1]), msg], dblen), mgf(seed, dblen)); - var maskedSeed = xor(seed, mgf(maskedDb, hLen)); - return new bn(Buffer.concat([new Buffer([0]), maskedSeed, maskedDb], k)); - } - function pkcs1(key, msg, reverse) { - var mLen = msg.length; - var k = key.modulus.byteLength(); - if (mLen > k - 11) { - throw new Error('message too long'); - } - var ps; - if (reverse) { - ps = new Buffer(k - mLen - 3); - ps.fill(0xff); - } else { - ps = nonZero(k - mLen - 3); - } - return new bn(Buffer.concat([new Buffer([0, reverse ? 1 : 2]), ps, new Buffer([0]), msg], k)); - } - function nonZero(len, crypto) { - var out = new Buffer(len); - var i = 0; - var cache = randomBytes(len * 2); - var cur = 0; - var num; - while (i < len) { - if (cur === cache.length) { - cache = randomBytes(len * 2); - cur = 0; - } - num = cache[cur++]; - if (num) { - out[i++] = num; - } - } - return out; - } - }).call(this, require("buffer").Buffer); - }, { "./mgf": 338, "./withPublic": 342, "./xor": 343, "bn.js": 339, "browserify-rsa": 251, "buffer": 47, "create-hash": 264, "parse-asn1": 331, "randombytes": 344 }], 342: [function (require, module, exports) { - (function (Buffer) { - var bn = require('bn.js'); - function withPublic(paddedMsg, key) { - return new Buffer(paddedMsg.toRed(bn.mont(key.modulus)).redPow(new bn(key.publicExponent)).fromRed().toArray()); - } - - module.exports = withPublic; - }).call(this, require("buffer").Buffer); - }, { "bn.js": 339, "buffer": 47 }], 343: [function (require, module, exports) { - arguments[4][126][0].apply(exports, arguments); - }, { "dup": 126 }], 344: [function (require, module, exports) { - (function (process, global) { - 'use strict'; - - function oldBrowser() { - throw new Error('secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11'); - } - - var Buffer = require('safe-buffer').Buffer; - var crypto = global.crypto || global.msCrypto; - - if (crypto && crypto.getRandomValues) { - module.exports = randomBytes; - } else { - module.exports = oldBrowser; - } - - function randomBytes(size, cb) { - // phantomjs needs to throw - if (size > 65536) throw new Error('requested too many random bytes'); - // in case browserify isn't using the Uint8Array version - var rawBytes = new global.Uint8Array(size); - - // This will not work in older browsers. - // See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues - if (size > 0) { - // getRandomValues fails on IE if size == 0 - crypto.getRandomValues(rawBytes); - } - - // XXX: phantomjs doesn't like a buffer being passed here - var bytes = Buffer.from(rawBytes.buffer); - - if (typeof cb === 'function') { - return process.nextTick(function () { - cb(null, bytes); - }); - } - - return bytes; - } - }).call(this, require('_process'), typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}); - }, { "_process": 120, "safe-buffer": 347 }], 345: [function (require, module, exports) { - (function (process, global) { - 'use strict'; - - function oldBrowser() { - throw new Error('secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11'); - } - var safeBuffer = require('safe-buffer'); - var randombytes = require('randombytes'); - var Buffer = safeBuffer.Buffer; - var kBufferMaxLength = safeBuffer.kMaxLength; - var crypto = global.crypto || global.msCrypto; - var kMaxUint32 = Math.pow(2, 32) - 1; - function assertOffset(offset, length) { - if (typeof offset !== 'number' || offset !== offset) { - // eslint-disable-line no-self-compare - throw new TypeError('offset must be a number'); - } - - if (offset > kMaxUint32 || offset < 0) { - throw new TypeError('offset must be a uint32'); - } - - if (offset > kBufferMaxLength || offset > length) { - throw new RangeError('offset out of range'); - } - } - - function assertSize(size, offset, length) { - if (typeof size !== 'number' || size !== size) { - // eslint-disable-line no-self-compare - throw new TypeError('size must be a number'); - } - - if (size > kMaxUint32 || size < 0) { - throw new TypeError('size must be a uint32'); - } - - if (size + offset > length || size > kBufferMaxLength) { - throw new RangeError('buffer too small'); - } - } - if (crypto && crypto.getRandomValues || !process.browser) { - exports.randomFill = randomFill; - exports.randomFillSync = randomFillSync; - } else { - exports.randomFill = oldBrowser; - exports.randomFillSync = oldBrowser; - } - function randomFill(buf, offset, size, cb) { - if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) { - throw new TypeError('"buf" argument must be a Buffer or Uint8Array'); - } - - if (typeof offset === 'function') { - cb = offset; - offset = 0; - size = buf.length; - } else if (typeof size === 'function') { - cb = size; - size = buf.length - offset; - } else if (typeof cb !== 'function') { - throw new TypeError('"cb" argument must be a function'); - } - assertOffset(offset, buf.length); - assertSize(size, offset, buf.length); - return actualFill(buf, offset, size, cb); - } - - function actualFill(buf, offset, size, cb) { - if (process.browser) { - var ourBuf = buf.buffer; - var uint = new Uint8Array(ourBuf, offset, size); - crypto.getRandomValues(uint); - if (cb) { - process.nextTick(function () { - cb(null, buf); - }); - return; - } - return buf; - } - if (cb) { - randombytes(size, function (err, bytes) { - if (err) { - return cb(err); - } - bytes.copy(buf, offset); - cb(null, buf); - }); - return; - } - var bytes = randombytes(size); - bytes.copy(buf, offset); - return buf; - } - function randomFillSync(buf, offset, size) { - if (typeof offset === 'undefined') { - offset = 0; - } - if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) { - throw new TypeError('"buf" argument must be a Buffer or Uint8Array'); - } - - assertOffset(offset, buf.length); - - if (size === undefined) size = buf.length - offset; - - assertSize(size, offset, buf.length); - - return actualFill(buf, offset, size); - } - }).call(this, require('_process'), typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}); - }, { "_process": 120, "randombytes": 344, "safe-buffer": 347 }], 346: [function (require, module, exports) { - (function (Buffer) { - 'use strict'; - - var inherits = require('inherits'); - var HashBase = require('hash-base'); - - function RIPEMD160() { - HashBase.call(this, 64); - - // state - this._a = 0x67452301; - this._b = 0xefcdab89; - this._c = 0x98badcfe; - this._d = 0x10325476; - this._e = 0xc3d2e1f0; - } - - inherits(RIPEMD160, HashBase); - - RIPEMD160.prototype._update = function () { - var m = new Array(16); - for (var i = 0; i < 16; ++i) { - m[i] = this._block.readInt32LE(i * 4); - }var al = this._a; - var bl = this._b; - var cl = this._c; - var dl = this._d; - var el = this._e; - - // Mj = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 - // K = 0x00000000 - // Sj = 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8 - al = fn1(al, bl, cl, dl, el, m[0], 0x00000000, 11);cl = rotl(cl, 10); - el = fn1(el, al, bl, cl, dl, m[1], 0x00000000, 14);bl = rotl(bl, 10); - dl = fn1(dl, el, al, bl, cl, m[2], 0x00000000, 15);al = rotl(al, 10); - cl = fn1(cl, dl, el, al, bl, m[3], 0x00000000, 12);el = rotl(el, 10); - bl = fn1(bl, cl, dl, el, al, m[4], 0x00000000, 5);dl = rotl(dl, 10); - al = fn1(al, bl, cl, dl, el, m[5], 0x00000000, 8);cl = rotl(cl, 10); - el = fn1(el, al, bl, cl, dl, m[6], 0x00000000, 7);bl = rotl(bl, 10); - dl = fn1(dl, el, al, bl, cl, m[7], 0x00000000, 9);al = rotl(al, 10); - cl = fn1(cl, dl, el, al, bl, m[8], 0x00000000, 11);el = rotl(el, 10); - bl = fn1(bl, cl, dl, el, al, m[9], 0x00000000, 13);dl = rotl(dl, 10); - al = fn1(al, bl, cl, dl, el, m[10], 0x00000000, 14);cl = rotl(cl, 10); - el = fn1(el, al, bl, cl, dl, m[11], 0x00000000, 15);bl = rotl(bl, 10); - dl = fn1(dl, el, al, bl, cl, m[12], 0x00000000, 6);al = rotl(al, 10); - cl = fn1(cl, dl, el, al, bl, m[13], 0x00000000, 7);el = rotl(el, 10); - bl = fn1(bl, cl, dl, el, al, m[14], 0x00000000, 9);dl = rotl(dl, 10); - al = fn1(al, bl, cl, dl, el, m[15], 0x00000000, 8);cl = rotl(cl, 10); - - // Mj = 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8 - // K = 0x5a827999 - // Sj = 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12 - el = fn2(el, al, bl, cl, dl, m[7], 0x5a827999, 7);bl = rotl(bl, 10); - dl = fn2(dl, el, al, bl, cl, m[4], 0x5a827999, 6);al = rotl(al, 10); - cl = fn2(cl, dl, el, al, bl, m[13], 0x5a827999, 8);el = rotl(el, 10); - bl = fn2(bl, cl, dl, el, al, m[1], 0x5a827999, 13);dl = rotl(dl, 10); - al = fn2(al, bl, cl, dl, el, m[10], 0x5a827999, 11);cl = rotl(cl, 10); - el = fn2(el, al, bl, cl, dl, m[6], 0x5a827999, 9);bl = rotl(bl, 10); - dl = fn2(dl, el, al, bl, cl, m[15], 0x5a827999, 7);al = rotl(al, 10); - cl = fn2(cl, dl, el, al, bl, m[3], 0x5a827999, 15);el = rotl(el, 10); - bl = fn2(bl, cl, dl, el, al, m[12], 0x5a827999, 7);dl = rotl(dl, 10); - al = fn2(al, bl, cl, dl, el, m[0], 0x5a827999, 12);cl = rotl(cl, 10); - el = fn2(el, al, bl, cl, dl, m[9], 0x5a827999, 15);bl = rotl(bl, 10); - dl = fn2(dl, el, al, bl, cl, m[5], 0x5a827999, 9);al = rotl(al, 10); - cl = fn2(cl, dl, el, al, bl, m[2], 0x5a827999, 11);el = rotl(el, 10); - bl = fn2(bl, cl, dl, el, al, m[14], 0x5a827999, 7);dl = rotl(dl, 10); - al = fn2(al, bl, cl, dl, el, m[11], 0x5a827999, 13);cl = rotl(cl, 10); - el = fn2(el, al, bl, cl, dl, m[8], 0x5a827999, 12);bl = rotl(bl, 10); - - // Mj = 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12 - // K = 0x6ed9eba1 - // Sj = 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5 - dl = fn3(dl, el, al, bl, cl, m[3], 0x6ed9eba1, 11);al = rotl(al, 10); - cl = fn3(cl, dl, el, al, bl, m[10], 0x6ed9eba1, 13);el = rotl(el, 10); - bl = fn3(bl, cl, dl, el, al, m[14], 0x6ed9eba1, 6);dl = rotl(dl, 10); - al = fn3(al, bl, cl, dl, el, m[4], 0x6ed9eba1, 7);cl = rotl(cl, 10); - el = fn3(el, al, bl, cl, dl, m[9], 0x6ed9eba1, 14);bl = rotl(bl, 10); - dl = fn3(dl, el, al, bl, cl, m[15], 0x6ed9eba1, 9);al = rotl(al, 10); - cl = fn3(cl, dl, el, al, bl, m[8], 0x6ed9eba1, 13);el = rotl(el, 10); - bl = fn3(bl, cl, dl, el, al, m[1], 0x6ed9eba1, 15);dl = rotl(dl, 10); - al = fn3(al, bl, cl, dl, el, m[2], 0x6ed9eba1, 14);cl = rotl(cl, 10); - el = fn3(el, al, bl, cl, dl, m[7], 0x6ed9eba1, 8);bl = rotl(bl, 10); - dl = fn3(dl, el, al, bl, cl, m[0], 0x6ed9eba1, 13);al = rotl(al, 10); - cl = fn3(cl, dl, el, al, bl, m[6], 0x6ed9eba1, 6);el = rotl(el, 10); - bl = fn3(bl, cl, dl, el, al, m[13], 0x6ed9eba1, 5);dl = rotl(dl, 10); - al = fn3(al, bl, cl, dl, el, m[11], 0x6ed9eba1, 12);cl = rotl(cl, 10); - el = fn3(el, al, bl, cl, dl, m[5], 0x6ed9eba1, 7);bl = rotl(bl, 10); - dl = fn3(dl, el, al, bl, cl, m[12], 0x6ed9eba1, 5);al = rotl(al, 10); - - // Mj = 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2 - // K = 0x8f1bbcdc - // Sj = 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12 - cl = fn4(cl, dl, el, al, bl, m[1], 0x8f1bbcdc, 11);el = rotl(el, 10); - bl = fn4(bl, cl, dl, el, al, m[9], 0x8f1bbcdc, 12);dl = rotl(dl, 10); - al = fn4(al, bl, cl, dl, el, m[11], 0x8f1bbcdc, 14);cl = rotl(cl, 10); - el = fn4(el, al, bl, cl, dl, m[10], 0x8f1bbcdc, 15);bl = rotl(bl, 10); - dl = fn4(dl, el, al, bl, cl, m[0], 0x8f1bbcdc, 14);al = rotl(al, 10); - cl = fn4(cl, dl, el, al, bl, m[8], 0x8f1bbcdc, 15);el = rotl(el, 10); - bl = fn4(bl, cl, dl, el, al, m[12], 0x8f1bbcdc, 9);dl = rotl(dl, 10); - al = fn4(al, bl, cl, dl, el, m[4], 0x8f1bbcdc, 8);cl = rotl(cl, 10); - el = fn4(el, al, bl, cl, dl, m[13], 0x8f1bbcdc, 9);bl = rotl(bl, 10); - dl = fn4(dl, el, al, bl, cl, m[3], 0x8f1bbcdc, 14);al = rotl(al, 10); - cl = fn4(cl, dl, el, al, bl, m[7], 0x8f1bbcdc, 5);el = rotl(el, 10); - bl = fn4(bl, cl, dl, el, al, m[15], 0x8f1bbcdc, 6);dl = rotl(dl, 10); - al = fn4(al, bl, cl, dl, el, m[14], 0x8f1bbcdc, 8);cl = rotl(cl, 10); - el = fn4(el, al, bl, cl, dl, m[5], 0x8f1bbcdc, 6);bl = rotl(bl, 10); - dl = fn4(dl, el, al, bl, cl, m[6], 0x8f1bbcdc, 5);al = rotl(al, 10); - cl = fn4(cl, dl, el, al, bl, m[2], 0x8f1bbcdc, 12);el = rotl(el, 10); - - // Mj = 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13 - // K = 0xa953fd4e - // Sj = 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 - bl = fn5(bl, cl, dl, el, al, m[4], 0xa953fd4e, 9);dl = rotl(dl, 10); - al = fn5(al, bl, cl, dl, el, m[0], 0xa953fd4e, 15);cl = rotl(cl, 10); - el = fn5(el, al, bl, cl, dl, m[5], 0xa953fd4e, 5);bl = rotl(bl, 10); - dl = fn5(dl, el, al, bl, cl, m[9], 0xa953fd4e, 11);al = rotl(al, 10); - cl = fn5(cl, dl, el, al, bl, m[7], 0xa953fd4e, 6);el = rotl(el, 10); - bl = fn5(bl, cl, dl, el, al, m[12], 0xa953fd4e, 8);dl = rotl(dl, 10); - al = fn5(al, bl, cl, dl, el, m[2], 0xa953fd4e, 13);cl = rotl(cl, 10); - el = fn5(el, al, bl, cl, dl, m[10], 0xa953fd4e, 12);bl = rotl(bl, 10); - dl = fn5(dl, el, al, bl, cl, m[14], 0xa953fd4e, 5);al = rotl(al, 10); - cl = fn5(cl, dl, el, al, bl, m[1], 0xa953fd4e, 12);el = rotl(el, 10); - bl = fn5(bl, cl, dl, el, al, m[3], 0xa953fd4e, 13);dl = rotl(dl, 10); - al = fn5(al, bl, cl, dl, el, m[8], 0xa953fd4e, 14);cl = rotl(cl, 10); - el = fn5(el, al, bl, cl, dl, m[11], 0xa953fd4e, 11);bl = rotl(bl, 10); - dl = fn5(dl, el, al, bl, cl, m[6], 0xa953fd4e, 8);al = rotl(al, 10); - cl = fn5(cl, dl, el, al, bl, m[15], 0xa953fd4e, 5);el = rotl(el, 10); - bl = fn5(bl, cl, dl, el, al, m[13], 0xa953fd4e, 6);dl = rotl(dl, 10); - - var ar = this._a; - var br = this._b; - var cr = this._c; - var dr = this._d; - var er = this._e; - - // M'j = 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12 - // K' = 0x50a28be6 - // S'j = 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6 - ar = fn5(ar, br, cr, dr, er, m[5], 0x50a28be6, 8);cr = rotl(cr, 10); - er = fn5(er, ar, br, cr, dr, m[14], 0x50a28be6, 9);br = rotl(br, 10); - dr = fn5(dr, er, ar, br, cr, m[7], 0x50a28be6, 9);ar = rotl(ar, 10); - cr = fn5(cr, dr, er, ar, br, m[0], 0x50a28be6, 11);er = rotl(er, 10); - br = fn5(br, cr, dr, er, ar, m[9], 0x50a28be6, 13);dr = rotl(dr, 10); - ar = fn5(ar, br, cr, dr, er, m[2], 0x50a28be6, 15);cr = rotl(cr, 10); - er = fn5(er, ar, br, cr, dr, m[11], 0x50a28be6, 15);br = rotl(br, 10); - dr = fn5(dr, er, ar, br, cr, m[4], 0x50a28be6, 5);ar = rotl(ar, 10); - cr = fn5(cr, dr, er, ar, br, m[13], 0x50a28be6, 7);er = rotl(er, 10); - br = fn5(br, cr, dr, er, ar, m[6], 0x50a28be6, 7);dr = rotl(dr, 10); - ar = fn5(ar, br, cr, dr, er, m[15], 0x50a28be6, 8);cr = rotl(cr, 10); - er = fn5(er, ar, br, cr, dr, m[8], 0x50a28be6, 11);br = rotl(br, 10); - dr = fn5(dr, er, ar, br, cr, m[1], 0x50a28be6, 14);ar = rotl(ar, 10); - cr = fn5(cr, dr, er, ar, br, m[10], 0x50a28be6, 14);er = rotl(er, 10); - br = fn5(br, cr, dr, er, ar, m[3], 0x50a28be6, 12);dr = rotl(dr, 10); - ar = fn5(ar, br, cr, dr, er, m[12], 0x50a28be6, 6);cr = rotl(cr, 10); - - // M'j = 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2 - // K' = 0x5c4dd124 - // S'j = 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11 - er = fn4(er, ar, br, cr, dr, m[6], 0x5c4dd124, 9);br = rotl(br, 10); - dr = fn4(dr, er, ar, br, cr, m[11], 0x5c4dd124, 13);ar = rotl(ar, 10); - cr = fn4(cr, dr, er, ar, br, m[3], 0x5c4dd124, 15);er = rotl(er, 10); - br = fn4(br, cr, dr, er, ar, m[7], 0x5c4dd124, 7);dr = rotl(dr, 10); - ar = fn4(ar, br, cr, dr, er, m[0], 0x5c4dd124, 12);cr = rotl(cr, 10); - er = fn4(er, ar, br, cr, dr, m[13], 0x5c4dd124, 8);br = rotl(br, 10); - dr = fn4(dr, er, ar, br, cr, m[5], 0x5c4dd124, 9);ar = rotl(ar, 10); - cr = fn4(cr, dr, er, ar, br, m[10], 0x5c4dd124, 11);er = rotl(er, 10); - br = fn4(br, cr, dr, er, ar, m[14], 0x5c4dd124, 7);dr = rotl(dr, 10); - ar = fn4(ar, br, cr, dr, er, m[15], 0x5c4dd124, 7);cr = rotl(cr, 10); - er = fn4(er, ar, br, cr, dr, m[8], 0x5c4dd124, 12);br = rotl(br, 10); - dr = fn4(dr, er, ar, br, cr, m[12], 0x5c4dd124, 7);ar = rotl(ar, 10); - cr = fn4(cr, dr, er, ar, br, m[4], 0x5c4dd124, 6);er = rotl(er, 10); - br = fn4(br, cr, dr, er, ar, m[9], 0x5c4dd124, 15);dr = rotl(dr, 10); - ar = fn4(ar, br, cr, dr, er, m[1], 0x5c4dd124, 13);cr = rotl(cr, 10); - er = fn4(er, ar, br, cr, dr, m[2], 0x5c4dd124, 11);br = rotl(br, 10); - - // M'j = 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13 - // K' = 0x6d703ef3 - // S'j = 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5 - dr = fn3(dr, er, ar, br, cr, m[15], 0x6d703ef3, 9);ar = rotl(ar, 10); - cr = fn3(cr, dr, er, ar, br, m[5], 0x6d703ef3, 7);er = rotl(er, 10); - br = fn3(br, cr, dr, er, ar, m[1], 0x6d703ef3, 15);dr = rotl(dr, 10); - ar = fn3(ar, br, cr, dr, er, m[3], 0x6d703ef3, 11);cr = rotl(cr, 10); - er = fn3(er, ar, br, cr, dr, m[7], 0x6d703ef3, 8);br = rotl(br, 10); - dr = fn3(dr, er, ar, br, cr, m[14], 0x6d703ef3, 6);ar = rotl(ar, 10); - cr = fn3(cr, dr, er, ar, br, m[6], 0x6d703ef3, 6);er = rotl(er, 10); - br = fn3(br, cr, dr, er, ar, m[9], 0x6d703ef3, 14);dr = rotl(dr, 10); - ar = fn3(ar, br, cr, dr, er, m[11], 0x6d703ef3, 12);cr = rotl(cr, 10); - er = fn3(er, ar, br, cr, dr, m[8], 0x6d703ef3, 13);br = rotl(br, 10); - dr = fn3(dr, er, ar, br, cr, m[12], 0x6d703ef3, 5);ar = rotl(ar, 10); - cr = fn3(cr, dr, er, ar, br, m[2], 0x6d703ef3, 14);er = rotl(er, 10); - br = fn3(br, cr, dr, er, ar, m[10], 0x6d703ef3, 13);dr = rotl(dr, 10); - ar = fn3(ar, br, cr, dr, er, m[0], 0x6d703ef3, 13);cr = rotl(cr, 10); - er = fn3(er, ar, br, cr, dr, m[4], 0x6d703ef3, 7);br = rotl(br, 10); - dr = fn3(dr, er, ar, br, cr, m[13], 0x6d703ef3, 5);ar = rotl(ar, 10); - - // M'j = 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14 - // K' = 0x7a6d76e9 - // S'j = 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8 - cr = fn2(cr, dr, er, ar, br, m[8], 0x7a6d76e9, 15);er = rotl(er, 10); - br = fn2(br, cr, dr, er, ar, m[6], 0x7a6d76e9, 5);dr = rotl(dr, 10); - ar = fn2(ar, br, cr, dr, er, m[4], 0x7a6d76e9, 8);cr = rotl(cr, 10); - er = fn2(er, ar, br, cr, dr, m[1], 0x7a6d76e9, 11);br = rotl(br, 10); - dr = fn2(dr, er, ar, br, cr, m[3], 0x7a6d76e9, 14);ar = rotl(ar, 10); - cr = fn2(cr, dr, er, ar, br, m[11], 0x7a6d76e9, 14);er = rotl(er, 10); - br = fn2(br, cr, dr, er, ar, m[15], 0x7a6d76e9, 6);dr = rotl(dr, 10); - ar = fn2(ar, br, cr, dr, er, m[0], 0x7a6d76e9, 14);cr = rotl(cr, 10); - er = fn2(er, ar, br, cr, dr, m[5], 0x7a6d76e9, 6);br = rotl(br, 10); - dr = fn2(dr, er, ar, br, cr, m[12], 0x7a6d76e9, 9);ar = rotl(ar, 10); - cr = fn2(cr, dr, er, ar, br, m[2], 0x7a6d76e9, 12);er = rotl(er, 10); - br = fn2(br, cr, dr, er, ar, m[13], 0x7a6d76e9, 9);dr = rotl(dr, 10); - ar = fn2(ar, br, cr, dr, er, m[9], 0x7a6d76e9, 12);cr = rotl(cr, 10); - er = fn2(er, ar, br, cr, dr, m[7], 0x7a6d76e9, 5);br = rotl(br, 10); - dr = fn2(dr, er, ar, br, cr, m[10], 0x7a6d76e9, 15);ar = rotl(ar, 10); - cr = fn2(cr, dr, er, ar, br, m[14], 0x7a6d76e9, 8);er = rotl(er, 10); - - // M'j = 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11 - // K' = 0x00000000 - // S'j = 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 - br = fn1(br, cr, dr, er, ar, m[12], 0x00000000, 8);dr = rotl(dr, 10); - ar = fn1(ar, br, cr, dr, er, m[15], 0x00000000, 5);cr = rotl(cr, 10); - er = fn1(er, ar, br, cr, dr, m[10], 0x00000000, 12);br = rotl(br, 10); - dr = fn1(dr, er, ar, br, cr, m[4], 0x00000000, 9);ar = rotl(ar, 10); - cr = fn1(cr, dr, er, ar, br, m[1], 0x00000000, 12);er = rotl(er, 10); - br = fn1(br, cr, dr, er, ar, m[5], 0x00000000, 5);dr = rotl(dr, 10); - ar = fn1(ar, br, cr, dr, er, m[8], 0x00000000, 14);cr = rotl(cr, 10); - er = fn1(er, ar, br, cr, dr, m[7], 0x00000000, 6);br = rotl(br, 10); - dr = fn1(dr, er, ar, br, cr, m[6], 0x00000000, 8);ar = rotl(ar, 10); - cr = fn1(cr, dr, er, ar, br, m[2], 0x00000000, 13);er = rotl(er, 10); - br = fn1(br, cr, dr, er, ar, m[13], 0x00000000, 6);dr = rotl(dr, 10); - ar = fn1(ar, br, cr, dr, er, m[14], 0x00000000, 5);cr = rotl(cr, 10); - er = fn1(er, ar, br, cr, dr, m[0], 0x00000000, 15);br = rotl(br, 10); - dr = fn1(dr, er, ar, br, cr, m[3], 0x00000000, 13);ar = rotl(ar, 10); - cr = fn1(cr, dr, er, ar, br, m[9], 0x00000000, 11);er = rotl(er, 10); - br = fn1(br, cr, dr, er, ar, m[11], 0x00000000, 11);dr = rotl(dr, 10); - - // change state - var t = this._b + cl + dr | 0; - this._b = this._c + dl + er | 0; - this._c = this._d + el + ar | 0; - this._d = this._e + al + br | 0; - this._e = this._a + bl + cr | 0; - this._a = t; - }; - - RIPEMD160.prototype._digest = function () { - // create padding and handle blocks - this._block[this._blockOffset++] = 0x80; - if (this._blockOffset > 56) { - this._block.fill(0, this._blockOffset, 64); - this._update(); - this._blockOffset = 0; - } - - this._block.fill(0, this._blockOffset, 56); - this._block.writeUInt32LE(this._length[0], 56); - this._block.writeUInt32LE(this._length[1], 60); - this._update(); - - // produce result - var buffer = new Buffer(20); - buffer.writeInt32LE(this._a, 0); - buffer.writeInt32LE(this._b, 4); - buffer.writeInt32LE(this._c, 8); - buffer.writeInt32LE(this._d, 12); - buffer.writeInt32LE(this._e, 16); - return buffer; - }; - - function rotl(x, n) { - return x << n | x >>> 32 - n; - } - - function fn1(a, b, c, d, e, m, k, s) { - return rotl(a + (b ^ c ^ d) + m + k | 0, s) + e | 0; - } - - function fn2(a, b, c, d, e, m, k, s) { - return rotl(a + (b & c | ~b & d) + m + k | 0, s) + e | 0; - } - - function fn3(a, b, c, d, e, m, k, s) { - return rotl(a + ((b | ~c) ^ d) + m + k | 0, s) + e | 0; - } - - function fn4(a, b, c, d, e, m, k, s) { - return rotl(a + (b & d | c & ~d) + m + k | 0, s) + e | 0; - } - - function fn5(a, b, c, d, e, m, k, s) { - return rotl(a + (b ^ (c | ~d)) + m + k | 0, s) + e | 0; - } - - module.exports = RIPEMD160; - }).call(this, require("buffer").Buffer); - }, { "buffer": 47, "hash-base": 306, "inherits": 320 }], 347: [function (require, module, exports) { - arguments[4][143][0].apply(exports, arguments); - }, { "buffer": 47, "dup": 143 }], 348: [function (require, module, exports) { - module.exports = require('scryptsy'); - }, { "scryptsy": 349 }], 349: [function (require, module, exports) { - (function (Buffer) { - var pbkdf2Sync = require('pbkdf2').pbkdf2Sync; - - var MAX_VALUE = 0x7fffffff; - - // N = Cpu cost, r = Memory cost, p = parallelization cost - function scrypt(key, salt, N, r, p, dkLen, progressCallback) { - if (N === 0 || (N & N - 1) !== 0) throw Error('N must be > 0 and a power of 2'); - - if (N > MAX_VALUE / 128 / r) throw Error('Parameter N is too large'); - if (r > MAX_VALUE / 128 / p) throw Error('Parameter r is too large'); - - var XY = new Buffer(256 * r); - var V = new Buffer(128 * r * N); - - // pseudo global - var B32 = new Int32Array(16); // salsa20_8 - var x = new Int32Array(16); // salsa20_8 - var _X = new Buffer(64); // blockmix_salsa8 - - // pseudo global - var B = pbkdf2Sync(key, salt, 1, p * 128 * r, 'sha256'); - - var tickCallback; - if (progressCallback) { - var totalOps = p * N * 2; - var currentOp = 0; - - tickCallback = function tickCallback() { - ++currentOp; - - // send progress notifications once every 1,000 ops - if (currentOp % 1000 === 0) { - progressCallback({ - current: currentOp, - total: totalOps, - percent: currentOp / totalOps * 100.0 - }); - } - }; - } - - for (var i = 0; i < p; i++) { - smix(B, i * 128 * r, r, N, V, XY); - } - - return pbkdf2Sync(key, B, 1, dkLen, 'sha256'); - - // all of these functions are actually moved to the top - // due to function hoisting - - function smix(B, Bi, r, N, V, XY) { - var Xi = 0; - var Yi = 128 * r; - var i; - - B.copy(XY, Xi, Bi, Bi + Yi); - - for (i = 0; i < N; i++) { - XY.copy(V, i * Yi, Xi, Xi + Yi); - blockmix_salsa8(XY, Xi, Yi, r); - - if (tickCallback) tickCallback(); - } - - for (i = 0; i < N; i++) { - var offset = Xi + (2 * r - 1) * 64; - var j = XY.readUInt32LE(offset) & N - 1; - blockxor(V, j * Yi, XY, Xi, Yi); - blockmix_salsa8(XY, Xi, Yi, r); - - if (tickCallback) tickCallback(); - } - - XY.copy(B, Bi, Xi, Xi + Yi); - } - - function blockmix_salsa8(BY, Bi, Yi, r) { - var i; - - arraycopy(BY, Bi + (2 * r - 1) * 64, _X, 0, 64); - - for (i = 0; i < 2 * r; i++) { - blockxor(BY, i * 64, _X, 0, 64); - salsa20_8(_X); - arraycopy(_X, 0, BY, Yi + i * 64, 64); - } - - for (i = 0; i < r; i++) { - arraycopy(BY, Yi + i * 2 * 64, BY, Bi + i * 64, 64); - } - - for (i = 0; i < r; i++) { - arraycopy(BY, Yi + (i * 2 + 1) * 64, BY, Bi + (i + r) * 64, 64); - } - } - - function R(a, b) { - return a << b | a >>> 32 - b; - } - - function salsa20_8(B) { - var i; - - for (i = 0; i < 16; i++) { - B32[i] = (B[i * 4 + 0] & 0xff) << 0; - B32[i] |= (B[i * 4 + 1] & 0xff) << 8; - B32[i] |= (B[i * 4 + 2] & 0xff) << 16; - B32[i] |= (B[i * 4 + 3] & 0xff) << 24; - // B32[i] = B.readUInt32LE(i*4) <--- this is signficantly slower even in Node.js - } - - arraycopy(B32, 0, x, 0, 16); - - for (i = 8; i > 0; i -= 2) { - x[4] ^= R(x[0] + x[12], 7); - x[8] ^= R(x[4] + x[0], 9); - x[12] ^= R(x[8] + x[4], 13); - x[0] ^= R(x[12] + x[8], 18); - x[9] ^= R(x[5] + x[1], 7); - x[13] ^= R(x[9] + x[5], 9); - x[1] ^= R(x[13] + x[9], 13); - x[5] ^= R(x[1] + x[13], 18); - x[14] ^= R(x[10] + x[6], 7); - x[2] ^= R(x[14] + x[10], 9); - x[6] ^= R(x[2] + x[14], 13); - x[10] ^= R(x[6] + x[2], 18); - x[3] ^= R(x[15] + x[11], 7); - x[7] ^= R(x[3] + x[15], 9); - x[11] ^= R(x[7] + x[3], 13); - x[15] ^= R(x[11] + x[7], 18); - x[1] ^= R(x[0] + x[3], 7); - x[2] ^= R(x[1] + x[0], 9); - x[3] ^= R(x[2] + x[1], 13); - x[0] ^= R(x[3] + x[2], 18); - x[6] ^= R(x[5] + x[4], 7); - x[7] ^= R(x[6] + x[5], 9); - x[4] ^= R(x[7] + x[6], 13); - x[5] ^= R(x[4] + x[7], 18); - x[11] ^= R(x[10] + x[9], 7); - x[8] ^= R(x[11] + x[10], 9); - x[9] ^= R(x[8] + x[11], 13); - x[10] ^= R(x[9] + x[8], 18); - x[12] ^= R(x[15] + x[14], 7); - x[13] ^= R(x[12] + x[15], 9); - x[14] ^= R(x[13] + x[12], 13); - x[15] ^= R(x[14] + x[13], 18); - } - - for (i = 0; i < 16; ++i) { - B32[i] = x[i] + B32[i]; - }for (i = 0; i < 16; i++) { - var bi = i * 4; - B[bi + 0] = B32[i] >> 0 & 0xff; - B[bi + 1] = B32[i] >> 8 & 0xff; - B[bi + 2] = B32[i] >> 16 & 0xff; - B[bi + 3] = B32[i] >> 24 & 0xff; - // B.writeInt32LE(B32[i], i*4) //<--- this is signficantly slower even in Node.js - } - } - - // naive approach... going back to loop unrolling may yield additional performance - function blockxor(S, Si, D, Di, len) { - for (var i = 0; i < len; i++) { - D[Di + i] ^= S[Si + i]; - } - } - } - - function arraycopy(src, srcPos, dest, destPos, length) { - if (Buffer.isBuffer(src) && Buffer.isBuffer(dest)) { - src.copy(dest, destPos, srcPos, srcPos + length); - } else { - while (length--) { - dest[destPos++] = src[srcPos++]; - } - } - } - - module.exports = scrypt; - }).call(this, require("buffer").Buffer); - }, { "buffer": 47, "pbkdf2": 332 }], 350: [function (require, module, exports) { - arguments[4][144][0].apply(exports, arguments); - }, { "dup": 144, "safe-buffer": 347 }], 351: [function (require, module, exports) { - arguments[4][145][0].apply(exports, arguments); - }, { "./sha": 352, "./sha1": 353, "./sha224": 354, "./sha256": 355, "./sha384": 356, "./sha512": 357, "dup": 145 }], 352: [function (require, module, exports) { - arguments[4][146][0].apply(exports, arguments); - }, { "./hash": 350, "dup": 146, "inherits": 320, "safe-buffer": 347 }], 353: [function (require, module, exports) { - arguments[4][147][0].apply(exports, arguments); - }, { "./hash": 350, "dup": 147, "inherits": 320, "safe-buffer": 347 }], 354: [function (require, module, exports) { - arguments[4][148][0].apply(exports, arguments); - }, { "./hash": 350, "./sha256": 355, "dup": 148, "inherits": 320, "safe-buffer": 347 }], 355: [function (require, module, exports) { - arguments[4][149][0].apply(exports, arguments); - }, { "./hash": 350, "dup": 149, "inherits": 320, "safe-buffer": 347 }], 356: [function (require, module, exports) { - arguments[4][150][0].apply(exports, arguments); - }, { "./hash": 350, "./sha512": 357, "dup": 150, "inherits": 320, "safe-buffer": 347 }], 357: [function (require, module, exports) { - arguments[4][151][0].apply(exports, arguments); - }, { "./hash": 350, "dup": 151, "inherits": 320, "safe-buffer": 347 }], 358: [function (require, module, exports) { - arguments[4][170][0].apply(exports, arguments); - }, { "dup": 170 }], 359: [function (require, module, exports) { - (function (global) { - - var rng; - - if (global.crypto && crypto.getRandomValues) { - // WHATWG crypto-based RNG - http://wiki.whatwg.org/wiki/Crypto - // Moderately fast, high quality - var _rnds8 = new Uint8Array(16); - rng = function whatwgRNG() { - crypto.getRandomValues(_rnds8); - return _rnds8; - }; - } - - if (!rng) { - // Math.random()-based (RNG) - // - // If all else fails, use Math.random(). It's fast, but is of unspecified - // quality. - var _rnds = new Array(16); - rng = function rng() { - for (var i = 0, r; i < 16; i++) { - if ((i & 0x03) === 0) r = Math.random() * 0x100000000; - _rnds[i] = r >>> ((i & 0x03) << 3) & 0xff; - } - - return _rnds; - }; - } - - module.exports = rng; - }).call(this, typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}); - }, {}], 360: [function (require, module, exports) { - // uuid.js - // - // Copyright (c) 2010-2012 Robert Kieffer - // MIT License - http://opensource.org/licenses/mit-license.php - - // Unique ID creation requires a high quality random # generator. We feature - // detect to determine the best RNG source, normalizing to a function that - // returns 128-bits of randomness, since that's what's usually required - var _rng = require('./rng'); - - // Maps for number <-> hex string conversion - var _byteToHex = []; - var _hexToByte = {}; - for (var i = 0; i < 256; i++) { - _byteToHex[i] = (i + 0x100).toString(16).substr(1); - _hexToByte[_byteToHex[i]] = i; - } - - // **`parse()` - Parse a UUID into it's component bytes** - function parse(s, buf, offset) { - var i = buf && offset || 0, - ii = 0; - - buf = buf || []; - s.toLowerCase().replace(/[0-9a-f]{2}/g, function (oct) { - if (ii < 16) { - // Don't overflow! - buf[i + ii++] = _hexToByte[oct]; - } - }); - - // Zero out remaining bytes if string was short - while (ii < 16) { - buf[i + ii++] = 0; - } - - return buf; - } - - // **`unparse()` - Convert UUID byte array (ala parse()) into a string** - function unparse(buf, offset) { - var i = offset || 0, - bth = _byteToHex; - return bth[buf[i++]] + bth[buf[i++]] + bth[buf[i++]] + bth[buf[i++]] + '-' + bth[buf[i++]] + bth[buf[i++]] + '-' + bth[buf[i++]] + bth[buf[i++]] + '-' + bth[buf[i++]] + bth[buf[i++]] + '-' + bth[buf[i++]] + bth[buf[i++]] + bth[buf[i++]] + bth[buf[i++]] + bth[buf[i++]] + bth[buf[i++]]; - } - - // **`v1()` - Generate time-based UUID** - // - // Inspired by https://github.com/LiosK/UUID.js - // and http://docs.python.org/library/uuid.html - - // random #'s we need to init node and clockseq - var _seedBytes = _rng(); - - // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) - var _nodeId = [_seedBytes[0] | 0x01, _seedBytes[1], _seedBytes[2], _seedBytes[3], _seedBytes[4], _seedBytes[5]]; - - // Per 4.2.2, randomize (14 bit) clockseq - var _clockseq = (_seedBytes[6] << 8 | _seedBytes[7]) & 0x3fff; - - // Previous uuid creation time - var _lastMSecs = 0, - _lastNSecs = 0; - - // See https://github.com/broofa/node-uuid for API details - function v1(options, buf, offset) { - var i = buf && offset || 0; - var b = buf || []; - - options = options || {}; - - var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; - - // UUID timestamps are 100 nano-second units since the Gregorian epoch, - // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so - // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' - // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. - var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime(); - - // Per 4.2.1.2, use count of uuid's generated during the current clock - // cycle to simulate higher resolution clock - var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; - - // Time since last uuid creation (in msecs) - var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; - - // Per 4.2.1.2, Bump clockseq on clock regression - if (dt < 0 && options.clockseq === undefined) { - clockseq = clockseq + 1 & 0x3fff; - } - - // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new - // time interval - if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { - nsecs = 0; - } - - // Per 4.2.1.2 Throw error if too many uuids are requested - if (nsecs >= 10000) { - throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec'); - } - - _lastMSecs = msecs; - _lastNSecs = nsecs; - _clockseq = clockseq; - - // Per 4.1.4 - Convert from unix epoch to Gregorian epoch - msecs += 12219292800000; - - // `time_low` - var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; - b[i++] = tl >>> 24 & 0xff; - b[i++] = tl >>> 16 & 0xff; - b[i++] = tl >>> 8 & 0xff; - b[i++] = tl & 0xff; - - // `time_mid` - var tmh = msecs / 0x100000000 * 10000 & 0xfffffff; - b[i++] = tmh >>> 8 & 0xff; - b[i++] = tmh & 0xff; - - // `time_high_and_version` - b[i++] = tmh >>> 24 & 0xf | 0x10; // include version - b[i++] = tmh >>> 16 & 0xff; - - // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) - b[i++] = clockseq >>> 8 | 0x80; - - // `clock_seq_low` - b[i++] = clockseq & 0xff; - - // `node` - var node = options.node || _nodeId; - for (var n = 0; n < 6; n++) { - b[i + n] = node[n]; - } - - return buf ? buf : unparse(b); - } - - // **`v4()` - Generate random UUID** - - // See https://github.com/broofa/node-uuid for API details - function v4(options, buf, offset) { - // Deprecated - 'format' argument, as supported in v1.2 - var i = buf && offset || 0; - - if (typeof options == 'string') { - buf = options == 'binary' ? new Array(16) : null; - options = null; - } - options = options || {}; - - var rnds = options.random || (options.rng || _rng)(); - - // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` - rnds[6] = rnds[6] & 0x0f | 0x40; - rnds[8] = rnds[8] & 0x3f | 0x80; - - // Copy bytes to buffer, if provided - if (buf) { - for (var ii = 0; ii < 16; ii++) { - buf[i + ii] = rnds[ii]; - } - } - - return buf || unparse(rnds); - } - - // Export public API - var uuid = v4; - uuid.v1 = v1; - uuid.v4 = v4; - uuid.parse = parse; - uuid.unparse = unparse; - - module.exports = uuid; - }, { "./rng": 359 }], 361: [function (require, module, exports) { - (function (global, Buffer) { - /* - This file is part of web3.js. - - web3.js is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - web3.js is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with web3.js. If not, see . - */ - /** - * @file accounts.js - * @author Fabian Vogelsteller - * @date 2017 - */ - - "use strict"; - - var _ = require("underscore"); - var core = require('web3-core'); - var Method = require('web3-core-method'); - var Promise = require('bluebird'); - var Account = require("eth-lib/lib/account"); - var Hash = require("eth-lib/lib/hash"); - var RLP = require("eth-lib/lib/rlp"); - var Nat = require("eth-lib/lib/nat"); - var Bytes = require("eth-lib/lib/bytes"); - var cryp = typeof global === 'undefined' ? require('crypto-browserify') : require('crypto'); - var scryptsy = require('scrypt.js'); - var uuid = require('uuid'); - var utils = require('web3-utils'); - var helpers = require('web3-core-helpers'); - - var isNot = function isNot(value) { - return _.isUndefined(value) || _.isNull(value); - }; - - var trimLeadingZero = function trimLeadingZero(hex) { - while (hex && hex.startsWith('0x0')) { - hex = '0x' + hex.slice(3); - } - return hex; - }; - - var makeEven = function makeEven(hex) { - if (hex.length % 2 === 1) { - hex = hex.replace('0x', '0x0'); - } - return hex; - }; - - var Accounts = function Accounts() { - var _this = this; - - // sets _requestmanager - core.packageInit(this, arguments); - - // remove unecessary core functions - delete this.BatchRequest; - delete this.extend; - - var _ethereumCall = [new Method({ - name: 'getId', - call: 'net_version', - params: 0, - outputFormatter: utils.hexToNumber - }), new Method({ - name: 'getGasPrice', - call: 'eth_gasPrice', - params: 0 - }), new Method({ - name: 'getTransactionCount', - call: 'eth_getTransactionCount', - params: 2, - inputFormatter: [function (address) { - if (utils.isAddress(address)) { - return address; - } else { - throw new Error('Address ' + address + ' is not a valid address to get the "transactionCount".'); - } - }, function () { - return 'latest'; - }] - })]; - // attach methods to this._ethereumCall - this._ethereumCall = {}; - _.each(_ethereumCall, function (method) { - method.attachToObject(_this._ethereumCall); - method.setRequestManager(_this._requestManager); - }); - - this.wallet = new Wallet(this); - }; - - Accounts.prototype._addAccountFunctions = function (account) { - var _this = this; - - // add sign functions - account.signTransaction = function signTransaction(tx, callback) { - return _this.signTransaction(tx, account.privateKey, callback); - }; - account.sign = function sign(data) { - return _this.sign(data, account.privateKey); - }; - - account.encrypt = function encrypt(password, options) { - return _this.encrypt(account.privateKey, password, options); - }; - - return account; - }; - - Accounts.prototype.create = function create(entropy) { - return this._addAccountFunctions(Account.create(entropy || utils.randomHex(32))); - }; - - Accounts.prototype.privateKeyToAccount = function privateKeyToAccount(privateKey) { - return this._addAccountFunctions(Account.fromPrivate(privateKey)); - }; - - Accounts.prototype.signTransaction = function signTransaction(tx, privateKey, callback) { - var _this = this; - - function signed(tx) { - - if (!tx.gas && !tx.gasLimit) { - throw new Error('"gas" is missing'); - } - - var transaction = { - nonce: utils.numberToHex(tx.nonce), - to: tx.to ? helpers.formatters.inputAddressFormatter(tx.to) : '0x', - data: tx.data || '0x', - value: tx.value ? utils.numberToHex(tx.value) : "0x", - gas: utils.numberToHex(tx.gasLimit || tx.gas), - gasPrice: utils.numberToHex(tx.gasPrice), - chainId: utils.numberToHex(tx.chainId) - }; - - var rlpEncoded = RLP.encode([Bytes.fromNat(transaction.nonce), Bytes.fromNat(transaction.gasPrice), Bytes.fromNat(transaction.gas), transaction.to.toLowerCase(), Bytes.fromNat(transaction.value), transaction.data, Bytes.fromNat(transaction.chainId || "0x1"), "0x", "0x"]); - - var hash = Hash.keccak256(rlpEncoded); - - var signature = Account.makeSigner(Nat.toNumber(transaction.chainId || "0x1") * 2 + 35)(Hash.keccak256(rlpEncoded), privateKey); - - var rawTx = RLP.decode(rlpEncoded).slice(0, 6).concat(Account.decodeSignature(signature)); - - rawTx[7] = makeEven(trimLeadingZero(rawTx[7])); - rawTx[8] = makeEven(trimLeadingZero(rawTx[8])); - - var rawTransaction = RLP.encode(rawTx); - - var values = RLP.decode(rawTransaction); - var result = { - messageHash: hash, - v: trimLeadingZero(values[6]), - r: trimLeadingZero(values[7]), - s: trimLeadingZero(values[8]), - rawTransaction: rawTransaction - }; - if (_.isFunction(callback)) { - callback(null, result); - } - return result; - } - - // Returns synchronously if nonce, chainId and price are provided - if (tx.nonce !== undefined && tx.chainId !== undefined && tx.gasPrice !== undefined) { - return Promise.resolve(signed(tx)); - } - - // Otherwise, get the missing info from the Ethereum Node - return Promise.all([isNot(tx.chainId) ? _this._ethereumCall.getId() : tx.chainId, isNot(tx.gasPrice) ? _this._ethereumCall.getGasPrice() : tx.gasPrice, isNot(tx.nonce) ? _this._ethereumCall.getTransactionCount(_this.privateKeyToAccount(privateKey).address) : tx.nonce]).then(function (args) { - if (isNot(args[0]) || isNot(args[1]) || isNot(args[2])) { - throw new Error('One of the values "chainId", "gasPrice", or "nonce" couldn\'t be fetched: ' + JSON.stringify(args)); - } - return signed(_.extend(tx, { chainId: args[0], gasPrice: args[1], nonce: args[2] })); - }); - }; - - /* jshint ignore:start */ - Accounts.prototype.recoverTransaction = function recoverTransaction(rawTx) { - var values = RLP.decode(rawTx); - var signature = Account.encodeSignature(values.slice(6, 9)); - var recovery = Bytes.toNumber(values[6]); - var extraData = recovery < 35 ? [] : [Bytes.fromNumber(recovery - 35 >> 1), "0x", "0x"]; - var signingData = values.slice(0, 6).concat(extraData); - var signingDataHex = RLP.encode(signingData); - return Account.recover(Hash.keccak256(signingDataHex), signature); - }; - /* jshint ignore:end */ - - Accounts.prototype.hashMessage = function hashMessage(data) { - var message = utils.isHexStrict(data) ? utils.hexToUtf8(data) : data; - var ethMessage = "\x19Ethereum Signed Message:\n" + message.length + message; - return Hash.keccak256s(ethMessage); - }; - - Accounts.prototype.sign = function sign(data, privateKey) { - - var hash = this.hashMessage(data); - var signature = Account.sign(hash, privateKey); - var vrs = Account.decodeSignature(signature); - return { - message: data, - messageHash: hash, - v: vrs[0], - r: vrs[1], - s: vrs[2], - signature: signature - }; - }; - - Accounts.prototype.recover = function recover(hash, signature) { - - if (_.isObject(hash)) { - return this.recover(hash.messageHash, Account.encodeSignature([hash.v, hash.r, hash.s])); - } - - if (!utils.isHexStrict(hash)) { - hash = this.hashMessage(hash); - } - - if (arguments.length === 4) { - return this.recover(hash, Account.encodeSignature([].slice.call(arguments, 1, 4))); // v, r, s - } - return Account.recover(hash, signature); - }; - - // Taken from https://github.com/ethereumjs/ethereumjs-wallet - Accounts.prototype.decrypt = function (v3Keystore, password, nonStrict) { - /* jshint maxcomplexity: 10 */ - - if (!_.isString(password)) { - throw new Error('No password given.'); - } - - var json = _.isObject(v3Keystore) ? v3Keystore : JSON.parse(nonStrict ? v3Keystore.toLowerCase() : v3Keystore); - - if (json.version !== 3) { - throw new Error('Not a valid V3 wallet'); - } - - var derivedKey; - var kdfparams; - if (json.crypto.kdf === 'scrypt') { - kdfparams = json.crypto.kdfparams; - - // FIXME: support progress reporting callback - derivedKey = scryptsy(new Buffer(password), new Buffer(kdfparams.salt, 'hex'), kdfparams.n, kdfparams.r, kdfparams.p, kdfparams.dklen); - } else if (json.crypto.kdf === 'pbkdf2') { - kdfparams = json.crypto.kdfparams; - - if (kdfparams.prf !== 'hmac-sha256') { - throw new Error('Unsupported parameters to PBKDF2'); - } - - derivedKey = cryp.pbkdf2Sync(new Buffer(password), new Buffer(kdfparams.salt, 'hex'), kdfparams.c, kdfparams.dklen, 'sha256'); - } else { - throw new Error('Unsupported key derivation scheme'); - } - - var ciphertext = new Buffer(json.crypto.ciphertext, 'hex'); - - var mac = utils.sha3(Buffer.concat([derivedKey.slice(16, 32), ciphertext])).replace('0x', ''); - if (mac !== json.crypto.mac) { - throw new Error('Key derivation failed - possibly wrong password'); - } - - var decipher = cryp.createDecipheriv(json.crypto.cipher, derivedKey.slice(0, 16), new Buffer(json.crypto.cipherparams.iv, 'hex')); - var seed = '0x' + Buffer.concat([decipher.update(ciphertext), decipher.final()]).toString('hex'); - - return this.privateKeyToAccount(seed); - }; - - Accounts.prototype.encrypt = function (privateKey, password, options) { - /* jshint maxcomplexity: 20 */ - var account = this.privateKeyToAccount(privateKey); - - options = options || {}; - var salt = options.salt || cryp.randomBytes(32); - var iv = options.iv || cryp.randomBytes(16); - - var derivedKey; - var kdf = options.kdf || 'scrypt'; - var kdfparams = { - dklen: options.dklen || 32, - salt: salt.toString('hex') - }; - - if (kdf === 'pbkdf2') { - kdfparams.c = options.c || 262144; - kdfparams.prf = 'hmac-sha256'; - derivedKey = cryp.pbkdf2Sync(new Buffer(password), salt, kdfparams.c, kdfparams.dklen, 'sha256'); - } else if (kdf === 'scrypt') { - // FIXME: support progress reporting callback - kdfparams.n = options.n || 8192; // 2048 4096 8192 16384 - kdfparams.r = options.r || 8; - kdfparams.p = options.p || 1; - derivedKey = scryptsy(new Buffer(password), salt, kdfparams.n, kdfparams.r, kdfparams.p, kdfparams.dklen); - } else { - throw new Error('Unsupported kdf'); - } - - var cipher = cryp.createCipheriv(options.cipher || 'aes-128-ctr', derivedKey.slice(0, 16), iv); - if (!cipher) { - throw new Error('Unsupported cipher'); - } - - var ciphertext = Buffer.concat([cipher.update(new Buffer(account.privateKey.replace('0x', ''), 'hex')), cipher.final()]); - - var mac = utils.sha3(Buffer.concat([derivedKey.slice(16, 32), new Buffer(ciphertext, 'hex')])).replace('0x', ''); - - return { - version: 3, - id: uuid.v4({ random: options.uuid || cryp.randomBytes(16) }), - address: account.address.toLowerCase().replace('0x', ''), - crypto: { - ciphertext: ciphertext.toString('hex'), - cipherparams: { - iv: iv.toString('hex') - }, - cipher: options.cipher || 'aes-128-ctr', - kdf: kdf, - kdfparams: kdfparams, - mac: mac.toString('hex') - } - }; - }; - - // Note: this is trying to follow closely the specs on - // http://web3js.readthedocs.io/en/1.0/web3-eth-accounts.html - - function Wallet(accounts) { - this._accounts = accounts; - this.length = 0; - this.defaultKeyName = "web3js_wallet"; - } - - Wallet.prototype._findSafeIndex = function (pointer) { - pointer = pointer || 0; - if (_.has(this, pointer)) { - return this._findSafeIndex(pointer + 1); - } else { - return pointer; - } - }; - - Wallet.prototype._currentIndexes = function () { - var keys = Object.keys(this); - var indexes = keys.map(function (key) { - return parseInt(key); - }).filter(function (n) { - return n < 9e20; - }); - - return indexes; - }; - - Wallet.prototype.create = function (numberOfAccounts, entropy) { - for (var i = 0; i < numberOfAccounts; ++i) { - this.add(this._accounts.create(entropy).privateKey); - } - return this; - }; - - Wallet.prototype.add = function (account) { - - if (_.isString(account)) { - account = this._accounts.privateKeyToAccount(account); - } - if (!this[account.address]) { - account = this._accounts.privateKeyToAccount(account.privateKey); - account.index = this._findSafeIndex(); - - this[account.index] = account; - this[account.address] = account; - this[account.address.toLowerCase()] = account; - - this.length++; - - return account; - } else { - return this[account.address]; - } - }; - - Wallet.prototype.remove = function (addressOrIndex) { - var account = this[addressOrIndex]; - - if (account && account.address) { - // address - this[account.address].privateKey = null; - delete this[account.address]; - // address lowercase - this[account.address.toLowerCase()].privateKey = null; - delete this[account.address.toLowerCase()]; - // index - this[account.index].privateKey = null; - delete this[account.index]; - - this.length--; - - return true; - } else { - return false; - } - }; - - Wallet.prototype.clear = function () { - var _this = this; - var indexes = this._currentIndexes(); - - indexes.forEach(function (index) { - _this.remove(index); - }); - - return this; - }; - - Wallet.prototype.encrypt = function (password, options) { - var _this = this; - var indexes = this._currentIndexes(); - - var accounts = indexes.map(function (index) { - return _this[index].encrypt(password, options); - }); - - return accounts; - }; - - Wallet.prototype.decrypt = function (encryptedWallet, password) { - var _this = this; - - encryptedWallet.forEach(function (keystore) { - var account = _this._accounts.decrypt(keystore, password); - - if (account) { - _this.add(account); - } else { - throw new Error('Couldn\'t decrypt accounts. Password wrong?'); - } - }); - - return this; - }; - - Wallet.prototype.save = function (password, keyName) { - localStorage.setItem(keyName || this.defaultKeyName, JSON.stringify(this.encrypt(password))); - - return true; - }; - - Wallet.prototype.load = function (password, keyName) { - var keystore = localStorage.getItem(keyName || this.defaultKeyName); - - if (keystore) { - try { - keystore = JSON.parse(keystore); - } catch (e) {} - } - - return this.decrypt(keystore || [], password); - }; - - if (typeof localStorage === 'undefined') { - delete Wallet.prototype.save; - delete Wallet.prototype.load; - } - - module.exports = Accounts; - }).call(this, typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}, require("buffer").Buffer); - }, { "bluebird": 229, "buffer": 47, "crypto": 56, "crypto-browserify": 269, "eth-lib/lib/account": 298, "eth-lib/lib/bytes": 300, "eth-lib/lib/hash": 301, "eth-lib/lib/nat": 302, "eth-lib/lib/rlp": 303, "scrypt.js": 348, "underscore": 358, "uuid": 360, "web3-core": 200, "web3-core-helpers": 184, "web3-core-method": 186, "web3-utils": 390 }], 362: [function (require, module, exports) { - arguments[4][170][0].apply(exports, arguments); - }, { "dup": 170 }], 363: [function (require, module, exports) { - /* - This file is part of web3.js. - - web3.js is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - web3.js is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with web3.js. If not, see . - */ - /** - * @file contract.js - * - * To initialize a contract use: - * - * var Contract = require('web3-eth-contract'); - * Contract.setProvider('ws://localhost:8546'); - * var contract = new Contract(abi, address, ...); - * - * @author Fabian Vogelsteller - * @date 2017 - */ - - "use strict"; - - var _ = require('underscore'); - var core = require('web3-core'); - var Method = require('web3-core-method'); - var utils = require('web3-utils'); - var Subscription = require('web3-core-subscriptions').subscription; - var formatters = require('web3-core-helpers').formatters; - var errors = require('web3-core-helpers').errors; - var promiEvent = require('web3-core-promievent'); - var abi = require('web3-eth-abi'); - - /** - * Should be called to create new contract instance - * - * @method Contract - * @constructor - * @param {Array} jsonInterface - * @param {String} address - * @param {Object} options - */ - var Contract = function Contract(jsonInterface, address, options) { - var _this = this, - args = Array.prototype.slice.call(arguments); - - if (!(this instanceof Contract)) { - throw new Error('Please use the "new" keyword to instantiate a web3.eth.contract() object!'); - } - - // sets _requestmanager - core.packageInit(this, [this.constructor.currentProvider]); - - this.clearSubscriptions = this._requestManager.clearSubscriptions; - - if (!jsonInterface || !Array.isArray(jsonInterface)) { - throw new Error('You must provide the json interface of the contract when instantiating a contract object.'); - } - - // create the options object - this.options = {}; - - var lastArg = args[args.length - 1]; - if (_.isObject(lastArg) && !_.isArray(lastArg)) { - options = lastArg; - - this.options = _.extend(this.options, this._getOrSetDefaultOptions(options)); - if (_.isObject(address)) { - address = null; - } - } - - // set address - Object.defineProperty(this.options, 'address', { - set: function set(value) { - if (value) { - _this._address = utils.toChecksumAddress(formatters.inputAddressFormatter(value)); - } - }, - get: function get() { - return _this._address; - }, - enumerable: true - }); - - // add method and event signatures, when the jsonInterface gets set - Object.defineProperty(this.options, 'jsonInterface', { - set: function set(value) { - _this.methods = {}; - _this.events = {}; - - _this._jsonInterface = value.map(function (method) { - var func, funcName; - - if (method.name) { - funcName = utils._jsonInterfaceMethodToString(method); - } - - // function - if (method.type === 'function') { - method.signature = abi.encodeFunctionSignature(funcName); - func = _this._createTxObject.bind({ - method: method, - parent: _this - }); - - // add method only if not one already exists - if (!_this.methods[method.name]) { - _this.methods[method.name] = func; - } else { - var cascadeFunc = _this._createTxObject.bind({ - method: method, - parent: _this, - nextMethod: _this.methods[method.name] - }); - _this.methods[method.name] = cascadeFunc; - } - - // definitely add the method based on its signature - _this.methods[method.signature] = func; - - // add method by name - _this.methods[funcName] = func; - - // event - } else if (method.type === 'event') { - method.signature = abi.encodeEventSignature(funcName); - var event = _this._on.bind(_this, method.signature); - - // add method only if not already exists - if (!_this.events[method.name] || _this.events[method.name].name === 'bound ') _this.events[method.name] = event; - - // definitely add the method based on its signature - _this.events[method.signature] = event; - - // add event by name - _this.events[funcName] = event; - } - - return method; - }); - - // add allEvents - _this.events.allEvents = _this._on.bind(_this, 'allevents'); - - return _this._jsonInterface; - }, - get: function get() { - return _this._jsonInterface; - }, - enumerable: true - }); - - // get default account from the Class - var defaultAccount = this.constructor.defaultAccount; - var defaultBlock = this.constructor.defaultBlock || 'latest'; - - Object.defineProperty(this, 'defaultAccount', { - get: function get() { - return defaultAccount; - }, - set: function set(val) { - if (val) { - defaultAccount = utils.toChecksumAddress(formatters.inputAddressFormatter(val)); - } - - return val; - }, - enumerable: true - }); - Object.defineProperty(this, 'defaultBlock', { - get: function get() { - return defaultBlock; - }, - set: function set(val) { - defaultBlock = val; - - return val; - }, - enumerable: true - }); - - // properties - this.methods = {}; - this.events = {}; - - this._address = null; - this._jsonInterface = []; - - // set getter/setter properties - this.options.address = address; - this.options.jsonInterface = jsonInterface; - }; - - Contract.setProvider = function (provider, accounts) { - // Contract.currentProvider = provider; - core.packageInit(this, [provider]); - - this._ethAccounts = accounts; - }; - - /** - * Get the callback and modiufy the array if necessary - * - * @method _getCallback - * @param {Array} args - * @return {Function} the callback - */ - Contract.prototype._getCallback = function getCallback(args) { - if (args && _.isFunction(args[args.length - 1])) { - return args.pop(); // modify the args array! - } - }; - - /** - * Checks that no listener with name "newListener" or "removeListener" is added. - * - * @method _checkListener - * @param {String} type - * @param {String} event - * @return {Object} the contract instance - */ - Contract.prototype._checkListener = function (type, event) { - if (event === type) { - throw new Error('The event "' + type + '" is a reserved event name, you can\'t use it.'); - } - }; - - /** - * Use default values, if options are not available - * - * @method _getOrSetDefaultOptions - * @param {Object} options the options gived by the user - * @return {Object} the options with gaps filled by defaults - */ - Contract.prototype._getOrSetDefaultOptions = function getOrSetDefaultOptions(options) { - var gasPrice = options.gasPrice ? String(options.gasPrice) : null; - var from = options.from ? utils.toChecksumAddress(formatters.inputAddressFormatter(options.from)) : null; - - options.data = options.data || this.options.data; - - options.from = from || this.options.from; - options.gasPrice = gasPrice || this.options.gasPrice; - options.gas = options.gas || options.gasLimit || this.options.gas; - - // TODO replace with only gasLimit? - delete options.gasLimit; - - return options; - }; - - /** - * Should be used to encode indexed params and options to one final object - * - * @method _encodeEventABI - * @param {Object} event - * @param {Object} options - * @return {Object} everything combined together and encoded - */ - Contract.prototype._encodeEventABI = function (event, options) { - options = options || {}; - var filter = options.filter || {}, - result = {}; - - ['fromBlock', 'toBlock'].filter(function (f) { - return options[f] !== undefined; - }).forEach(function (f) { - result[f] = formatters.inputBlockNumberFormatter(options[f]); - }); - - // use given topics - if (_.isArray(options.topics)) { - result.topics = options.topics; - - // create topics based on filter - } else { - - result.topics = []; - - // add event signature - if (event && !event.anonymous && event.name !== 'ALLEVENTS') { - result.topics.push(event.signature); - } - - // add event topics (indexed arguments) - if (event.name !== 'ALLEVENTS') { - var indexedTopics = event.inputs.filter(function (i) { - return i.indexed === true; - }).map(function (i) { - var value = filter[i.name]; - if (!value) { - return null; - } - - // TODO: https://github.com/ethereum/web3.js/issues/344 - - if (_.isArray(value)) { - return value.map(function (v) { - return abi.encodeParameter(i.type, v); - }); - } - return abi.encodeParameter(i.type, value); - }); - - result.topics = result.topics.concat(indexedTopics); - } - - if (!result.topics.length) delete result.topics; - } - - if (this.options.address) { - result.address = this.options.address.toLowerCase(); - } - - return result; - }; - - /** - * Should be used to decode indexed params and options - * - * @method _decodeEventABI - * @param {Object} data - * @return {Object} result object with decoded indexed && not indexed params - */ - Contract.prototype._decodeEventABI = function (data) { - var event = this; - - data.data = data.data || ''; - data.topics = data.topics || []; - var result = formatters.outputLogFormatter(data); - - // if allEvents get the right event - if (event.name === 'ALLEVENTS') { - event = event.jsonInterface.find(function (intf) { - return intf.signature === data.topics[0]; - }) || { anonymous: true }; - } - - // create empty inputs if none are present (e.g. anonymous events on allEvents) - event.inputs = event.inputs || []; - - var argTopics = event.anonymous ? data.topics : data.topics.slice(1); - - result.returnValues = abi.decodeLog(event.inputs, data.data, argTopics); - delete result.returnValues.__length__; - - // add name - result.event = event.name; - - // add signature - result.signature = event.anonymous || !data.topics[0] ? null : data.topics[0]; - - // move the data and topics to "raw" - result.raw = { - data: result.data, - topics: result.topics - }; - delete result.data; - delete result.topics; - - return result; - }; - - /** - * Encodes an ABI for a method, including signature or the method. - * Or when constructor encodes only the constructor parameters. - * - * @method _encodeMethodABI - * @param {Mixed} args the arguments to encode - * @param {String} the encoded ABI - */ - Contract.prototype._encodeMethodABI = function _encodeMethodABI() { - var methodSignature = this._method.signature, - args = this.arguments || []; - - var signature = false, - paramsABI = this._parent.options.jsonInterface.filter(function (json) { - return methodSignature === 'constructor' && json.type === methodSignature || (json.signature === methodSignature || json.signature === methodSignature.replace('0x', '') || json.name === methodSignature) && json.type === 'function'; - }).map(function (json) { - var inputLength = _.isArray(json.inputs) ? json.inputs.length : 0; - - if (inputLength !== args.length) { - throw new Error('The number of arguments is not matching the methods required number. You need to pass ' + inputLength + ' arguments.'); - } - - if (json.type === 'function') { - signature = json.signature; - } - return _.isArray(json.inputs) ? json.inputs.map(function (input) { - return input.type; - }) : []; - }).map(function (types) { - return abi.encodeParameters(types, args).replace('0x', ''); - })[0] || ''; - - // return constructor - if (methodSignature === 'constructor') { - if (!this._deployData) throw new Error('The contract has no contract data option set. This is necessary to append the constructor parameters.'); - - return this._deployData + paramsABI; - - // return method - } else { - - var returnValue = signature ? signature + paramsABI : paramsABI; - - if (!returnValue) { - throw new Error('Couldn\'t find a matching contract method named "' + this._method.name + '".'); - } else { - return returnValue; - } - } - }; - - /** - * Decode method return values - * - * @method _decodeMethodReturn - * @param {Array} outputs - * @param {String} returnValues - * @return {Object} decoded output return values - */ - Contract.prototype._decodeMethodReturn = function (outputs, returnValues) { - if (!returnValues) { - return null; - } - - returnValues = returnValues.length >= 2 ? returnValues.slice(2) : returnValues; - var result = abi.decodeParameters(outputs, returnValues); - - if (result.__length__ === 1) { - return result[0]; - } else { - delete result.__length__; - return result; - } - }; - - /** - * Deploys a contract and fire events based on its state: transactionHash, receipt - * - * All event listeners will be removed, once the last possible event is fired ("error", or "receipt") - * - * @method deploy - * @param {Object} options - * @param {Function} callback - * @return {Object} EventEmitter possible events are "error", "transactionHash" and "receipt" - */ - Contract.prototype.deploy = function (options, callback) { - - options = options || {}; - - options.arguments = options.arguments || []; - options = this._getOrSetDefaultOptions(options); - - // return error, if no "data" is specified - if (!options.data) { - return utils._fireError(new Error('No "data" specified in neither the given options, nor the default options.'), null, null, callback); - } - - var constructor = _.find(this.options.jsonInterface, function (method) { - return method.type === 'constructor'; - }) || {}; - constructor.signature = 'constructor'; - - return this._createTxObject.apply({ - method: constructor, - parent: this, - deployData: options.data, - _ethAccounts: this.constructor._ethAccounts - }, options.arguments); - }; - - /** - * Gets the event signature and outputformatters - * - * @method _generateEventOptions - * @param {Object} event - * @param {Object} options - * @param {Function} callback - * @return {Object} the event options object - */ - Contract.prototype._generateEventOptions = function () { - var args = Array.prototype.slice.call(arguments); - - // get the callback - var callback = this._getCallback(args); - - // get the options - var options = _.isObject(args[args.length - 1]) ? args.pop() : {}; - - var event = _.isString(args[0]) ? args[0] : 'allevents'; - event = event.toLowerCase() === 'allevents' ? { - name: 'ALLEVENTS', - jsonInterface: this.options.jsonInterface - } : this.options.jsonInterface.find(function (json) { - return json.type === 'event' && (json.name === event || json.signature === '0x' + event.replace('0x', '')); - }); - - if (!event) { - throw new Error('Event "' + event.name + '" doesn\'t exist in this contract.'); - } - - if (!utils.isAddress(this.options.address)) { - throw new Error('This contract object doesn\'t have address set yet, please set an address first.'); - } - - return { - params: this._encodeEventABI(event, options), - event: event, - callback: callback - }; - }; - - /** - * Adds event listeners and creates a subscription, and remove it once its fired. - * - * @method clone - * @return {Object} the event subscription - */ - Contract.prototype.clone = function () { - return new Contract(this.options.jsonInterface, this.options.address, this.options); - }; - - /** - * Adds event listeners and creates a subscription, and remove it once its fired. - * - * @method once - * @param {String} event - * @param {Object} options - * @param {Function} callback - * @return {Object} the event subscription - */ - Contract.prototype.once = function (event, options, callback) { - var args = Array.prototype.slice.call(arguments); - - // get the callback - callback = this._getCallback(args); - - if (!callback) { - throw new Error('Once requires a callback as the second parameter.'); - } - - // don't allow fromBlock - if (options) delete options.fromBlock; - - // don't return as once shouldn't provide "on" - this._on(event, options, function (err, res, sub) { - sub.unsubscribe(); - if (_.isFunction(callback)) { - callback(err, res, sub); - } - }); - - return undefined; - }; - - /** - * Adds event listeners and creates a subscription. - * - * @method _on - * @param {String} event - * @param {Object} options - * @param {Function} callback - * @return {Object} the event subscription - */ - Contract.prototype._on = function () { - var subOptions = this._generateEventOptions.apply(this, arguments); - - // prevent the event "newListener" and "removeListener" from being overwritten - this._checkListener('newListener', subOptions.event.name, subOptions.callback); - this._checkListener('removeListener', subOptions.event.name, subOptions.callback); - - // TODO check if listener already exists? and reuse subscription if options are the same. - - // create new subscription - var subscription = new Subscription({ - subscription: { - params: 1, - inputFormatter: [formatters.inputLogFormatter], - outputFormatter: this._decodeEventABI.bind(subOptions.event), - // DUBLICATE, also in web3-eth - subscriptionHandler: function subscriptionHandler(output) { - if (output.removed) { - this.emit('changed', output); - } else { - this.emit('data', output); - } - - if (_.isFunction(this.callback)) { - this.callback(null, output, this); - } - } - }, - type: 'eth', - requestManager: this._requestManager - }); - subscription.subscribe('logs', subOptions.params, subOptions.callback || function () {}); - - return subscription; - }; - - /** - * Get past events from contracts - * - * @method getPastEvents - * @param {String} event - * @param {Object} options - * @param {Function} callback - * @return {Object} the promievent - */ - Contract.prototype.getPastEvents = function () { - var subOptions = this._generateEventOptions.apply(this, arguments); - - var getPastLogs = new Method({ - name: 'getPastLogs', - call: 'eth_getLogs', - params: 1, - inputFormatter: [formatters.inputLogFormatter], - outputFormatter: this._decodeEventABI.bind(subOptions.event) - }); - getPastLogs.setRequestManager(this._requestManager); - var call = getPastLogs.buildCall(); - - getPastLogs = null; - - return call(subOptions.params, subOptions.callback); - }; - - /** - * returns the an object with call, send, estimate functions - * - * @method _createTxObject - * @returns {Object} an object with functions to call the methods - */ - Contract.prototype._createTxObject = function _createTxObject() { - var args = Array.prototype.slice.call(arguments); - var txObject = {}; - - if (this.method.type === 'function') { - - txObject.call = this.parent._executeMethod.bind(txObject, 'call'); - txObject.call.request = this.parent._executeMethod.bind(txObject, 'call', true); // to make batch requests - } - - txObject.send = this.parent._executeMethod.bind(txObject, 'send'); - txObject.send.request = this.parent._executeMethod.bind(txObject, 'send', true); // to make batch requests - txObject.encodeABI = this.parent._encodeMethodABI.bind(txObject); - txObject.estimateGas = this.parent._executeMethod.bind(txObject, 'estimate'); - - if (args && this.method.inputs && args.length !== this.method.inputs.length) { - if (this.nextMethod) { - return this.nextMethod.apply(null, args); - } - throw errors.InvalidNumberOfParams(args.length, this.method.inputs.length, this.method.name); - } - - txObject.arguments = args || []; - txObject._method = this.method; - txObject._parent = this.parent; - txObject._ethAccounts = this.parent.constructor._ethAccounts || this._ethAccounts; - - if (this.deployData) { - txObject._deployData = this.deployData; - } - - return txObject; - }; - - /** - * Generates the options for the execute call - * - * @method _processExecuteArguments - * @param {Array} args - * @param {Promise} defer - */ - Contract.prototype._processExecuteArguments = function _processExecuteArguments(args, defer) { - var processedArgs = {}; - - processedArgs.type = args.shift(); - - // get the callback - processedArgs.callback = this._parent._getCallback(args); - - // get block number to use for call - if (processedArgs.type === 'call' && args[args.length - 1] !== true && (_.isString(args[args.length - 1]) || isFinite(args[args.length - 1]))) processedArgs.defaultBlock = args.pop(); - - // get the options - processedArgs.options = _.isObject(args[args.length - 1]) ? args.pop() : {}; - - // get the generateRequest argument for batch requests - processedArgs.generateRequest = args[args.length - 1] === true ? args.pop() : false; - - processedArgs.options = this._parent._getOrSetDefaultOptions(processedArgs.options); - processedArgs.options.data = this.encodeABI(); - - // add contract address - if (!this._deployData && !utils.isAddress(this._parent.options.address)) throw new Error('This contract object doesn\'t have address set yet, please set an address first.'); - - if (!this._deployData) processedArgs.options.to = this._parent.options.address; - - // return error, if no "data" is specified - if (!processedArgs.options.data) return utils._fireError(new Error('Couldn\'t find a matching contract method, or the number of parameters is wrong.'), defer.eventEmitter, defer.reject, processedArgs.callback); - - return processedArgs; - }; - - /** - * Executes a call, transact or estimateGas on a contract function - * - * @method _executeMethod - * @param {String} type the type this execute function should execute - * @param {Boolean} makeRequest if true, it simply returns the request parameters, rather than executing it - */ - Contract.prototype._executeMethod = function _executeMethod() { - var _this = this, - args = this._parent._processExecuteArguments.call(this, Array.prototype.slice.call(arguments), defer), - defer = promiEvent(args.type !== 'send'), - ethAccounts = _this.constructor._ethAccounts || _this._ethAccounts; - - // simple return request for batch requests - if (args.generateRequest) { - - var payload = { - params: [formatters.inputCallFormatter.call(this._parent, args.options), formatters.inputDefaultBlockNumberFormatter.call(this._parent, args.defaultBlock)], - callback: args.callback - }; - - if (args.type === 'call') { - payload.method = 'eth_call'; - payload.format = this._parent._decodeMethodReturn.bind(null, this._method.outputs); - } else { - payload.method = 'eth_sendTransaction'; - } - - return payload; - } else { - - switch (args.type) { - case 'estimate': - - var estimateGas = new Method({ - name: 'estimateGas', - call: 'eth_estimateGas', - params: 1, - inputFormatter: [formatters.inputCallFormatter], - outputFormatter: utils.hexToNumber, - requestManager: _this._parent._requestManager, - accounts: ethAccounts, // is eth.accounts (necessary for wallet signing) - defaultAccount: _this._parent.defaultAccount, - defaultBlock: _this._parent.defaultBlock - }).createFunction(); - - return estimateGas(args.options, args.callback); - - case 'call': - - // TODO check errors: missing "from" should give error on deploy and send, call ? - - var call = new Method({ - name: 'call', - call: 'eth_call', - params: 2, - inputFormatter: [formatters.inputCallFormatter, formatters.inputDefaultBlockNumberFormatter], - // add output formatter for decoding - outputFormatter: function outputFormatter(result) { - return _this._parent._decodeMethodReturn(_this._method.outputs, result); - }, - requestManager: _this._parent._requestManager, - accounts: ethAccounts, // is eth.accounts (necessary for wallet signing) - defaultAccount: _this._parent.defaultAccount, - defaultBlock: _this._parent.defaultBlock - }).createFunction(); - - return call(args.options, args.defaultBlock, args.callback); - - case 'send': - - // return error, if no "from" is specified - if (!utils.isAddress(args.options.from)) { - return utils._fireError(new Error('No "from" address specified in neither the given options, nor the default options.'), defer.eventEmitter, defer.reject, args.callback); - } - - if (_.isBoolean(this._method.payable) && !this._method.payable && args.options.value && args.options.value > 0) { - return utils._fireError(new Error('Can not send value to non-payable contract method or constructor'), defer.eventEmitter, defer.reject, args.callback); - } - - // make sure receipt logs are decoded - var extraFormatters = { - receiptFormatter: function receiptFormatter(receipt) { - if (_.isArray(receipt.logs)) { - - // decode logs - var events = _.map(receipt.logs, function (log) { - return _this._parent._decodeEventABI.call({ - name: 'ALLEVENTS', - jsonInterface: _this._parent.options.jsonInterface - }, log); - }); - - // make log names keys - receipt.events = {}; - var count = 0; - events.forEach(function (ev) { - if (ev.event) { - // if > 1 of the same event, don't overwrite any existing events - if (receipt.events[ev.event]) { - if (Array.isArray(receipt.events[ev.event])) { - receipt.events[ev.event].push(ev); - } else { - receipt.events[ev.event] = [receipt.events[ev.event], ev]; - } - } else { - receipt.events[ev.event] = ev; - } - } else { - receipt.events[count] = ev; - count++; - } - }); - - delete receipt.logs; - } - return receipt; - }, - contractDeployFormatter: function contractDeployFormatter(receipt) { - var newContract = _this._parent.clone(); - newContract.options.address = receipt.contractAddress; - return newContract; - } - }; - - var sendTransaction = new Method({ - name: 'sendTransaction', - call: 'eth_sendTransaction', - params: 1, - inputFormatter: [formatters.inputTransactionFormatter], - requestManager: _this._parent._requestManager, - accounts: _this.constructor._ethAccounts || _this._ethAccounts, // is eth.accounts (necessary for wallet signing) - defaultAccount: _this._parent.defaultAccount, - defaultBlock: _this._parent.defaultBlock, - extraFormatters: extraFormatters - }).createFunction(); - - return sendTransaction(args.options, args.callback); - - } - } - }; - - module.exports = Contract; - }, { "underscore": 362, "web3-core": 200, "web3-core-helpers": 184, "web3-core-method": 186, "web3-core-promievent": 189, "web3-core-subscriptions": 197, "web3-eth-abi": 204, "web3-utils": 390 }], 364: [function (require, module, exports) { - (function (module, exports) { - 'use strict'; - - // Utils - - function assert(val, msg) { - if (!val) throw new Error(msg || 'Assertion failed'); - } - - // Could use `inherits` module, but don't want to move from single file - // architecture yet. - function inherits(ctor, superCtor) { - ctor.super_ = superCtor; - var TempCtor = function TempCtor() {}; - TempCtor.prototype = superCtor.prototype; - ctor.prototype = new TempCtor(); - ctor.prototype.constructor = ctor; - } - - // BN - - function BN(number, base, endian) { - if (BN.isBN(number)) { - return number; - } - - this.negative = 0; - this.words = null; - this.length = 0; - - // Reduction context - this.red = null; - - if (number !== null) { - if (base === 'le' || base === 'be') { - endian = base; - base = 10; - } - - this._init(number || 0, base || 10, endian || 'be'); - } - } - if ((typeof module === "undefined" ? "undefined" : _typeof(module)) === 'object') { - module.exports = BN; - } else { - exports.BN = BN; - } - - BN.BN = BN; - BN.wordSize = 26; - - var Buffer; - try { - // Obfuscate that we require Buffer, to reduce size - Buffer = require('buf' + 'fer').Buffer; - } catch (e) {} - - BN.isBN = function isBN(num) { - if (num instanceof BN) { - return true; - } - - return num !== null && (typeof num === "undefined" ? "undefined" : _typeof(num)) === 'object' && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words); - }; - - BN.max = function max(left, right) { - if (left.cmp(right) > 0) return left; - return right; - }; - - BN.min = function min(left, right) { - if (left.cmp(right) < 0) return left; - return right; - }; - - BN.prototype._init = function init(number, base, endian) { - if (typeof number === 'number') { - return this._initNumber(number, base, endian); - } - - if ((typeof number === "undefined" ? "undefined" : _typeof(number)) === 'object') { - return this._initArray(number, base, endian); - } - - if (base === 'hex') { - base = 16; - } - assert(base === (base | 0) && base >= 2 && base <= 36); - - number = number.toString().replace(/\s+/g, ''); - var start = 0; - if (number[0] === '-') { - start++; - } - - if (base === 16) { - this._parseHex(number, start); - } else { - this._parseBase(number, base, start); - } - - if (number[0] === '-') { - this.negative = 1; - } - - this.strip(); - - if (endian !== 'le') return; - - this._initArray(this.toArray(), base, endian); - }; - - BN.prototype._initNumber = function _initNumber(number, base, endian) { - if (number < 0) { - this.negative = 1; - number = -number; - } - if (number < 0x4000000) { - this.words = [number & 0x3ffffff]; - this.length = 1; - } else if (number < 0x10000000000000) { - this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff]; - this.length = 2; - } else { - assert(number < 0x20000000000000); // 2 ^ 53 (unsafe) - this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff, 1]; - this.length = 3; - } - - if (endian !== 'le') return; - - // Reverse the bytes - this._initArray(this.toArray(), base, endian); - }; - - BN.prototype._initArray = function _initArray(number, base, endian) { - // Perhaps a Uint8Array - assert(typeof number.length === 'number'); - if (number.length <= 0) { - this.words = [0]; - this.length = 1; - return this; - } - - this.length = Math.ceil(number.length / 3); - this.words = new Array(this.length); - for (var i = 0; i < this.length; i++) { - this.words[i] = 0; - } - - var j, w; - var off = 0; - if (endian === 'be') { - for (i = number.length - 1, j = 0; i >= 0; i -= 3) { - w = number[i] | number[i - 1] << 8 | number[i - 2] << 16; - this.words[j] |= w << off & 0x3ffffff; - this.words[j + 1] = w >>> 26 - off & 0x3ffffff; - off += 24; - if (off >= 26) { - off -= 26; - j++; - } - } - } else if (endian === 'le') { - for (i = 0, j = 0; i < number.length; i += 3) { - w = number[i] | number[i + 1] << 8 | number[i + 2] << 16; - this.words[j] |= w << off & 0x3ffffff; - this.words[j + 1] = w >>> 26 - off & 0x3ffffff; - off += 24; - if (off >= 26) { - off -= 26; - j++; - } - } - } - return this.strip(); - }; - - function parseHex(str, start, end) { - var r = 0; - var len = Math.min(str.length, end); - for (var i = start; i < len; i++) { - var c = str.charCodeAt(i) - 48; - - r <<= 4; - - // 'a' - 'f' - if (c >= 49 && c <= 54) { - r |= c - 49 + 0xa; - - // 'A' - 'F' - } else if (c >= 17 && c <= 22) { - r |= c - 17 + 0xa; - - // '0' - '9' - } else { - r |= c & 0xf; - } - } - return r; - } - - BN.prototype._parseHex = function _parseHex(number, start) { - // Create possibly bigger array to ensure that it fits the number - this.length = Math.ceil((number.length - start) / 6); - this.words = new Array(this.length); - for (var i = 0; i < this.length; i++) { - this.words[i] = 0; - } - - var j, w; - // Scan 24-bit chunks and add them to the number - var off = 0; - for (i = number.length - 6, j = 0; i >= start; i -= 6) { - w = parseHex(number, i, i + 6); - this.words[j] |= w << off & 0x3ffffff; - // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb - this.words[j + 1] |= w >>> 26 - off & 0x3fffff; - off += 24; - if (off >= 26) { - off -= 26; - j++; - } - } - if (i + 6 !== start) { - w = parseHex(number, start, i + 6); - this.words[j] |= w << off & 0x3ffffff; - this.words[j + 1] |= w >>> 26 - off & 0x3fffff; - } - this.strip(); - }; - - function parseBase(str, start, end, mul) { - var r = 0; - var len = Math.min(str.length, end); - for (var i = start; i < len; i++) { - var c = str.charCodeAt(i) - 48; - - r *= mul; - - // 'a' - if (c >= 49) { - r += c - 49 + 0xa; - - // 'A' - } else if (c >= 17) { - r += c - 17 + 0xa; - - // '0' - '9' - } else { - r += c; - } - } - return r; - } - - BN.prototype._parseBase = function _parseBase(number, base, start) { - // Initialize as zero - this.words = [0]; - this.length = 1; - - // Find length of limb in base - for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) { - limbLen++; - } - limbLen--; - limbPow = limbPow / base | 0; - - var total = number.length - start; - var mod = total % limbLen; - var end = Math.min(total, total - mod) + start; - - var word = 0; - for (var i = start; i < end; i += limbLen) { - word = parseBase(number, i, i + limbLen, base); - - this.imuln(limbPow); - if (this.words[0] + word < 0x4000000) { - this.words[0] += word; - } else { - this._iaddn(word); - } - } - - if (mod !== 0) { - var pow = 1; - word = parseBase(number, i, number.length, base); - - for (i = 0; i < mod; i++) { - pow *= base; - } - - this.imuln(pow); - if (this.words[0] + word < 0x4000000) { - this.words[0] += word; - } else { - this._iaddn(word); - } - } - }; - - BN.prototype.copy = function copy(dest) { - dest.words = new Array(this.length); - for (var i = 0; i < this.length; i++) { - dest.words[i] = this.words[i]; - } - dest.length = this.length; - dest.negative = this.negative; - dest.red = this.red; - }; - - BN.prototype.clone = function clone() { - var r = new BN(null); - this.copy(r); - return r; - }; - - BN.prototype._expand = function _expand(size) { - while (this.length < size) { - this.words[this.length++] = 0; - } - return this; - }; - - // Remove leading `0` from `this` - BN.prototype.strip = function strip() { - while (this.length > 1 && this.words[this.length - 1] === 0) { - this.length--; - } - return this._normSign(); - }; - - BN.prototype._normSign = function _normSign() { - // -0 = 0 - if (this.length === 1 && this.words[0] === 0) { - this.negative = 0; - } - return this; - }; - - BN.prototype.inspect = function inspect() { - return (this.red ? ''; - }; - - /* - var zeros = []; - var groupSizes = []; - var groupBases = []; - var s = ''; - var i = -1; - while (++i < BN.wordSize) { - zeros[i] = s; - s += '0'; - } - groupSizes[0] = 0; - groupSizes[1] = 0; - groupBases[0] = 0; - groupBases[1] = 0; - var base = 2 - 1; - while (++base < 36 + 1) { - var groupSize = 0; - var groupBase = 1; - while (groupBase < (1 << BN.wordSize) / base) { - groupBase *= base; - groupSize += 1; - } - groupSizes[base] = groupSize; - groupBases[base] = groupBase; - } - */ - - var zeros = ['', '0', '00', '000', '0000', '00000', '000000', '0000000', '00000000', '000000000', '0000000000', '00000000000', '000000000000', '0000000000000', '00000000000000', '000000000000000', '0000000000000000', '00000000000000000', '000000000000000000', '0000000000000000000', '00000000000000000000', '000000000000000000000', '0000000000000000000000', '00000000000000000000000', '000000000000000000000000', '0000000000000000000000000']; - - var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]; - - var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176]; - - BN.prototype.toString = function toString(base, padding) { - base = base || 10; - padding = padding | 0 || 1; - - var out; - if (base === 16 || base === 'hex') { - out = ''; - var off = 0; - var carry = 0; - for (var i = 0; i < this.length; i++) { - var w = this.words[i]; - var word = ((w << off | carry) & 0xffffff).toString(16); - carry = w >>> 24 - off & 0xffffff; - if (carry !== 0 || i !== this.length - 1) { - out = zeros[6 - word.length] + word + out; - } else { - out = word + out; - } - off += 2; - if (off >= 26) { - off -= 26; - i--; - } - } - if (carry !== 0) { - out = carry.toString(16) + out; - } - while (out.length % padding !== 0) { - out = '0' + out; - } - if (this.negative !== 0) { - out = '-' + out; - } - return out; - } - - if (base === (base | 0) && base >= 2 && base <= 36) { - // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base)); - var groupSize = groupSizes[base]; - // var groupBase = Math.pow(base, groupSize); - var groupBase = groupBases[base]; - out = ''; - var c = this.clone(); - c.negative = 0; - while (!c.isZero()) { - var r = c.modn(groupBase).toString(base); - c = c.idivn(groupBase); - - if (!c.isZero()) { - out = zeros[groupSize - r.length] + r + out; - } else { - out = r + out; - } - } - if (this.isZero()) { - out = '0' + out; - } - while (out.length % padding !== 0) { - out = '0' + out; - } - if (this.negative !== 0) { - out = '-' + out; - } - return out; - } - - assert(false, 'Base should be between 2 and 36'); - }; - - BN.prototype.toNumber = function toNumber() { - var ret = this.words[0]; - if (this.length === 2) { - ret += this.words[1] * 0x4000000; - } else if (this.length === 3 && this.words[2] === 0x01) { - // NOTE: at this stage it is known that the top bit is set - ret += 0x10000000000000 + this.words[1] * 0x4000000; - } else if (this.length > 2) { - assert(false, 'Number can only safely store up to 53 bits'); - } - return this.negative !== 0 ? -ret : ret; - }; - - BN.prototype.toJSON = function toJSON() { - return this.toString(16); - }; - - BN.prototype.toBuffer = function toBuffer(endian, length) { - assert(typeof Buffer !== 'undefined'); - return this.toArrayLike(Buffer, endian, length); - }; - - BN.prototype.toArray = function toArray(endian, length) { - return this.toArrayLike(Array, endian, length); - }; - - BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) { - var byteLength = this.byteLength(); - var reqLength = length || Math.max(1, byteLength); - assert(byteLength <= reqLength, 'byte array longer than desired length'); - assert(reqLength > 0, 'Requested array length <= 0'); - - this.strip(); - var littleEndian = endian === 'le'; - var res = new ArrayType(reqLength); - - var b, i; - var q = this.clone(); - if (!littleEndian) { - // Assume big-endian - for (i = 0; i < reqLength - byteLength; i++) { - res[i] = 0; - } - - for (i = 0; !q.isZero(); i++) { - b = q.andln(0xff); - q.iushrn(8); - - res[reqLength - i - 1] = b; - } - } else { - for (i = 0; !q.isZero(); i++) { - b = q.andln(0xff); - q.iushrn(8); - - res[i] = b; - } - - for (; i < reqLength; i++) { - res[i] = 0; - } - } - - return res; - }; - - if (Math.clz32) { - BN.prototype._countBits = function _countBits(w) { - return 32 - Math.clz32(w); - }; - } else { - BN.prototype._countBits = function _countBits(w) { - var t = w; - var r = 0; - if (t >= 0x1000) { - r += 13; - t >>>= 13; - } - if (t >= 0x40) { - r += 7; - t >>>= 7; - } - if (t >= 0x8) { - r += 4; - t >>>= 4; - } - if (t >= 0x02) { - r += 2; - t >>>= 2; - } - return r + t; - }; - } - - BN.prototype._zeroBits = function _zeroBits(w) { - // Short-cut - if (w === 0) return 26; - - var t = w; - var r = 0; - if ((t & 0x1fff) === 0) { - r += 13; - t >>>= 13; - } - if ((t & 0x7f) === 0) { - r += 7; - t >>>= 7; - } - if ((t & 0xf) === 0) { - r += 4; - t >>>= 4; - } - if ((t & 0x3) === 0) { - r += 2; - t >>>= 2; - } - if ((t & 0x1) === 0) { - r++; - } - return r; - }; - - // Return number of used bits in a BN - BN.prototype.bitLength = function bitLength() { - var w = this.words[this.length - 1]; - var hi = this._countBits(w); - return (this.length - 1) * 26 + hi; - }; - - function toBitArray(num) { - var w = new Array(num.bitLength()); - - for (var bit = 0; bit < w.length; bit++) { - var off = bit / 26 | 0; - var wbit = bit % 26; - - w[bit] = (num.words[off] & 1 << wbit) >>> wbit; - } - - return w; - } - - // Number of trailing zero bits - BN.prototype.zeroBits = function zeroBits() { - if (this.isZero()) return 0; - - var r = 0; - for (var i = 0; i < this.length; i++) { - var b = this._zeroBits(this.words[i]); - r += b; - if (b !== 26) break; - } - return r; - }; - - BN.prototype.byteLength = function byteLength() { - return Math.ceil(this.bitLength() / 8); - }; - - BN.prototype.toTwos = function toTwos(width) { - if (this.negative !== 0) { - return this.abs().inotn(width).iaddn(1); - } - return this.clone(); - }; - - BN.prototype.fromTwos = function fromTwos(width) { - if (this.testn(width - 1)) { - return this.notn(width).iaddn(1).ineg(); - } - return this.clone(); - }; - - BN.prototype.isNeg = function isNeg() { - return this.negative !== 0; - }; - - // Return negative clone of `this` - BN.prototype.neg = function neg() { - return this.clone().ineg(); - }; - - BN.prototype.ineg = function ineg() { - if (!this.isZero()) { - this.negative ^= 1; - } - - return this; - }; - - // Or `num` with `this` in-place - BN.prototype.iuor = function iuor(num) { - while (this.length < num.length) { - this.words[this.length++] = 0; - } - - for (var i = 0; i < num.length; i++) { - this.words[i] = this.words[i] | num.words[i]; - } - - return this.strip(); - }; - - BN.prototype.ior = function ior(num) { - assert((this.negative | num.negative) === 0); - return this.iuor(num); - }; - - // Or `num` with `this` - BN.prototype.or = function or(num) { - if (this.length > num.length) return this.clone().ior(num); - return num.clone().ior(this); - }; - - BN.prototype.uor = function uor(num) { - if (this.length > num.length) return this.clone().iuor(num); - return num.clone().iuor(this); - }; - - // And `num` with `this` in-place - BN.prototype.iuand = function iuand(num) { - // b = min-length(num, this) - var b; - if (this.length > num.length) { - b = num; - } else { - b = this; - } - - for (var i = 0; i < b.length; i++) { - this.words[i] = this.words[i] & num.words[i]; - } - - this.length = b.length; - - return this.strip(); - }; - - BN.prototype.iand = function iand(num) { - assert((this.negative | num.negative) === 0); - return this.iuand(num); - }; - - // And `num` with `this` - BN.prototype.and = function and(num) { - if (this.length > num.length) return this.clone().iand(num); - return num.clone().iand(this); - }; - - BN.prototype.uand = function uand(num) { - if (this.length > num.length) return this.clone().iuand(num); - return num.clone().iuand(this); - }; - - // Xor `num` with `this` in-place - BN.prototype.iuxor = function iuxor(num) { - // a.length > b.length - var a; - var b; - if (this.length > num.length) { - a = this; - b = num; - } else { - a = num; - b = this; - } - - for (var i = 0; i < b.length; i++) { - this.words[i] = a.words[i] ^ b.words[i]; - } - - if (this !== a) { - for (; i < a.length; i++) { - this.words[i] = a.words[i]; - } - } - - this.length = a.length; - - return this.strip(); - }; - - BN.prototype.ixor = function ixor(num) { - assert((this.negative | num.negative) === 0); - return this.iuxor(num); - }; - - // Xor `num` with `this` - BN.prototype.xor = function xor(num) { - if (this.length > num.length) return this.clone().ixor(num); - return num.clone().ixor(this); - }; - - BN.prototype.uxor = function uxor(num) { - if (this.length > num.length) return this.clone().iuxor(num); - return num.clone().iuxor(this); - }; - - // Not ``this`` with ``width`` bitwidth - BN.prototype.inotn = function inotn(width) { - assert(typeof width === 'number' && width >= 0); - - var bytesNeeded = Math.ceil(width / 26) | 0; - var bitsLeft = width % 26; - - // Extend the buffer with leading zeroes - this._expand(bytesNeeded); - - if (bitsLeft > 0) { - bytesNeeded--; - } - - // Handle complete words - for (var i = 0; i < bytesNeeded; i++) { - this.words[i] = ~this.words[i] & 0x3ffffff; - } - - // Handle the residue - if (bitsLeft > 0) { - this.words[i] = ~this.words[i] & 0x3ffffff >> 26 - bitsLeft; - } - - // And remove leading zeroes - return this.strip(); - }; - - BN.prototype.notn = function notn(width) { - return this.clone().inotn(width); - }; - - // Set `bit` of `this` - BN.prototype.setn = function setn(bit, val) { - assert(typeof bit === 'number' && bit >= 0); - - var off = bit / 26 | 0; - var wbit = bit % 26; - - this._expand(off + 1); - - if (val) { - this.words[off] = this.words[off] | 1 << wbit; - } else { - this.words[off] = this.words[off] & ~(1 << wbit); - } - - return this.strip(); - }; - - // Add `num` to `this` in-place - BN.prototype.iadd = function iadd(num) { - var r; - - // negative + positive - if (this.negative !== 0 && num.negative === 0) { - this.negative = 0; - r = this.isub(num); - this.negative ^= 1; - return this._normSign(); - - // positive + negative - } else if (this.negative === 0 && num.negative !== 0) { - num.negative = 0; - r = this.isub(num); - num.negative = 1; - return r._normSign(); - } - - // a.length > b.length - var a, b; - if (this.length > num.length) { - a = this; - b = num; - } else { - a = num; - b = this; - } - - var carry = 0; - for (var i = 0; i < b.length; i++) { - r = (a.words[i] | 0) + (b.words[i] | 0) + carry; - this.words[i] = r & 0x3ffffff; - carry = r >>> 26; - } - for (; carry !== 0 && i < a.length; i++) { - r = (a.words[i] | 0) + carry; - this.words[i] = r & 0x3ffffff; - carry = r >>> 26; - } - - this.length = a.length; - if (carry !== 0) { - this.words[this.length] = carry; - this.length++; - // Copy the rest of the words - } else if (a !== this) { - for (; i < a.length; i++) { - this.words[i] = a.words[i]; - } - } - - return this; - }; - - // Add `num` to `this` - BN.prototype.add = function add(num) { - var res; - if (num.negative !== 0 && this.negative === 0) { - num.negative = 0; - res = this.sub(num); - num.negative ^= 1; - return res; - } else if (num.negative === 0 && this.negative !== 0) { - this.negative = 0; - res = num.sub(this); - this.negative = 1; - return res; - } - - if (this.length > num.length) return this.clone().iadd(num); - - return num.clone().iadd(this); - }; - - // Subtract `num` from `this` in-place - BN.prototype.isub = function isub(num) { - // this - (-num) = this + num - if (num.negative !== 0) { - num.negative = 0; - var r = this.iadd(num); - num.negative = 1; - return r._normSign(); - - // -this - num = -(this + num) - } else if (this.negative !== 0) { - this.negative = 0; - this.iadd(num); - this.negative = 1; - return this._normSign(); - } - - // At this point both numbers are positive - var cmp = this.cmp(num); - - // Optimization - zeroify - if (cmp === 0) { - this.negative = 0; - this.length = 1; - this.words[0] = 0; - return this; - } - - // a > b - var a, b; - if (cmp > 0) { - a = this; - b = num; - } else { - a = num; - b = this; - } - - var carry = 0; - for (var i = 0; i < b.length; i++) { - r = (a.words[i] | 0) - (b.words[i] | 0) + carry; - carry = r >> 26; - this.words[i] = r & 0x3ffffff; - } - for (; carry !== 0 && i < a.length; i++) { - r = (a.words[i] | 0) + carry; - carry = r >> 26; - this.words[i] = r & 0x3ffffff; - } - - // Copy rest of the words - if (carry === 0 && i < a.length && a !== this) { - for (; i < a.length; i++) { - this.words[i] = a.words[i]; - } - } - - this.length = Math.max(this.length, i); - - if (a !== this) { - this.negative = 1; - } - - return this.strip(); - }; - - // Subtract `num` from `this` - BN.prototype.sub = function sub(num) { - return this.clone().isub(num); - }; - - function smallMulTo(self, num, out) { - out.negative = num.negative ^ self.negative; - var len = self.length + num.length | 0; - out.length = len; - len = len - 1 | 0; - - // Peel one iteration (compiler can't do it, because of code complexity) - var a = self.words[0] | 0; - var b = num.words[0] | 0; - var r = a * b; - - var lo = r & 0x3ffffff; - var carry = r / 0x4000000 | 0; - out.words[0] = lo; - - for (var k = 1; k < len; k++) { - // Sum all words with the same `i + j = k` and accumulate `ncarry`, - // note that ncarry could be >= 0x3ffffff - var ncarry = carry >>> 26; - var rword = carry & 0x3ffffff; - var maxJ = Math.min(k, num.length - 1); - for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { - var i = k - j | 0; - a = self.words[i] | 0; - b = num.words[j] | 0; - r = a * b + rword; - ncarry += r / 0x4000000 | 0; - rword = r & 0x3ffffff; - } - out.words[k] = rword | 0; - carry = ncarry | 0; - } - if (carry !== 0) { - out.words[k] = carry | 0; - } else { - out.length--; - } - - return out.strip(); - } - - // TODO(indutny): it may be reasonable to omit it for users who don't need - // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit - // multiplication (like elliptic secp256k1). - var comb10MulTo = function comb10MulTo(self, num, out) { - var a = self.words; - var b = num.words; - var o = out.words; - var c = 0; - var lo; - var mid; - var hi; - var a0 = a[0] | 0; - var al0 = a0 & 0x1fff; - var ah0 = a0 >>> 13; - var a1 = a[1] | 0; - var al1 = a1 & 0x1fff; - var ah1 = a1 >>> 13; - var a2 = a[2] | 0; - var al2 = a2 & 0x1fff; - var ah2 = a2 >>> 13; - var a3 = a[3] | 0; - var al3 = a3 & 0x1fff; - var ah3 = a3 >>> 13; - var a4 = a[4] | 0; - var al4 = a4 & 0x1fff; - var ah4 = a4 >>> 13; - var a5 = a[5] | 0; - var al5 = a5 & 0x1fff; - var ah5 = a5 >>> 13; - var a6 = a[6] | 0; - var al6 = a6 & 0x1fff; - var ah6 = a6 >>> 13; - var a7 = a[7] | 0; - var al7 = a7 & 0x1fff; - var ah7 = a7 >>> 13; - var a8 = a[8] | 0; - var al8 = a8 & 0x1fff; - var ah8 = a8 >>> 13; - var a9 = a[9] | 0; - var al9 = a9 & 0x1fff; - var ah9 = a9 >>> 13; - var b0 = b[0] | 0; - var bl0 = b0 & 0x1fff; - var bh0 = b0 >>> 13; - var b1 = b[1] | 0; - var bl1 = b1 & 0x1fff; - var bh1 = b1 >>> 13; - var b2 = b[2] | 0; - var bl2 = b2 & 0x1fff; - var bh2 = b2 >>> 13; - var b3 = b[3] | 0; - var bl3 = b3 & 0x1fff; - var bh3 = b3 >>> 13; - var b4 = b[4] | 0; - var bl4 = b4 & 0x1fff; - var bh4 = b4 >>> 13; - var b5 = b[5] | 0; - var bl5 = b5 & 0x1fff; - var bh5 = b5 >>> 13; - var b6 = b[6] | 0; - var bl6 = b6 & 0x1fff; - var bh6 = b6 >>> 13; - var b7 = b[7] | 0; - var bl7 = b7 & 0x1fff; - var bh7 = b7 >>> 13; - var b8 = b[8] | 0; - var bl8 = b8 & 0x1fff; - var bh8 = b8 >>> 13; - var b9 = b[9] | 0; - var bl9 = b9 & 0x1fff; - var bh9 = b9 >>> 13; - - out.negative = self.negative ^ num.negative; - out.length = 19; - /* k = 0 */ - lo = Math.imul(al0, bl0); - mid = Math.imul(al0, bh0); - mid = mid + Math.imul(ah0, bl0) | 0; - hi = Math.imul(ah0, bh0); - var w0 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0; - w0 &= 0x3ffffff; - /* k = 1 */ - lo = Math.imul(al1, bl0); - mid = Math.imul(al1, bh0); - mid = mid + Math.imul(ah1, bl0) | 0; - hi = Math.imul(ah1, bh0); - lo = lo + Math.imul(al0, bl1) | 0; - mid = mid + Math.imul(al0, bh1) | 0; - mid = mid + Math.imul(ah0, bl1) | 0; - hi = hi + Math.imul(ah0, bh1) | 0; - var w1 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0; - w1 &= 0x3ffffff; - /* k = 2 */ - lo = Math.imul(al2, bl0); - mid = Math.imul(al2, bh0); - mid = mid + Math.imul(ah2, bl0) | 0; - hi = Math.imul(ah2, bh0); - lo = lo + Math.imul(al1, bl1) | 0; - mid = mid + Math.imul(al1, bh1) | 0; - mid = mid + Math.imul(ah1, bl1) | 0; - hi = hi + Math.imul(ah1, bh1) | 0; - lo = lo + Math.imul(al0, bl2) | 0; - mid = mid + Math.imul(al0, bh2) | 0; - mid = mid + Math.imul(ah0, bl2) | 0; - hi = hi + Math.imul(ah0, bh2) | 0; - var w2 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w2 >>> 26) | 0; - w2 &= 0x3ffffff; - /* k = 3 */ - lo = Math.imul(al3, bl0); - mid = Math.imul(al3, bh0); - mid = mid + Math.imul(ah3, bl0) | 0; - hi = Math.imul(ah3, bh0); - lo = lo + Math.imul(al2, bl1) | 0; - mid = mid + Math.imul(al2, bh1) | 0; - mid = mid + Math.imul(ah2, bl1) | 0; - hi = hi + Math.imul(ah2, bh1) | 0; - lo = lo + Math.imul(al1, bl2) | 0; - mid = mid + Math.imul(al1, bh2) | 0; - mid = mid + Math.imul(ah1, bl2) | 0; - hi = hi + Math.imul(ah1, bh2) | 0; - lo = lo + Math.imul(al0, bl3) | 0; - mid = mid + Math.imul(al0, bh3) | 0; - mid = mid + Math.imul(ah0, bl3) | 0; - hi = hi + Math.imul(ah0, bh3) | 0; - var w3 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w3 >>> 26) | 0; - w3 &= 0x3ffffff; - /* k = 4 */ - lo = Math.imul(al4, bl0); - mid = Math.imul(al4, bh0); - mid = mid + Math.imul(ah4, bl0) | 0; - hi = Math.imul(ah4, bh0); - lo = lo + Math.imul(al3, bl1) | 0; - mid = mid + Math.imul(al3, bh1) | 0; - mid = mid + Math.imul(ah3, bl1) | 0; - hi = hi + Math.imul(ah3, bh1) | 0; - lo = lo + Math.imul(al2, bl2) | 0; - mid = mid + Math.imul(al2, bh2) | 0; - mid = mid + Math.imul(ah2, bl2) | 0; - hi = hi + Math.imul(ah2, bh2) | 0; - lo = lo + Math.imul(al1, bl3) | 0; - mid = mid + Math.imul(al1, bh3) | 0; - mid = mid + Math.imul(ah1, bl3) | 0; - hi = hi + Math.imul(ah1, bh3) | 0; - lo = lo + Math.imul(al0, bl4) | 0; - mid = mid + Math.imul(al0, bh4) | 0; - mid = mid + Math.imul(ah0, bl4) | 0; - hi = hi + Math.imul(ah0, bh4) | 0; - var w4 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0; - w4 &= 0x3ffffff; - /* k = 5 */ - lo = Math.imul(al5, bl0); - mid = Math.imul(al5, bh0); - mid = mid + Math.imul(ah5, bl0) | 0; - hi = Math.imul(ah5, bh0); - lo = lo + Math.imul(al4, bl1) | 0; - mid = mid + Math.imul(al4, bh1) | 0; - mid = mid + Math.imul(ah4, bl1) | 0; - hi = hi + Math.imul(ah4, bh1) | 0; - lo = lo + Math.imul(al3, bl2) | 0; - mid = mid + Math.imul(al3, bh2) | 0; - mid = mid + Math.imul(ah3, bl2) | 0; - hi = hi + Math.imul(ah3, bh2) | 0; - lo = lo + Math.imul(al2, bl3) | 0; - mid = mid + Math.imul(al2, bh3) | 0; - mid = mid + Math.imul(ah2, bl3) | 0; - hi = hi + Math.imul(ah2, bh3) | 0; - lo = lo + Math.imul(al1, bl4) | 0; - mid = mid + Math.imul(al1, bh4) | 0; - mid = mid + Math.imul(ah1, bl4) | 0; - hi = hi + Math.imul(ah1, bh4) | 0; - lo = lo + Math.imul(al0, bl5) | 0; - mid = mid + Math.imul(al0, bh5) | 0; - mid = mid + Math.imul(ah0, bl5) | 0; - hi = hi + Math.imul(ah0, bh5) | 0; - var w5 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0; - w5 &= 0x3ffffff; - /* k = 6 */ - lo = Math.imul(al6, bl0); - mid = Math.imul(al6, bh0); - mid = mid + Math.imul(ah6, bl0) | 0; - hi = Math.imul(ah6, bh0); - lo = lo + Math.imul(al5, bl1) | 0; - mid = mid + Math.imul(al5, bh1) | 0; - mid = mid + Math.imul(ah5, bl1) | 0; - hi = hi + Math.imul(ah5, bh1) | 0; - lo = lo + Math.imul(al4, bl2) | 0; - mid = mid + Math.imul(al4, bh2) | 0; - mid = mid + Math.imul(ah4, bl2) | 0; - hi = hi + Math.imul(ah4, bh2) | 0; - lo = lo + Math.imul(al3, bl3) | 0; - mid = mid + Math.imul(al3, bh3) | 0; - mid = mid + Math.imul(ah3, bl3) | 0; - hi = hi + Math.imul(ah3, bh3) | 0; - lo = lo + Math.imul(al2, bl4) | 0; - mid = mid + Math.imul(al2, bh4) | 0; - mid = mid + Math.imul(ah2, bl4) | 0; - hi = hi + Math.imul(ah2, bh4) | 0; - lo = lo + Math.imul(al1, bl5) | 0; - mid = mid + Math.imul(al1, bh5) | 0; - mid = mid + Math.imul(ah1, bl5) | 0; - hi = hi + Math.imul(ah1, bh5) | 0; - lo = lo + Math.imul(al0, bl6) | 0; - mid = mid + Math.imul(al0, bh6) | 0; - mid = mid + Math.imul(ah0, bl6) | 0; - hi = hi + Math.imul(ah0, bh6) | 0; - var w6 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0; - w6 &= 0x3ffffff; - /* k = 7 */ - lo = Math.imul(al7, bl0); - mid = Math.imul(al7, bh0); - mid = mid + Math.imul(ah7, bl0) | 0; - hi = Math.imul(ah7, bh0); - lo = lo + Math.imul(al6, bl1) | 0; - mid = mid + Math.imul(al6, bh1) | 0; - mid = mid + Math.imul(ah6, bl1) | 0; - hi = hi + Math.imul(ah6, bh1) | 0; - lo = lo + Math.imul(al5, bl2) | 0; - mid = mid + Math.imul(al5, bh2) | 0; - mid = mid + Math.imul(ah5, bl2) | 0; - hi = hi + Math.imul(ah5, bh2) | 0; - lo = lo + Math.imul(al4, bl3) | 0; - mid = mid + Math.imul(al4, bh3) | 0; - mid = mid + Math.imul(ah4, bl3) | 0; - hi = hi + Math.imul(ah4, bh3) | 0; - lo = lo + Math.imul(al3, bl4) | 0; - mid = mid + Math.imul(al3, bh4) | 0; - mid = mid + Math.imul(ah3, bl4) | 0; - hi = hi + Math.imul(ah3, bh4) | 0; - lo = lo + Math.imul(al2, bl5) | 0; - mid = mid + Math.imul(al2, bh5) | 0; - mid = mid + Math.imul(ah2, bl5) | 0; - hi = hi + Math.imul(ah2, bh5) | 0; - lo = lo + Math.imul(al1, bl6) | 0; - mid = mid + Math.imul(al1, bh6) | 0; - mid = mid + Math.imul(ah1, bl6) | 0; - hi = hi + Math.imul(ah1, bh6) | 0; - lo = lo + Math.imul(al0, bl7) | 0; - mid = mid + Math.imul(al0, bh7) | 0; - mid = mid + Math.imul(ah0, bl7) | 0; - hi = hi + Math.imul(ah0, bh7) | 0; - var w7 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0; - w7 &= 0x3ffffff; - /* k = 8 */ - lo = Math.imul(al8, bl0); - mid = Math.imul(al8, bh0); - mid = mid + Math.imul(ah8, bl0) | 0; - hi = Math.imul(ah8, bh0); - lo = lo + Math.imul(al7, bl1) | 0; - mid = mid + Math.imul(al7, bh1) | 0; - mid = mid + Math.imul(ah7, bl1) | 0; - hi = hi + Math.imul(ah7, bh1) | 0; - lo = lo + Math.imul(al6, bl2) | 0; - mid = mid + Math.imul(al6, bh2) | 0; - mid = mid + Math.imul(ah6, bl2) | 0; - hi = hi + Math.imul(ah6, bh2) | 0; - lo = lo + Math.imul(al5, bl3) | 0; - mid = mid + Math.imul(al5, bh3) | 0; - mid = mid + Math.imul(ah5, bl3) | 0; - hi = hi + Math.imul(ah5, bh3) | 0; - lo = lo + Math.imul(al4, bl4) | 0; - mid = mid + Math.imul(al4, bh4) | 0; - mid = mid + Math.imul(ah4, bl4) | 0; - hi = hi + Math.imul(ah4, bh4) | 0; - lo = lo + Math.imul(al3, bl5) | 0; - mid = mid + Math.imul(al3, bh5) | 0; - mid = mid + Math.imul(ah3, bl5) | 0; - hi = hi + Math.imul(ah3, bh5) | 0; - lo = lo + Math.imul(al2, bl6) | 0; - mid = mid + Math.imul(al2, bh6) | 0; - mid = mid + Math.imul(ah2, bl6) | 0; - hi = hi + Math.imul(ah2, bh6) | 0; - lo = lo + Math.imul(al1, bl7) | 0; - mid = mid + Math.imul(al1, bh7) | 0; - mid = mid + Math.imul(ah1, bl7) | 0; - hi = hi + Math.imul(ah1, bh7) | 0; - lo = lo + Math.imul(al0, bl8) | 0; - mid = mid + Math.imul(al0, bh8) | 0; - mid = mid + Math.imul(ah0, bl8) | 0; - hi = hi + Math.imul(ah0, bh8) | 0; - var w8 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0; - w8 &= 0x3ffffff; - /* k = 9 */ - lo = Math.imul(al9, bl0); - mid = Math.imul(al9, bh0); - mid = mid + Math.imul(ah9, bl0) | 0; - hi = Math.imul(ah9, bh0); - lo = lo + Math.imul(al8, bl1) | 0; - mid = mid + Math.imul(al8, bh1) | 0; - mid = mid + Math.imul(ah8, bl1) | 0; - hi = hi + Math.imul(ah8, bh1) | 0; - lo = lo + Math.imul(al7, bl2) | 0; - mid = mid + Math.imul(al7, bh2) | 0; - mid = mid + Math.imul(ah7, bl2) | 0; - hi = hi + Math.imul(ah7, bh2) | 0; - lo = lo + Math.imul(al6, bl3) | 0; - mid = mid + Math.imul(al6, bh3) | 0; - mid = mid + Math.imul(ah6, bl3) | 0; - hi = hi + Math.imul(ah6, bh3) | 0; - lo = lo + Math.imul(al5, bl4) | 0; - mid = mid + Math.imul(al5, bh4) | 0; - mid = mid + Math.imul(ah5, bl4) | 0; - hi = hi + Math.imul(ah5, bh4) | 0; - lo = lo + Math.imul(al4, bl5) | 0; - mid = mid + Math.imul(al4, bh5) | 0; - mid = mid + Math.imul(ah4, bl5) | 0; - hi = hi + Math.imul(ah4, bh5) | 0; - lo = lo + Math.imul(al3, bl6) | 0; - mid = mid + Math.imul(al3, bh6) | 0; - mid = mid + Math.imul(ah3, bl6) | 0; - hi = hi + Math.imul(ah3, bh6) | 0; - lo = lo + Math.imul(al2, bl7) | 0; - mid = mid + Math.imul(al2, bh7) | 0; - mid = mid + Math.imul(ah2, bl7) | 0; - hi = hi + Math.imul(ah2, bh7) | 0; - lo = lo + Math.imul(al1, bl8) | 0; - mid = mid + Math.imul(al1, bh8) | 0; - mid = mid + Math.imul(ah1, bl8) | 0; - hi = hi + Math.imul(ah1, bh8) | 0; - lo = lo + Math.imul(al0, bl9) | 0; - mid = mid + Math.imul(al0, bh9) | 0; - mid = mid + Math.imul(ah0, bl9) | 0; - hi = hi + Math.imul(ah0, bh9) | 0; - var w9 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0; - w9 &= 0x3ffffff; - /* k = 10 */ - lo = Math.imul(al9, bl1); - mid = Math.imul(al9, bh1); - mid = mid + Math.imul(ah9, bl1) | 0; - hi = Math.imul(ah9, bh1); - lo = lo + Math.imul(al8, bl2) | 0; - mid = mid + Math.imul(al8, bh2) | 0; - mid = mid + Math.imul(ah8, bl2) | 0; - hi = hi + Math.imul(ah8, bh2) | 0; - lo = lo + Math.imul(al7, bl3) | 0; - mid = mid + Math.imul(al7, bh3) | 0; - mid = mid + Math.imul(ah7, bl3) | 0; - hi = hi + Math.imul(ah7, bh3) | 0; - lo = lo + Math.imul(al6, bl4) | 0; - mid = mid + Math.imul(al6, bh4) | 0; - mid = mid + Math.imul(ah6, bl4) | 0; - hi = hi + Math.imul(ah6, bh4) | 0; - lo = lo + Math.imul(al5, bl5) | 0; - mid = mid + Math.imul(al5, bh5) | 0; - mid = mid + Math.imul(ah5, bl5) | 0; - hi = hi + Math.imul(ah5, bh5) | 0; - lo = lo + Math.imul(al4, bl6) | 0; - mid = mid + Math.imul(al4, bh6) | 0; - mid = mid + Math.imul(ah4, bl6) | 0; - hi = hi + Math.imul(ah4, bh6) | 0; - lo = lo + Math.imul(al3, bl7) | 0; - mid = mid + Math.imul(al3, bh7) | 0; - mid = mid + Math.imul(ah3, bl7) | 0; - hi = hi + Math.imul(ah3, bh7) | 0; - lo = lo + Math.imul(al2, bl8) | 0; - mid = mid + Math.imul(al2, bh8) | 0; - mid = mid + Math.imul(ah2, bl8) | 0; - hi = hi + Math.imul(ah2, bh8) | 0; - lo = lo + Math.imul(al1, bl9) | 0; - mid = mid + Math.imul(al1, bh9) | 0; - mid = mid + Math.imul(ah1, bl9) | 0; - hi = hi + Math.imul(ah1, bh9) | 0; - var w10 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0; - w10 &= 0x3ffffff; - /* k = 11 */ - lo = Math.imul(al9, bl2); - mid = Math.imul(al9, bh2); - mid = mid + Math.imul(ah9, bl2) | 0; - hi = Math.imul(ah9, bh2); - lo = lo + Math.imul(al8, bl3) | 0; - mid = mid + Math.imul(al8, bh3) | 0; - mid = mid + Math.imul(ah8, bl3) | 0; - hi = hi + Math.imul(ah8, bh3) | 0; - lo = lo + Math.imul(al7, bl4) | 0; - mid = mid + Math.imul(al7, bh4) | 0; - mid = mid + Math.imul(ah7, bl4) | 0; - hi = hi + Math.imul(ah7, bh4) | 0; - lo = lo + Math.imul(al6, bl5) | 0; - mid = mid + Math.imul(al6, bh5) | 0; - mid = mid + Math.imul(ah6, bl5) | 0; - hi = hi + Math.imul(ah6, bh5) | 0; - lo = lo + Math.imul(al5, bl6) | 0; - mid = mid + Math.imul(al5, bh6) | 0; - mid = mid + Math.imul(ah5, bl6) | 0; - hi = hi + Math.imul(ah5, bh6) | 0; - lo = lo + Math.imul(al4, bl7) | 0; - mid = mid + Math.imul(al4, bh7) | 0; - mid = mid + Math.imul(ah4, bl7) | 0; - hi = hi + Math.imul(ah4, bh7) | 0; - lo = lo + Math.imul(al3, bl8) | 0; - mid = mid + Math.imul(al3, bh8) | 0; - mid = mid + Math.imul(ah3, bl8) | 0; - hi = hi + Math.imul(ah3, bh8) | 0; - lo = lo + Math.imul(al2, bl9) | 0; - mid = mid + Math.imul(al2, bh9) | 0; - mid = mid + Math.imul(ah2, bl9) | 0; - hi = hi + Math.imul(ah2, bh9) | 0; - var w11 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0; - w11 &= 0x3ffffff; - /* k = 12 */ - lo = Math.imul(al9, bl3); - mid = Math.imul(al9, bh3); - mid = mid + Math.imul(ah9, bl3) | 0; - hi = Math.imul(ah9, bh3); - lo = lo + Math.imul(al8, bl4) | 0; - mid = mid + Math.imul(al8, bh4) | 0; - mid = mid + Math.imul(ah8, bl4) | 0; - hi = hi + Math.imul(ah8, bh4) | 0; - lo = lo + Math.imul(al7, bl5) | 0; - mid = mid + Math.imul(al7, bh5) | 0; - mid = mid + Math.imul(ah7, bl5) | 0; - hi = hi + Math.imul(ah7, bh5) | 0; - lo = lo + Math.imul(al6, bl6) | 0; - mid = mid + Math.imul(al6, bh6) | 0; - mid = mid + Math.imul(ah6, bl6) | 0; - hi = hi + Math.imul(ah6, bh6) | 0; - lo = lo + Math.imul(al5, bl7) | 0; - mid = mid + Math.imul(al5, bh7) | 0; - mid = mid + Math.imul(ah5, bl7) | 0; - hi = hi + Math.imul(ah5, bh7) | 0; - lo = lo + Math.imul(al4, bl8) | 0; - mid = mid + Math.imul(al4, bh8) | 0; - mid = mid + Math.imul(ah4, bl8) | 0; - hi = hi + Math.imul(ah4, bh8) | 0; - lo = lo + Math.imul(al3, bl9) | 0; - mid = mid + Math.imul(al3, bh9) | 0; - mid = mid + Math.imul(ah3, bl9) | 0; - hi = hi + Math.imul(ah3, bh9) | 0; - var w12 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0; - w12 &= 0x3ffffff; - /* k = 13 */ - lo = Math.imul(al9, bl4); - mid = Math.imul(al9, bh4); - mid = mid + Math.imul(ah9, bl4) | 0; - hi = Math.imul(ah9, bh4); - lo = lo + Math.imul(al8, bl5) | 0; - mid = mid + Math.imul(al8, bh5) | 0; - mid = mid + Math.imul(ah8, bl5) | 0; - hi = hi + Math.imul(ah8, bh5) | 0; - lo = lo + Math.imul(al7, bl6) | 0; - mid = mid + Math.imul(al7, bh6) | 0; - mid = mid + Math.imul(ah7, bl6) | 0; - hi = hi + Math.imul(ah7, bh6) | 0; - lo = lo + Math.imul(al6, bl7) | 0; - mid = mid + Math.imul(al6, bh7) | 0; - mid = mid + Math.imul(ah6, bl7) | 0; - hi = hi + Math.imul(ah6, bh7) | 0; - lo = lo + Math.imul(al5, bl8) | 0; - mid = mid + Math.imul(al5, bh8) | 0; - mid = mid + Math.imul(ah5, bl8) | 0; - hi = hi + Math.imul(ah5, bh8) | 0; - lo = lo + Math.imul(al4, bl9) | 0; - mid = mid + Math.imul(al4, bh9) | 0; - mid = mid + Math.imul(ah4, bl9) | 0; - hi = hi + Math.imul(ah4, bh9) | 0; - var w13 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0; - w13 &= 0x3ffffff; - /* k = 14 */ - lo = Math.imul(al9, bl5); - mid = Math.imul(al9, bh5); - mid = mid + Math.imul(ah9, bl5) | 0; - hi = Math.imul(ah9, bh5); - lo = lo + Math.imul(al8, bl6) | 0; - mid = mid + Math.imul(al8, bh6) | 0; - mid = mid + Math.imul(ah8, bl6) | 0; - hi = hi + Math.imul(ah8, bh6) | 0; - lo = lo + Math.imul(al7, bl7) | 0; - mid = mid + Math.imul(al7, bh7) | 0; - mid = mid + Math.imul(ah7, bl7) | 0; - hi = hi + Math.imul(ah7, bh7) | 0; - lo = lo + Math.imul(al6, bl8) | 0; - mid = mid + Math.imul(al6, bh8) | 0; - mid = mid + Math.imul(ah6, bl8) | 0; - hi = hi + Math.imul(ah6, bh8) | 0; - lo = lo + Math.imul(al5, bl9) | 0; - mid = mid + Math.imul(al5, bh9) | 0; - mid = mid + Math.imul(ah5, bl9) | 0; - hi = hi + Math.imul(ah5, bh9) | 0; - var w14 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0; - w14 &= 0x3ffffff; - /* k = 15 */ - lo = Math.imul(al9, bl6); - mid = Math.imul(al9, bh6); - mid = mid + Math.imul(ah9, bl6) | 0; - hi = Math.imul(ah9, bh6); - lo = lo + Math.imul(al8, bl7) | 0; - mid = mid + Math.imul(al8, bh7) | 0; - mid = mid + Math.imul(ah8, bl7) | 0; - hi = hi + Math.imul(ah8, bh7) | 0; - lo = lo + Math.imul(al7, bl8) | 0; - mid = mid + Math.imul(al7, bh8) | 0; - mid = mid + Math.imul(ah7, bl8) | 0; - hi = hi + Math.imul(ah7, bh8) | 0; - lo = lo + Math.imul(al6, bl9) | 0; - mid = mid + Math.imul(al6, bh9) | 0; - mid = mid + Math.imul(ah6, bl9) | 0; - hi = hi + Math.imul(ah6, bh9) | 0; - var w15 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0; - w15 &= 0x3ffffff; - /* k = 16 */ - lo = Math.imul(al9, bl7); - mid = Math.imul(al9, bh7); - mid = mid + Math.imul(ah9, bl7) | 0; - hi = Math.imul(ah9, bh7); - lo = lo + Math.imul(al8, bl8) | 0; - mid = mid + Math.imul(al8, bh8) | 0; - mid = mid + Math.imul(ah8, bl8) | 0; - hi = hi + Math.imul(ah8, bh8) | 0; - lo = lo + Math.imul(al7, bl9) | 0; - mid = mid + Math.imul(al7, bh9) | 0; - mid = mid + Math.imul(ah7, bl9) | 0; - hi = hi + Math.imul(ah7, bh9) | 0; - var w16 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0; - w16 &= 0x3ffffff; - /* k = 17 */ - lo = Math.imul(al9, bl8); - mid = Math.imul(al9, bh8); - mid = mid + Math.imul(ah9, bl8) | 0; - hi = Math.imul(ah9, bh8); - lo = lo + Math.imul(al8, bl9) | 0; - mid = mid + Math.imul(al8, bh9) | 0; - mid = mid + Math.imul(ah8, bl9) | 0; - hi = hi + Math.imul(ah8, bh9) | 0; - var w17 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0; - w17 &= 0x3ffffff; - /* k = 18 */ - lo = Math.imul(al9, bl9); - mid = Math.imul(al9, bh9); - mid = mid + Math.imul(ah9, bl9) | 0; - hi = Math.imul(ah9, bh9); - var w18 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0; - w18 &= 0x3ffffff; - o[0] = w0; - o[1] = w1; - o[2] = w2; - o[3] = w3; - o[4] = w4; - o[5] = w5; - o[6] = w6; - o[7] = w7; - o[8] = w8; - o[9] = w9; - o[10] = w10; - o[11] = w11; - o[12] = w12; - o[13] = w13; - o[14] = w14; - o[15] = w15; - o[16] = w16; - o[17] = w17; - o[18] = w18; - if (c !== 0) { - o[19] = c; - out.length++; + process.nextTick(function () { + callback(e); + }); + }); + } + module.exports = function (password, salt, iterations, keylen, digest, callback) { + if (!Buffer.isBuffer(password)) password = Buffer.from(password, defaultEncoding); + if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, defaultEncoding); + + checkParameters(iterations, keylen); + if (typeof digest === 'function') { + callback = digest; + digest = undefined; + } + if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2'); + + digest = digest || 'sha1'; + var algo = toBrowser[digest.toLowerCase()]; + if (!algo || typeof global.Promise !== 'function') { + return process.nextTick(function () { + var out; + try { + out = sync(password, salt, iterations, keylen, digest); + } catch (e) { + return callback(e); + } + callback(null, out); + }); + } + resolvePromise(checkNative(algo).then(function (resp) { + if (resp) { + return browserPbkdf2(password, salt, iterations, keylen, algo); + } else { + return sync(password, salt, iterations, keylen, digest); + } + }), callback); + }; + }).call(this, require('_process'), typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}); + }, { "./default-encoding": 328, "./precondition": 329, "./sync": 330, "_process": 120, "safe-buffer": 340 }], 328: [function (require, module, exports) { + (function (process) { + var defaultEncoding; + /* istanbul ignore next */ + if (process.browser) { + defaultEncoding = 'utf-8'; + } else { + var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10); + + defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary'; + } + module.exports = defaultEncoding; + }).call(this, require('_process')); + }, { "_process": 120 }], 329: [function (require, module, exports) { + arguments[4][117][0].apply(exports, arguments); + }, { "dup": 117 }], 330: [function (require, module, exports) { + arguments[4][118][0].apply(exports, arguments); + }, { "./default-encoding": 328, "./precondition": 329, "create-hash/md5": 264, "dup": 118, "ripemd160": 339, "safe-buffer": 340, "sha.js": 344 }], 331: [function (require, module, exports) { + arguments[4][121][0].apply(exports, arguments); + }, { "./privateDecrypt": 333, "./publicEncrypt": 334, "dup": 121 }], 332: [function (require, module, exports) { + (function (Buffer) { + var createHash = require('create-hash'); + module.exports = function (seed, len) { + var t = new Buffer(''); + var i = 0, + c; + while (t.length < len) { + c = i2ops(i++); + t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()]); } + return t.slice(0, len); + }; + + function i2ops(c) { + var out = new Buffer(4); + out.writeUInt32BE(c, 0); return out; + } + }).call(this, require("buffer").Buffer); + }, { "buffer": 48, "create-hash": 262 }], 333: [function (require, module, exports) { + (function (Buffer) { + var parseKeys = require('parse-asn1'); + var mgf = require('./mgf'); + var xor = require('./xor'); + var bn = require('bn.js'); + var crt = require('browserify-rsa'); + var createHash = require('create-hash'); + var withPublic = require('./withPublic'); + module.exports = function privateDecrypt(private_key, enc, reverse) { + var padding; + if (private_key.padding) { + padding = private_key.padding; + } else if (reverse) { + padding = 1; + } else { + padding = 4; + } + + var key = parseKeys(private_key); + var k = key.modulus.byteLength(); + if (enc.length > k || new bn(enc).cmp(key.modulus) >= 0) { + throw new Error('decryption error'); + } + var msg; + if (reverse) { + msg = withPublic(new bn(enc), key); + } else { + msg = crt(enc, key); + } + var zBuffer = new Buffer(k - msg.length); + zBuffer.fill(0); + msg = Buffer.concat([zBuffer, msg], k); + if (padding === 4) { + return oaep(key, msg); + } else if (padding === 1) { + return pkcs1(key, msg, reverse); + } else if (padding === 3) { + return msg; + } else { + throw new Error('unknown padding'); + } + }; + + function oaep(key, msg) { + var n = key.modulus; + var k = key.modulus.byteLength(); + var mLen = msg.length; + var iHash = createHash('sha1').update(new Buffer('')).digest(); + var hLen = iHash.length; + var hLen2 = 2 * hLen; + if (msg[0] !== 0) { + throw new Error('decryption error'); + } + var maskedSeed = msg.slice(1, hLen + 1); + var maskedDb = msg.slice(hLen + 1); + var seed = xor(maskedSeed, mgf(maskedDb, hLen)); + var db = xor(maskedDb, mgf(seed, k - hLen - 1)); + if (compare(iHash, db.slice(0, hLen))) { + throw new Error('decryption error'); + } + var i = hLen; + while (db[i] === 0) { + i++; + } + if (db[i++] !== 1) { + throw new Error('decryption error'); + } + return db.slice(i); + } + + function pkcs1(key, msg, reverse) { + var p1 = msg.slice(0, 2); + var i = 2; + var status = 0; + while (msg[i++] !== 0) { + if (i >= msg.length) { + status++; + break; + } + } + var ps = msg.slice(2, i - 1); + var p2 = msg.slice(i - 1, i); + + if (p1.toString('hex') !== '0002' && !reverse || p1.toString('hex') !== '0001' && reverse) { + status++; + } + if (ps.length < 8) { + status++; + } + if (status) { + throw new Error('decryption error'); + } + return msg.slice(i); + } + function compare(a, b) { + a = new Buffer(a); + b = new Buffer(b); + var dif = 0; + var len = a.length; + if (a.length !== b.length) { + dif++; + len = Math.min(a.length, b.length); + } + var i = -1; + while (++i < len) { + dif += a[i] ^ b[i]; + } + return dif; + } + }).call(this, require("buffer").Buffer); + }, { "./mgf": 332, "./withPublic": 335, "./xor": 336, "bn.js": 230, "browserify-rsa": 252, "buffer": 48, "create-hash": 262, "parse-asn1": 325 }], 334: [function (require, module, exports) { + (function (Buffer) { + var parseKeys = require('parse-asn1'); + var randomBytes = require('randombytes'); + var createHash = require('create-hash'); + var mgf = require('./mgf'); + var xor = require('./xor'); + var bn = require('bn.js'); + var withPublic = require('./withPublic'); + var crt = require('browserify-rsa'); + + var constants = { + RSA_PKCS1_OAEP_PADDING: 4, + RSA_PKCS1_PADDIN: 1, + RSA_NO_PADDING: 3 + }; + + module.exports = function publicEncrypt(public_key, msg, reverse) { + var padding; + if (public_key.padding) { + padding = public_key.padding; + } else if (reverse) { + padding = 1; + } else { + padding = 4; + } + var key = parseKeys(public_key); + var paddedMsg; + if (padding === 4) { + paddedMsg = oaep(key, msg); + } else if (padding === 1) { + paddedMsg = pkcs1(key, msg, reverse); + } else if (padding === 3) { + paddedMsg = new bn(msg); + if (paddedMsg.cmp(key.modulus) >= 0) { + throw new Error('data too long for modulus'); + } + } else { + throw new Error('unknown padding'); + } + if (reverse) { + return crt(paddedMsg, key); + } else { + return withPublic(paddedMsg, key); + } }; - // Polyfill comb - if (!Math.imul) { - comb10MulTo = smallMulTo; - } + function oaep(key, msg) { + var k = key.modulus.byteLength(); + var mLen = msg.length; + var iHash = createHash('sha1').update(new Buffer('')).digest(); + var hLen = iHash.length; + var hLen2 = 2 * hLen; + if (mLen > k - hLen2 - 2) { + throw new Error('message too long'); + } + var ps = new Buffer(k - mLen - hLen2 - 2); + ps.fill(0); + var dblen = k - hLen - 1; + var seed = randomBytes(hLen); + var maskedDb = xor(Buffer.concat([iHash, ps, new Buffer([1]), msg], dblen), mgf(seed, dblen)); + var maskedSeed = xor(seed, mgf(maskedDb, hLen)); + return new bn(Buffer.concat([new Buffer([0]), maskedSeed, maskedDb], k)); + } + function pkcs1(key, msg, reverse) { + var mLen = msg.length; + var k = key.modulus.byteLength(); + if (mLen > k - 11) { + throw new Error('message too long'); + } + var ps; + if (reverse) { + ps = new Buffer(k - mLen - 3); + ps.fill(0xff); + } else { + ps = nonZero(k - mLen - 3); + } + return new bn(Buffer.concat([new Buffer([0, reverse ? 1 : 2]), ps, new Buffer([0]), msg], k)); + } + function nonZero(len, crypto) { + var out = new Buffer(len); + var i = 0; + var cache = randomBytes(len * 2); + var cur = 0; + var num; + while (i < len) { + if (cur === cache.length) { + cache = randomBytes(len * 2); + cur = 0; + } + num = cache[cur++]; + if (num) { + out[i++] = num; + } + } + return out; + } + }).call(this, require("buffer").Buffer); + }, { "./mgf": 332, "./withPublic": 335, "./xor": 336, "bn.js": 230, "browserify-rsa": 252, "buffer": 48, "create-hash": 262, "parse-asn1": 325, "randombytes": 337 }], 335: [function (require, module, exports) { + (function (Buffer) { + var bn = require('bn.js'); + function withPublic(paddedMsg, key) { + return new Buffer(paddedMsg.toRed(bn.mont(key.modulus)).redPow(new bn(key.publicExponent)).fromRed().toArray()); + } + + module.exports = withPublic; + }).call(this, require("buffer").Buffer); + }, { "bn.js": 230, "buffer": 48 }], 336: [function (require, module, exports) { + arguments[4][126][0].apply(exports, arguments); + }, { "dup": 126 }], 337: [function (require, module, exports) { + (function (process, global) { + 'use strict'; + + function oldBrowser() { + throw new Error('Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11'); + } + + var Buffer = require('safe-buffer').Buffer; + var crypto = global.crypto || global.msCrypto; + + if (crypto && crypto.getRandomValues) { + module.exports = randomBytes; + } else { + module.exports = oldBrowser; + } + + function randomBytes(size, cb) { + // phantomjs needs to throw + if (size > 65536) throw new Error('requested too many random bytes'); + // in case browserify isn't using the Uint8Array version + var rawBytes = new global.Uint8Array(size); + + // This will not work in older browsers. + // See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues + if (size > 0) { + // getRandomValues fails on IE if size == 0 + crypto.getRandomValues(rawBytes); + } + + // XXX: phantomjs doesn't like a buffer being passed here + var bytes = Buffer.from(rawBytes.buffer); + + if (typeof cb === 'function') { + return process.nextTick(function () { + cb(null, bytes); + }); + } + + return bytes; + } + }).call(this, require('_process'), typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}); + }, { "_process": 120, "safe-buffer": 340 }], 338: [function (require, module, exports) { + (function (process, global) { + 'use strict'; + + function oldBrowser() { + throw new Error('secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11'); + } + var safeBuffer = require('safe-buffer'); + var randombytes = require('randombytes'); + var Buffer = safeBuffer.Buffer; + var kBufferMaxLength = safeBuffer.kMaxLength; + var crypto = global.crypto || global.msCrypto; + var kMaxUint32 = Math.pow(2, 32) - 1; + function assertOffset(offset, length) { + if (typeof offset !== 'number' || offset !== offset) { + // eslint-disable-line no-self-compare + throw new TypeError('offset must be a number'); + } + + if (offset > kMaxUint32 || offset < 0) { + throw new TypeError('offset must be a uint32'); + } + + if (offset > kBufferMaxLength || offset > length) { + throw new RangeError('offset out of range'); + } + } + + function assertSize(size, offset, length) { + if (typeof size !== 'number' || size !== size) { + // eslint-disable-line no-self-compare + throw new TypeError('size must be a number'); + } + + if (size > kMaxUint32 || size < 0) { + throw new TypeError('size must be a uint32'); + } + + if (size + offset > length || size > kBufferMaxLength) { + throw new RangeError('buffer too small'); + } + } + if (crypto && crypto.getRandomValues || !process.browser) { + exports.randomFill = randomFill; + exports.randomFillSync = randomFillSync; + } else { + exports.randomFill = oldBrowser; + exports.randomFillSync = oldBrowser; + } + function randomFill(buf, offset, size, cb) { + if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) { + throw new TypeError('"buf" argument must be a Buffer or Uint8Array'); + } + + if (typeof offset === 'function') { + cb = offset; + offset = 0; + size = buf.length; + } else if (typeof size === 'function') { + cb = size; + size = buf.length - offset; + } else if (typeof cb !== 'function') { + throw new TypeError('"cb" argument must be a function'); + } + assertOffset(offset, buf.length); + assertSize(size, offset, buf.length); + return actualFill(buf, offset, size, cb); + } + + function actualFill(buf, offset, size, cb) { + if (process.browser) { + var ourBuf = buf.buffer; + var uint = new Uint8Array(ourBuf, offset, size); + crypto.getRandomValues(uint); + if (cb) { + process.nextTick(function () { + cb(null, buf); + }); + return; + } + return buf; + } + if (cb) { + randombytes(size, function (err, bytes) { + if (err) { + return cb(err); + } + bytes.copy(buf, offset); + cb(null, buf); + }); + return; + } + var bytes = randombytes(size); + bytes.copy(buf, offset); + return buf; + } + function randomFillSync(buf, offset, size) { + if (typeof offset === 'undefined') { + offset = 0; + } + if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) { + throw new TypeError('"buf" argument must be a Buffer or Uint8Array'); + } + + assertOffset(offset, buf.length); + + if (size === undefined) size = buf.length - offset; + + assertSize(size, offset, buf.length); + + return actualFill(buf, offset, size); + } + }).call(this, require('_process'), typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}); + }, { "_process": 120, "randombytes": 337, "safe-buffer": 340 }], 339: [function (require, module, exports) { + (function (Buffer) { + 'use strict'; + + var inherits = require('inherits'); + var HashBase = require('hash-base'); + + function RIPEMD160() { + HashBase.call(this, 64); + + // state + this._a = 0x67452301; + this._b = 0xefcdab89; + this._c = 0x98badcfe; + this._d = 0x10325476; + this._e = 0xc3d2e1f0; + } + + inherits(RIPEMD160, HashBase); + + RIPEMD160.prototype._update = function () { + var m = new Array(16); + for (var i = 0; i < 16; ++i) { + m[i] = this._block.readInt32LE(i * 4); + }var al = this._a; + var bl = this._b; + var cl = this._c; + var dl = this._d; + var el = this._e; + + // Mj = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 + // K = 0x00000000 + // Sj = 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8 + al = fn1(al, bl, cl, dl, el, m[0], 0x00000000, 11);cl = rotl(cl, 10); + el = fn1(el, al, bl, cl, dl, m[1], 0x00000000, 14);bl = rotl(bl, 10); + dl = fn1(dl, el, al, bl, cl, m[2], 0x00000000, 15);al = rotl(al, 10); + cl = fn1(cl, dl, el, al, bl, m[3], 0x00000000, 12);el = rotl(el, 10); + bl = fn1(bl, cl, dl, el, al, m[4], 0x00000000, 5);dl = rotl(dl, 10); + al = fn1(al, bl, cl, dl, el, m[5], 0x00000000, 8);cl = rotl(cl, 10); + el = fn1(el, al, bl, cl, dl, m[6], 0x00000000, 7);bl = rotl(bl, 10); + dl = fn1(dl, el, al, bl, cl, m[7], 0x00000000, 9);al = rotl(al, 10); + cl = fn1(cl, dl, el, al, bl, m[8], 0x00000000, 11);el = rotl(el, 10); + bl = fn1(bl, cl, dl, el, al, m[9], 0x00000000, 13);dl = rotl(dl, 10); + al = fn1(al, bl, cl, dl, el, m[10], 0x00000000, 14);cl = rotl(cl, 10); + el = fn1(el, al, bl, cl, dl, m[11], 0x00000000, 15);bl = rotl(bl, 10); + dl = fn1(dl, el, al, bl, cl, m[12], 0x00000000, 6);al = rotl(al, 10); + cl = fn1(cl, dl, el, al, bl, m[13], 0x00000000, 7);el = rotl(el, 10); + bl = fn1(bl, cl, dl, el, al, m[14], 0x00000000, 9);dl = rotl(dl, 10); + al = fn1(al, bl, cl, dl, el, m[15], 0x00000000, 8);cl = rotl(cl, 10); + + // Mj = 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8 + // K = 0x5a827999 + // Sj = 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12 + el = fn2(el, al, bl, cl, dl, m[7], 0x5a827999, 7);bl = rotl(bl, 10); + dl = fn2(dl, el, al, bl, cl, m[4], 0x5a827999, 6);al = rotl(al, 10); + cl = fn2(cl, dl, el, al, bl, m[13], 0x5a827999, 8);el = rotl(el, 10); + bl = fn2(bl, cl, dl, el, al, m[1], 0x5a827999, 13);dl = rotl(dl, 10); + al = fn2(al, bl, cl, dl, el, m[10], 0x5a827999, 11);cl = rotl(cl, 10); + el = fn2(el, al, bl, cl, dl, m[6], 0x5a827999, 9);bl = rotl(bl, 10); + dl = fn2(dl, el, al, bl, cl, m[15], 0x5a827999, 7);al = rotl(al, 10); + cl = fn2(cl, dl, el, al, bl, m[3], 0x5a827999, 15);el = rotl(el, 10); + bl = fn2(bl, cl, dl, el, al, m[12], 0x5a827999, 7);dl = rotl(dl, 10); + al = fn2(al, bl, cl, dl, el, m[0], 0x5a827999, 12);cl = rotl(cl, 10); + el = fn2(el, al, bl, cl, dl, m[9], 0x5a827999, 15);bl = rotl(bl, 10); + dl = fn2(dl, el, al, bl, cl, m[5], 0x5a827999, 9);al = rotl(al, 10); + cl = fn2(cl, dl, el, al, bl, m[2], 0x5a827999, 11);el = rotl(el, 10); + bl = fn2(bl, cl, dl, el, al, m[14], 0x5a827999, 7);dl = rotl(dl, 10); + al = fn2(al, bl, cl, dl, el, m[11], 0x5a827999, 13);cl = rotl(cl, 10); + el = fn2(el, al, bl, cl, dl, m[8], 0x5a827999, 12);bl = rotl(bl, 10); + + // Mj = 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12 + // K = 0x6ed9eba1 + // Sj = 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5 + dl = fn3(dl, el, al, bl, cl, m[3], 0x6ed9eba1, 11);al = rotl(al, 10); + cl = fn3(cl, dl, el, al, bl, m[10], 0x6ed9eba1, 13);el = rotl(el, 10); + bl = fn3(bl, cl, dl, el, al, m[14], 0x6ed9eba1, 6);dl = rotl(dl, 10); + al = fn3(al, bl, cl, dl, el, m[4], 0x6ed9eba1, 7);cl = rotl(cl, 10); + el = fn3(el, al, bl, cl, dl, m[9], 0x6ed9eba1, 14);bl = rotl(bl, 10); + dl = fn3(dl, el, al, bl, cl, m[15], 0x6ed9eba1, 9);al = rotl(al, 10); + cl = fn3(cl, dl, el, al, bl, m[8], 0x6ed9eba1, 13);el = rotl(el, 10); + bl = fn3(bl, cl, dl, el, al, m[1], 0x6ed9eba1, 15);dl = rotl(dl, 10); + al = fn3(al, bl, cl, dl, el, m[2], 0x6ed9eba1, 14);cl = rotl(cl, 10); + el = fn3(el, al, bl, cl, dl, m[7], 0x6ed9eba1, 8);bl = rotl(bl, 10); + dl = fn3(dl, el, al, bl, cl, m[0], 0x6ed9eba1, 13);al = rotl(al, 10); + cl = fn3(cl, dl, el, al, bl, m[6], 0x6ed9eba1, 6);el = rotl(el, 10); + bl = fn3(bl, cl, dl, el, al, m[13], 0x6ed9eba1, 5);dl = rotl(dl, 10); + al = fn3(al, bl, cl, dl, el, m[11], 0x6ed9eba1, 12);cl = rotl(cl, 10); + el = fn3(el, al, bl, cl, dl, m[5], 0x6ed9eba1, 7);bl = rotl(bl, 10); + dl = fn3(dl, el, al, bl, cl, m[12], 0x6ed9eba1, 5);al = rotl(al, 10); + + // Mj = 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2 + // K = 0x8f1bbcdc + // Sj = 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12 + cl = fn4(cl, dl, el, al, bl, m[1], 0x8f1bbcdc, 11);el = rotl(el, 10); + bl = fn4(bl, cl, dl, el, al, m[9], 0x8f1bbcdc, 12);dl = rotl(dl, 10); + al = fn4(al, bl, cl, dl, el, m[11], 0x8f1bbcdc, 14);cl = rotl(cl, 10); + el = fn4(el, al, bl, cl, dl, m[10], 0x8f1bbcdc, 15);bl = rotl(bl, 10); + dl = fn4(dl, el, al, bl, cl, m[0], 0x8f1bbcdc, 14);al = rotl(al, 10); + cl = fn4(cl, dl, el, al, bl, m[8], 0x8f1bbcdc, 15);el = rotl(el, 10); + bl = fn4(bl, cl, dl, el, al, m[12], 0x8f1bbcdc, 9);dl = rotl(dl, 10); + al = fn4(al, bl, cl, dl, el, m[4], 0x8f1bbcdc, 8);cl = rotl(cl, 10); + el = fn4(el, al, bl, cl, dl, m[13], 0x8f1bbcdc, 9);bl = rotl(bl, 10); + dl = fn4(dl, el, al, bl, cl, m[3], 0x8f1bbcdc, 14);al = rotl(al, 10); + cl = fn4(cl, dl, el, al, bl, m[7], 0x8f1bbcdc, 5);el = rotl(el, 10); + bl = fn4(bl, cl, dl, el, al, m[15], 0x8f1bbcdc, 6);dl = rotl(dl, 10); + al = fn4(al, bl, cl, dl, el, m[14], 0x8f1bbcdc, 8);cl = rotl(cl, 10); + el = fn4(el, al, bl, cl, dl, m[5], 0x8f1bbcdc, 6);bl = rotl(bl, 10); + dl = fn4(dl, el, al, bl, cl, m[6], 0x8f1bbcdc, 5);al = rotl(al, 10); + cl = fn4(cl, dl, el, al, bl, m[2], 0x8f1bbcdc, 12);el = rotl(el, 10); - function bigMulTo(self, num, out) { - out.negative = num.negative ^ self.negative; - out.length = self.length + num.length; + // Mj = 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13 + // K = 0xa953fd4e + // Sj = 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 + bl = fn5(bl, cl, dl, el, al, m[4], 0xa953fd4e, 9);dl = rotl(dl, 10); + al = fn5(al, bl, cl, dl, el, m[0], 0xa953fd4e, 15);cl = rotl(cl, 10); + el = fn5(el, al, bl, cl, dl, m[5], 0xa953fd4e, 5);bl = rotl(bl, 10); + dl = fn5(dl, el, al, bl, cl, m[9], 0xa953fd4e, 11);al = rotl(al, 10); + cl = fn5(cl, dl, el, al, bl, m[7], 0xa953fd4e, 6);el = rotl(el, 10); + bl = fn5(bl, cl, dl, el, al, m[12], 0xa953fd4e, 8);dl = rotl(dl, 10); + al = fn5(al, bl, cl, dl, el, m[2], 0xa953fd4e, 13);cl = rotl(cl, 10); + el = fn5(el, al, bl, cl, dl, m[10], 0xa953fd4e, 12);bl = rotl(bl, 10); + dl = fn5(dl, el, al, bl, cl, m[14], 0xa953fd4e, 5);al = rotl(al, 10); + cl = fn5(cl, dl, el, al, bl, m[1], 0xa953fd4e, 12);el = rotl(el, 10); + bl = fn5(bl, cl, dl, el, al, m[3], 0xa953fd4e, 13);dl = rotl(dl, 10); + al = fn5(al, bl, cl, dl, el, m[8], 0xa953fd4e, 14);cl = rotl(cl, 10); + el = fn5(el, al, bl, cl, dl, m[11], 0xa953fd4e, 11);bl = rotl(bl, 10); + dl = fn5(dl, el, al, bl, cl, m[6], 0xa953fd4e, 8);al = rotl(al, 10); + cl = fn5(cl, dl, el, al, bl, m[15], 0xa953fd4e, 5);el = rotl(el, 10); + bl = fn5(bl, cl, dl, el, al, m[13], 0xa953fd4e, 6);dl = rotl(dl, 10); - var carry = 0; - var hncarry = 0; - for (var k = 0; k < out.length - 1; k++) { - // Sum all words with the same `i + j = k` and accumulate `ncarry`, - // note that ncarry could be >= 0x3ffffff - var ncarry = hncarry; - hncarry = 0; - var rword = carry & 0x3ffffff; - var maxJ = Math.min(k, num.length - 1); - for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { - var i = k - j; - var a = self.words[i] | 0; - var b = num.words[j] | 0; - var r = a * b; + var ar = this._a; + var br = this._b; + var cr = this._c; + var dr = this._d; + var er = this._e; - var lo = r & 0x3ffffff; - ncarry = ncarry + (r / 0x4000000 | 0) | 0; - lo = lo + rword | 0; - rword = lo & 0x3ffffff; - ncarry = ncarry + (lo >>> 26) | 0; + // M'j = 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12 + // K' = 0x50a28be6 + // S'j = 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6 + ar = fn5(ar, br, cr, dr, er, m[5], 0x50a28be6, 8);cr = rotl(cr, 10); + er = fn5(er, ar, br, cr, dr, m[14], 0x50a28be6, 9);br = rotl(br, 10); + dr = fn5(dr, er, ar, br, cr, m[7], 0x50a28be6, 9);ar = rotl(ar, 10); + cr = fn5(cr, dr, er, ar, br, m[0], 0x50a28be6, 11);er = rotl(er, 10); + br = fn5(br, cr, dr, er, ar, m[9], 0x50a28be6, 13);dr = rotl(dr, 10); + ar = fn5(ar, br, cr, dr, er, m[2], 0x50a28be6, 15);cr = rotl(cr, 10); + er = fn5(er, ar, br, cr, dr, m[11], 0x50a28be6, 15);br = rotl(br, 10); + dr = fn5(dr, er, ar, br, cr, m[4], 0x50a28be6, 5);ar = rotl(ar, 10); + cr = fn5(cr, dr, er, ar, br, m[13], 0x50a28be6, 7);er = rotl(er, 10); + br = fn5(br, cr, dr, er, ar, m[6], 0x50a28be6, 7);dr = rotl(dr, 10); + ar = fn5(ar, br, cr, dr, er, m[15], 0x50a28be6, 8);cr = rotl(cr, 10); + er = fn5(er, ar, br, cr, dr, m[8], 0x50a28be6, 11);br = rotl(br, 10); + dr = fn5(dr, er, ar, br, cr, m[1], 0x50a28be6, 14);ar = rotl(ar, 10); + cr = fn5(cr, dr, er, ar, br, m[10], 0x50a28be6, 14);er = rotl(er, 10); + br = fn5(br, cr, dr, er, ar, m[3], 0x50a28be6, 12);dr = rotl(dr, 10); + ar = fn5(ar, br, cr, dr, er, m[12], 0x50a28be6, 6);cr = rotl(cr, 10); - hncarry += ncarry >>> 26; - ncarry &= 0x3ffffff; - } - out.words[k] = rword; - carry = ncarry; - ncarry = hncarry; - } - if (carry !== 0) { - out.words[k] = carry; - } else { - out.length--; + // M'j = 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2 + // K' = 0x5c4dd124 + // S'j = 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11 + er = fn4(er, ar, br, cr, dr, m[6], 0x5c4dd124, 9);br = rotl(br, 10); + dr = fn4(dr, er, ar, br, cr, m[11], 0x5c4dd124, 13);ar = rotl(ar, 10); + cr = fn4(cr, dr, er, ar, br, m[3], 0x5c4dd124, 15);er = rotl(er, 10); + br = fn4(br, cr, dr, er, ar, m[7], 0x5c4dd124, 7);dr = rotl(dr, 10); + ar = fn4(ar, br, cr, dr, er, m[0], 0x5c4dd124, 12);cr = rotl(cr, 10); + er = fn4(er, ar, br, cr, dr, m[13], 0x5c4dd124, 8);br = rotl(br, 10); + dr = fn4(dr, er, ar, br, cr, m[5], 0x5c4dd124, 9);ar = rotl(ar, 10); + cr = fn4(cr, dr, er, ar, br, m[10], 0x5c4dd124, 11);er = rotl(er, 10); + br = fn4(br, cr, dr, er, ar, m[14], 0x5c4dd124, 7);dr = rotl(dr, 10); + ar = fn4(ar, br, cr, dr, er, m[15], 0x5c4dd124, 7);cr = rotl(cr, 10); + er = fn4(er, ar, br, cr, dr, m[8], 0x5c4dd124, 12);br = rotl(br, 10); + dr = fn4(dr, er, ar, br, cr, m[12], 0x5c4dd124, 7);ar = rotl(ar, 10); + cr = fn4(cr, dr, er, ar, br, m[4], 0x5c4dd124, 6);er = rotl(er, 10); + br = fn4(br, cr, dr, er, ar, m[9], 0x5c4dd124, 15);dr = rotl(dr, 10); + ar = fn4(ar, br, cr, dr, er, m[1], 0x5c4dd124, 13);cr = rotl(cr, 10); + er = fn4(er, ar, br, cr, dr, m[2], 0x5c4dd124, 11);br = rotl(br, 10); + + // M'j = 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13 + // K' = 0x6d703ef3 + // S'j = 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5 + dr = fn3(dr, er, ar, br, cr, m[15], 0x6d703ef3, 9);ar = rotl(ar, 10); + cr = fn3(cr, dr, er, ar, br, m[5], 0x6d703ef3, 7);er = rotl(er, 10); + br = fn3(br, cr, dr, er, ar, m[1], 0x6d703ef3, 15);dr = rotl(dr, 10); + ar = fn3(ar, br, cr, dr, er, m[3], 0x6d703ef3, 11);cr = rotl(cr, 10); + er = fn3(er, ar, br, cr, dr, m[7], 0x6d703ef3, 8);br = rotl(br, 10); + dr = fn3(dr, er, ar, br, cr, m[14], 0x6d703ef3, 6);ar = rotl(ar, 10); + cr = fn3(cr, dr, er, ar, br, m[6], 0x6d703ef3, 6);er = rotl(er, 10); + br = fn3(br, cr, dr, er, ar, m[9], 0x6d703ef3, 14);dr = rotl(dr, 10); + ar = fn3(ar, br, cr, dr, er, m[11], 0x6d703ef3, 12);cr = rotl(cr, 10); + er = fn3(er, ar, br, cr, dr, m[8], 0x6d703ef3, 13);br = rotl(br, 10); + dr = fn3(dr, er, ar, br, cr, m[12], 0x6d703ef3, 5);ar = rotl(ar, 10); + cr = fn3(cr, dr, er, ar, br, m[2], 0x6d703ef3, 14);er = rotl(er, 10); + br = fn3(br, cr, dr, er, ar, m[10], 0x6d703ef3, 13);dr = rotl(dr, 10); + ar = fn3(ar, br, cr, dr, er, m[0], 0x6d703ef3, 13);cr = rotl(cr, 10); + er = fn3(er, ar, br, cr, dr, m[4], 0x6d703ef3, 7);br = rotl(br, 10); + dr = fn3(dr, er, ar, br, cr, m[13], 0x6d703ef3, 5);ar = rotl(ar, 10); + + // M'j = 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14 + // K' = 0x7a6d76e9 + // S'j = 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8 + cr = fn2(cr, dr, er, ar, br, m[8], 0x7a6d76e9, 15);er = rotl(er, 10); + br = fn2(br, cr, dr, er, ar, m[6], 0x7a6d76e9, 5);dr = rotl(dr, 10); + ar = fn2(ar, br, cr, dr, er, m[4], 0x7a6d76e9, 8);cr = rotl(cr, 10); + er = fn2(er, ar, br, cr, dr, m[1], 0x7a6d76e9, 11);br = rotl(br, 10); + dr = fn2(dr, er, ar, br, cr, m[3], 0x7a6d76e9, 14);ar = rotl(ar, 10); + cr = fn2(cr, dr, er, ar, br, m[11], 0x7a6d76e9, 14);er = rotl(er, 10); + br = fn2(br, cr, dr, er, ar, m[15], 0x7a6d76e9, 6);dr = rotl(dr, 10); + ar = fn2(ar, br, cr, dr, er, m[0], 0x7a6d76e9, 14);cr = rotl(cr, 10); + er = fn2(er, ar, br, cr, dr, m[5], 0x7a6d76e9, 6);br = rotl(br, 10); + dr = fn2(dr, er, ar, br, cr, m[12], 0x7a6d76e9, 9);ar = rotl(ar, 10); + cr = fn2(cr, dr, er, ar, br, m[2], 0x7a6d76e9, 12);er = rotl(er, 10); + br = fn2(br, cr, dr, er, ar, m[13], 0x7a6d76e9, 9);dr = rotl(dr, 10); + ar = fn2(ar, br, cr, dr, er, m[9], 0x7a6d76e9, 12);cr = rotl(cr, 10); + er = fn2(er, ar, br, cr, dr, m[7], 0x7a6d76e9, 5);br = rotl(br, 10); + dr = fn2(dr, er, ar, br, cr, m[10], 0x7a6d76e9, 15);ar = rotl(ar, 10); + cr = fn2(cr, dr, er, ar, br, m[14], 0x7a6d76e9, 8);er = rotl(er, 10); + + // M'j = 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11 + // K' = 0x00000000 + // S'j = 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 + br = fn1(br, cr, dr, er, ar, m[12], 0x00000000, 8);dr = rotl(dr, 10); + ar = fn1(ar, br, cr, dr, er, m[15], 0x00000000, 5);cr = rotl(cr, 10); + er = fn1(er, ar, br, cr, dr, m[10], 0x00000000, 12);br = rotl(br, 10); + dr = fn1(dr, er, ar, br, cr, m[4], 0x00000000, 9);ar = rotl(ar, 10); + cr = fn1(cr, dr, er, ar, br, m[1], 0x00000000, 12);er = rotl(er, 10); + br = fn1(br, cr, dr, er, ar, m[5], 0x00000000, 5);dr = rotl(dr, 10); + ar = fn1(ar, br, cr, dr, er, m[8], 0x00000000, 14);cr = rotl(cr, 10); + er = fn1(er, ar, br, cr, dr, m[7], 0x00000000, 6);br = rotl(br, 10); + dr = fn1(dr, er, ar, br, cr, m[6], 0x00000000, 8);ar = rotl(ar, 10); + cr = fn1(cr, dr, er, ar, br, m[2], 0x00000000, 13);er = rotl(er, 10); + br = fn1(br, cr, dr, er, ar, m[13], 0x00000000, 6);dr = rotl(dr, 10); + ar = fn1(ar, br, cr, dr, er, m[14], 0x00000000, 5);cr = rotl(cr, 10); + er = fn1(er, ar, br, cr, dr, m[0], 0x00000000, 15);br = rotl(br, 10); + dr = fn1(dr, er, ar, br, cr, m[3], 0x00000000, 13);ar = rotl(ar, 10); + cr = fn1(cr, dr, er, ar, br, m[9], 0x00000000, 11);er = rotl(er, 10); + br = fn1(br, cr, dr, er, ar, m[11], 0x00000000, 11);dr = rotl(dr, 10); + + // change state + var t = this._b + cl + dr | 0; + this._b = this._c + dl + er | 0; + this._c = this._d + el + ar | 0; + this._d = this._e + al + br | 0; + this._e = this._a + bl + cr | 0; + this._a = t; + }; + + RIPEMD160.prototype._digest = function () { + // create padding and handle blocks + this._block[this._blockOffset++] = 0x80; + if (this._blockOffset > 56) { + this._block.fill(0, this._blockOffset, 64); + this._update(); + this._blockOffset = 0; } - return out.strip(); + this._block.fill(0, this._blockOffset, 56); + this._block.writeUInt32LE(this._length[0], 56); + this._block.writeUInt32LE(this._length[1], 60); + this._update(); + + // produce result + var buffer = new Buffer(20); + buffer.writeInt32LE(this._a, 0); + buffer.writeInt32LE(this._b, 4); + buffer.writeInt32LE(this._c, 8); + buffer.writeInt32LE(this._d, 12); + buffer.writeInt32LE(this._e, 16); + return buffer; + }; + + function rotl(x, n) { + return x << n | x >>> 32 - n; } - function jumboMulTo(self, num, out) { - var fftm = new FFTM(); - return fftm.mulp(self, num, out); + function fn1(a, b, c, d, e, m, k, s) { + return rotl(a + (b ^ c ^ d) + m + k | 0, s) + e | 0; } - BN.prototype.mulTo = function mulTo(num, out) { - var res; - var len = this.length + num.length; - if (this.length === 10 && num.length === 10) { - res = comb10MulTo(this, num, out); - } else if (len < 63) { - res = smallMulTo(this, num, out); - } else if (len < 1024) { - res = bigMulTo(this, num, out); - } else { - res = jumboMulTo(this, num, out); - } + function fn2(a, b, c, d, e, m, k, s) { + return rotl(a + (b & c | ~b & d) + m + k | 0, s) + e | 0; + } - return res; - }; + function fn3(a, b, c, d, e, m, k, s) { + return rotl(a + ((b | ~c) ^ d) + m + k | 0, s) + e | 0; + } - // Cooley-Tukey algorithm for FFT - // slightly revisited to rely on looping instead of recursion + function fn4(a, b, c, d, e, m, k, s) { + return rotl(a + (b & d | c & ~d) + m + k | 0, s) + e | 0; + } - function FFTM(x, y) { - this.x = x; - this.y = y; + function fn5(a, b, c, d, e, m, k, s) { + return rotl(a + (b ^ (c | ~d)) + m + k | 0, s) + e | 0; } - FFTM.prototype.makeRBT = function makeRBT(N) { - var t = new Array(N); - var l = BN.prototype._countBits(N) - 1; - for (var i = 0; i < N; i++) { - t[i] = this.revBin(i, l, N); - } + module.exports = RIPEMD160; + }).call(this, require("buffer").Buffer); + }, { "buffer": 48, "hash-base": 301, "inherits": 315 }], 340: [function (require, module, exports) { + arguments[4][130][0].apply(exports, arguments); + }, { "buffer": 48, "dup": 130 }], 341: [function (require, module, exports) { + module.exports = require('scryptsy'); + }, { "scryptsy": 342 }], 342: [function (require, module, exports) { + (function (Buffer) { + var pbkdf2Sync = require('pbkdf2').pbkdf2Sync; - return t; - }; + var MAX_VALUE = 0x7fffffff; - // Returns binary-reversed representation of `x` - FFTM.prototype.revBin = function revBin(x, l, N) { - if (x === 0 || x === N - 1) return x; + // N = Cpu cost, r = Memory cost, p = parallelization cost + function scrypt(key, salt, N, r, p, dkLen, progressCallback) { + if (N === 0 || (N & N - 1) !== 0) throw Error('N must be > 0 and a power of 2'); - var rb = 0; - for (var i = 0; i < l; i++) { - rb |= (x & 1) << l - i - 1; - x >>= 1; - } + if (N > MAX_VALUE / 128 / r) throw Error('Parameter N is too large'); + if (r > MAX_VALUE / 128 / p) throw Error('Parameter r is too large'); - return rb; - }; + var XY = new Buffer(256 * r); + var V = new Buffer(128 * r * N); - // Performs "tweedling" phase, therefore 'emulating' - // behaviour of the recursive algorithm - FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) { - for (var i = 0; i < N; i++) { - rtws[i] = rws[rbt[i]]; - itws[i] = iws[rbt[i]]; - } - }; + // pseudo global + var B32 = new Int32Array(16); // salsa20_8 + var x = new Int32Array(16); // salsa20_8 + var _X = new Buffer(64); // blockmix_salsa8 - FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) { - this.permute(rbt, rws, iws, rtws, itws, N); + // pseudo global + var B = pbkdf2Sync(key, salt, 1, p * 128 * r, 'sha256'); - for (var s = 1; s < N; s <<= 1) { - var l = s << 1; + var tickCallback; + if (progressCallback) { + var totalOps = p * N * 2; + var currentOp = 0; - var rtwdf = Math.cos(2 * Math.PI / l); - var itwdf = Math.sin(2 * Math.PI / l); + tickCallback = function tickCallback() { + ++currentOp; - for (var p = 0; p < N; p += l) { - var rtwdf_ = rtwdf; - var itwdf_ = itwdf; + // send progress notifications once every 1,000 ops + if (currentOp % 1000 === 0) { + progressCallback({ + current: currentOp, + total: totalOps, + percent: currentOp / totalOps * 100.0 + }); + } + }; + } - for (var j = 0; j < s; j++) { - var re = rtws[p + j]; - var ie = itws[p + j]; + for (var i = 0; i < p; i++) { + smix(B, i * 128 * r, r, N, V, XY); + } - var ro = rtws[p + j + s]; - var io = itws[p + j + s]; + return pbkdf2Sync(key, B, 1, dkLen, 'sha256'); - var rx = rtwdf_ * ro - itwdf_ * io; + // all of these functions are actually moved to the top + // due to function hoisting - io = rtwdf_ * io + itwdf_ * ro; - ro = rx; + function smix(B, Bi, r, N, V, XY) { + var Xi = 0; + var Yi = 128 * r; + var i; - rtws[p + j] = re + ro; - itws[p + j] = ie + io; + B.copy(XY, Xi, Bi, Bi + Yi); - rtws[p + j + s] = re - ro; - itws[p + j + s] = ie - io; + for (i = 0; i < N; i++) { + XY.copy(V, i * Yi, Xi, Xi + Yi); + blockmix_salsa8(XY, Xi, Yi, r); - /* jshint maxdepth : false */ - if (j !== l) { - rx = rtwdf * rtwdf_ - itwdf * itwdf_; + if (tickCallback) tickCallback(); + } - itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_; - rtwdf_ = rx; - } - } + for (i = 0; i < N; i++) { + var offset = Xi + (2 * r - 1) * 64; + var j = XY.readUInt32LE(offset) & N - 1; + blockxor(V, j * Yi, XY, Xi, Yi); + blockmix_salsa8(XY, Xi, Yi, r); + + if (tickCallback) tickCallback(); } - } - }; - FFTM.prototype.guessLen13b = function guessLen13b(n, m) { - var N = Math.max(m, n) | 1; - var odd = N & 1; - var i = 0; - for (N = N / 2 | 0; N; N = N >>> 1) { - i++; + XY.copy(B, Bi, Xi, Xi + Yi); } - return 1 << i + 1 + odd; - }; + function blockmix_salsa8(BY, Bi, Yi, r) { + var i; - FFTM.prototype.conjugate = function conjugate(rws, iws, N) { - if (N <= 1) return; + arraycopy(BY, Bi + (2 * r - 1) * 64, _X, 0, 64); - for (var i = 0; i < N / 2; i++) { - var t = rws[i]; + for (i = 0; i < 2 * r; i++) { + blockxor(BY, i * 64, _X, 0, 64); + salsa20_8(_X); + arraycopy(_X, 0, BY, Yi + i * 64, 64); + } - rws[i] = rws[N - i - 1]; - rws[N - i - 1] = t; + for (i = 0; i < r; i++) { + arraycopy(BY, Yi + i * 2 * 64, BY, Bi + i * 64, 64); + } - t = iws[i]; + for (i = 0; i < r; i++) { + arraycopy(BY, Yi + (i * 2 + 1) * 64, BY, Bi + (i + r) * 64, 64); + } + } - iws[i] = -iws[N - i - 1]; - iws[N - i - 1] = -t; + function R(a, b) { + return a << b | a >>> 32 - b; } - }; - FFTM.prototype.normalize13b = function normalize13b(ws, N) { - var carry = 0; - for (var i = 0; i < N / 2; i++) { - var w = Math.round(ws[2 * i + 1] / N) * 0x2000 + Math.round(ws[2 * i] / N) + carry; + function salsa20_8(B) { + var i; - ws[i] = w & 0x3ffffff; + for (i = 0; i < 16; i++) { + B32[i] = (B[i * 4 + 0] & 0xff) << 0; + B32[i] |= (B[i * 4 + 1] & 0xff) << 8; + B32[i] |= (B[i * 4 + 2] & 0xff) << 16; + B32[i] |= (B[i * 4 + 3] & 0xff) << 24; + // B32[i] = B.readUInt32LE(i*4) <--- this is signficantly slower even in Node.js + } - if (w < 0x4000000) { - carry = 0; - } else { - carry = w / 0x4000000 | 0; + arraycopy(B32, 0, x, 0, 16); + + for (i = 8; i > 0; i -= 2) { + x[4] ^= R(x[0] + x[12], 7); + x[8] ^= R(x[4] + x[0], 9); + x[12] ^= R(x[8] + x[4], 13); + x[0] ^= R(x[12] + x[8], 18); + x[9] ^= R(x[5] + x[1], 7); + x[13] ^= R(x[9] + x[5], 9); + x[1] ^= R(x[13] + x[9], 13); + x[5] ^= R(x[1] + x[13], 18); + x[14] ^= R(x[10] + x[6], 7); + x[2] ^= R(x[14] + x[10], 9); + x[6] ^= R(x[2] + x[14], 13); + x[10] ^= R(x[6] + x[2], 18); + x[3] ^= R(x[15] + x[11], 7); + x[7] ^= R(x[3] + x[15], 9); + x[11] ^= R(x[7] + x[3], 13); + x[15] ^= R(x[11] + x[7], 18); + x[1] ^= R(x[0] + x[3], 7); + x[2] ^= R(x[1] + x[0], 9); + x[3] ^= R(x[2] + x[1], 13); + x[0] ^= R(x[3] + x[2], 18); + x[6] ^= R(x[5] + x[4], 7); + x[7] ^= R(x[6] + x[5], 9); + x[4] ^= R(x[7] + x[6], 13); + x[5] ^= R(x[4] + x[7], 18); + x[11] ^= R(x[10] + x[9], 7); + x[8] ^= R(x[11] + x[10], 9); + x[9] ^= R(x[8] + x[11], 13); + x[10] ^= R(x[9] + x[8], 18); + x[12] ^= R(x[15] + x[14], 7); + x[13] ^= R(x[12] + x[15], 9); + x[14] ^= R(x[13] + x[12], 13); + x[15] ^= R(x[14] + x[13], 18); + } + + for (i = 0; i < 16; ++i) { + B32[i] = x[i] + B32[i]; + }for (i = 0; i < 16; i++) { + var bi = i * 4; + B[bi + 0] = B32[i] >> 0 & 0xff; + B[bi + 1] = B32[i] >> 8 & 0xff; + B[bi + 2] = B32[i] >> 16 & 0xff; + B[bi + 3] = B32[i] >> 24 & 0xff; + // B.writeInt32LE(B32[i], i*4) //<--- this is signficantly slower even in Node.js } } - return ws; - }; + // naive approach... going back to loop unrolling may yield additional performance + function blockxor(S, Si, D, Di, len) { + for (var i = 0; i < len; i++) { + D[Di + i] ^= S[Si + i]; + } + } + } + + function arraycopy(src, srcPos, dest, destPos, length) { + if (Buffer.isBuffer(src) && Buffer.isBuffer(dest)) { + src.copy(dest, destPos, srcPos, srcPos + length); + } else { + while (length--) { + dest[destPos++] = src[srcPos++]; + } + } + } + + module.exports = scrypt; + }).call(this, require("buffer").Buffer); + }, { "buffer": 48, "pbkdf2": 326 }], 343: [function (require, module, exports) { + var Buffer = require('safe-buffer').Buffer; + + // prototype class for hash functions + function Hash(blockSize, finalSize) { + this._block = Buffer.alloc(blockSize); + this._finalSize = finalSize; + this._blockSize = blockSize; + this._len = 0; + } + + Hash.prototype.update = function (data, enc) { + if (typeof data === 'string') { + enc = enc || 'utf8'; + data = Buffer.from(data, enc); + } - FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) { - var carry = 0; - for (var i = 0; i < len; i++) { - carry = carry + (ws[i] | 0); + var block = this._block; + var blockSize = this._blockSize; + var length = data.length; + var accum = this._len; - rws[2 * i] = carry & 0x1fff;carry = carry >>> 13; - rws[2 * i + 1] = carry & 0x1fff;carry = carry >>> 13; - } + for (var offset = 0; offset < length;) { + var assigned = accum % blockSize; + var remainder = Math.min(length - offset, blockSize - assigned); - // Pad with zeroes - for (i = 2 * len; i < N; ++i) { - rws[i] = 0; + for (var i = 0; i < remainder; i++) { + block[assigned + i] = data[offset + i]; } - assert(carry === 0); - assert((carry & ~0x1fff) === 0); - }; + accum += remainder; + offset += remainder; - FFTM.prototype.stub = function stub(N) { - var ph = new Array(N); - for (var i = 0; i < N; i++) { - ph[i] = 0; + if (accum % blockSize === 0) { + this._update(block); } + } - return ph; - }; - - FFTM.prototype.mulp = function mulp(x, y, out) { - var N = 2 * this.guessLen13b(x.length, y.length); - - var rbt = this.makeRBT(N); - - var _ = this.stub(N); - - var rws = new Array(N); - var rwst = new Array(N); - var iwst = new Array(N); + this._len += length; + return this; + }; - var nrws = new Array(N); - var nrwst = new Array(N); - var niwst = new Array(N); + Hash.prototype.digest = function (enc) { + var rem = this._len % this._blockSize; - var rmws = out.words; - rmws.length = N; + this._block[rem] = 0x80; - this.convert13b(x.words, x.length, rws, N); - this.convert13b(y.words, y.length, nrws, N); + // zero (rem + 1) trailing bits, where (rem + 1) is the smallest + // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize + this._block.fill(0, rem + 1); - this.transform(rws, _, rwst, iwst, N, rbt); - this.transform(nrws, _, nrwst, niwst, N, rbt); + if (rem >= this._finalSize) { + this._update(this._block); + this._block.fill(0); + } - for (var i = 0; i < N; i++) { - var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i]; - iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i]; - rwst[i] = rx; - } + var bits = this._len * 8; - this.conjugate(rwst, iwst, N); - this.transform(rwst, iwst, rmws, _, N, rbt); - this.conjugate(rmws, _, N); - this.normalize13b(rmws, N); + // uint32 + if (bits <= 0xffffffff) { + this._block.writeUInt32BE(bits, this._blockSize - 4); - out.negative = x.negative ^ y.negative; - out.length = x.length + y.length; - return out.strip(); - }; + // uint64 + } else { + var lowBits = bits & 0xffffffff; + var highBits = (bits - lowBits) / 0x100000000; - // Multiply `this` by `num` - BN.prototype.mul = function mul(num) { - var out = new BN(null); - out.words = new Array(this.length + num.length); - return this.mulTo(num, out); - }; + this._block.writeUInt32BE(highBits, this._blockSize - 8); + this._block.writeUInt32BE(lowBits, this._blockSize - 4); + } - // Multiply employing FFT - BN.prototype.mulf = function mulf(num) { - var out = new BN(null); - out.words = new Array(this.length + num.length); - return jumboMulTo(this, num, out); - }; + this._update(this._block); + var hash = this._hash(); - // In-place Multiplication - BN.prototype.imul = function imul(num) { - return this.clone().mulTo(num, this); - }; + return enc ? hash.toString(enc) : hash; + }; - BN.prototype.imuln = function imuln(num) { - assert(typeof num === 'number'); - assert(num < 0x4000000); + Hash.prototype._update = function () { + throw new Error('_update must be implemented by subclass'); + }; - // Carry - var carry = 0; - for (var i = 0; i < this.length; i++) { - var w = (this.words[i] | 0) * num; - var lo = (w & 0x3ffffff) + (carry & 0x3ffffff); - carry >>= 26; - carry += w / 0x4000000 | 0; - // NOTE: lo is 27bit maximum - carry += lo >>> 26; - this.words[i] = lo & 0x3ffffff; - } + module.exports = Hash; + }, { "safe-buffer": 340 }], 344: [function (require, module, exports) { + arguments[4][132][0].apply(exports, arguments); + }, { "./sha": 345, "./sha1": 346, "./sha224": 347, "./sha256": 348, "./sha384": 349, "./sha512": 350, "dup": 132 }], 345: [function (require, module, exports) { + arguments[4][133][0].apply(exports, arguments); + }, { "./hash": 343, "dup": 133, "inherits": 315, "safe-buffer": 340 }], 346: [function (require, module, exports) { + arguments[4][134][0].apply(exports, arguments); + }, { "./hash": 343, "dup": 134, "inherits": 315, "safe-buffer": 340 }], 347: [function (require, module, exports) { + arguments[4][135][0].apply(exports, arguments); + }, { "./hash": 343, "./sha256": 348, "dup": 135, "inherits": 315, "safe-buffer": 340 }], 348: [function (require, module, exports) { + arguments[4][136][0].apply(exports, arguments); + }, { "./hash": 343, "dup": 136, "inherits": 315, "safe-buffer": 340 }], 349: [function (require, module, exports) { + arguments[4][137][0].apply(exports, arguments); + }, { "./hash": 343, "./sha512": 350, "dup": 137, "inherits": 315, "safe-buffer": 340 }], 350: [function (require, module, exports) { + arguments[4][138][0].apply(exports, arguments); + }, { "./hash": 343, "dup": 138, "inherits": 315, "safe-buffer": 340 }], 351: [function (require, module, exports) { + arguments[4][171][0].apply(exports, arguments); + }, { "dup": 171 }], 352: [function (require, module, exports) { + (function (global) { - if (carry !== 0) { - this.words[i] = carry; - this.length++; - } + var rng; - return this; - }; + if (global.crypto && crypto.getRandomValues) { + // WHATWG crypto-based RNG - http://wiki.whatwg.org/wiki/Crypto + // Moderately fast, high quality + var _rnds8 = new Uint8Array(16); + rng = function whatwgRNG() { + crypto.getRandomValues(_rnds8); + return _rnds8; + }; + } - BN.prototype.muln = function muln(num) { - return this.clone().imuln(num); - }; + if (!rng) { + // Math.random()-based (RNG) + // + // If all else fails, use Math.random(). It's fast, but is of unspecified + // quality. + var _rnds = new Array(16); + rng = function rng() { + for (var i = 0, r; i < 16; i++) { + if ((i & 0x03) === 0) r = Math.random() * 0x100000000; + _rnds[i] = r >>> ((i & 0x03) << 3) & 0xff; + } - // `this` * `this` - BN.prototype.sqr = function sqr() { - return this.mul(this); - }; + return _rnds; + }; + } - // `this` * `this` in-place - BN.prototype.isqr = function isqr() { - return this.imul(this.clone()); - }; + module.exports = rng; + }).call(this, typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}); + }, {}], 353: [function (require, module, exports) { + // uuid.js + // + // Copyright (c) 2010-2012 Robert Kieffer + // MIT License - http://opensource.org/licenses/mit-license.php - // Math.pow(`this`, `num`) - BN.prototype.pow = function pow(num) { - var w = toBitArray(num); - if (w.length === 0) return new BN(1); + // Unique ID creation requires a high quality random # generator. We feature + // detect to determine the best RNG source, normalizing to a function that + // returns 128-bits of randomness, since that's what's usually required + var _rng = require('./rng'); - // Skip leading zeroes - var res = this; - for (var i = 0; i < w.length; i++, res = res.sqr()) { - if (w[i] !== 0) break; - } + // Maps for number <-> hex string conversion + var _byteToHex = []; + var _hexToByte = {}; + for (var i = 0; i < 256; i++) { + _byteToHex[i] = (i + 0x100).toString(16).substr(1); + _hexToByte[_byteToHex[i]] = i; + } - if (++i < w.length) { - for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) { - if (w[i] === 0) continue; + // **`parse()` - Parse a UUID into it's component bytes** + function parse(s, buf, offset) { + var i = buf && offset || 0, + ii = 0; - res = res.mul(q); - } + buf = buf || []; + s.toLowerCase().replace(/[0-9a-f]{2}/g, function (oct) { + if (ii < 16) { + // Don't overflow! + buf[i + ii++] = _hexToByte[oct]; } + }); - return res; - }; - - // Shift-left in-place - BN.prototype.iushln = function iushln(bits) { - assert(typeof bits === 'number' && bits >= 0); - var r = bits % 26; - var s = (bits - r) / 26; - var carryMask = 0x3ffffff >>> 26 - r << 26 - r; - var i; + // Zero out remaining bytes if string was short + while (ii < 16) { + buf[i + ii++] = 0; + } - if (r !== 0) { - var carry = 0; + return buf; + } - for (i = 0; i < this.length; i++) { - var newCarry = this.words[i] & carryMask; - var c = (this.words[i] | 0) - newCarry << r; - this.words[i] = c | carry; - carry = newCarry >>> 26 - r; - } + // **`unparse()` - Convert UUID byte array (ala parse()) into a string** + function unparse(buf, offset) { + var i = offset || 0, + bth = _byteToHex; + return bth[buf[i++]] + bth[buf[i++]] + bth[buf[i++]] + bth[buf[i++]] + '-' + bth[buf[i++]] + bth[buf[i++]] + '-' + bth[buf[i++]] + bth[buf[i++]] + '-' + bth[buf[i++]] + bth[buf[i++]] + '-' + bth[buf[i++]] + bth[buf[i++]] + bth[buf[i++]] + bth[buf[i++]] + bth[buf[i++]] + bth[buf[i++]]; + } - if (carry) { - this.words[i] = carry; - this.length++; - } - } + // **`v1()` - Generate time-based UUID** + // + // Inspired by https://github.com/LiosK/UUID.js + // and http://docs.python.org/library/uuid.html - if (s !== 0) { - for (i = this.length - 1; i >= 0; i--) { - this.words[i + s] = this.words[i]; - } + // random #'s we need to init node and clockseq + var _seedBytes = _rng(); - for (i = 0; i < s; i++) { - this.words[i] = 0; - } + // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) + var _nodeId = [_seedBytes[0] | 0x01, _seedBytes[1], _seedBytes[2], _seedBytes[3], _seedBytes[4], _seedBytes[5]]; - this.length += s; - } + // Per 4.2.2, randomize (14 bit) clockseq + var _clockseq = (_seedBytes[6] << 8 | _seedBytes[7]) & 0x3fff; - return this.strip(); - }; + // Previous uuid creation time + var _lastMSecs = 0, + _lastNSecs = 0; - BN.prototype.ishln = function ishln(bits) { - // TODO(indutny): implement me - assert(this.negative === 0); - return this.iushln(bits); - }; + // See https://github.com/broofa/node-uuid for API details + function v1(options, buf, offset) { + var i = buf && offset || 0; + var b = buf || []; - // Shift-right in-place - // NOTE: `hint` is a lowest bit before trailing zeroes - // NOTE: if `extended` is present - it will be filled with destroyed bits - BN.prototype.iushrn = function iushrn(bits, hint, extended) { - assert(typeof bits === 'number' && bits >= 0); - var h; - if (hint) { - h = (hint - hint % 26) / 26; - } else { - h = 0; - } + options = options || {}; - var r = bits % 26; - var s = Math.min((bits - r) / 26, this.length); - var mask = 0x3ffffff ^ 0x3ffffff >>> r << r; - var maskedWords = extended; + var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; - h -= s; - h = Math.max(0, h); + // UUID timestamps are 100 nano-second units since the Gregorian epoch, + // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so + // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' + // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. + var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime(); - // Extended mode, copy masked part - if (maskedWords) { - for (var i = 0; i < s; i++) { - maskedWords.words[i] = this.words[i]; - } - maskedWords.length = s; - } + // Per 4.2.1.2, use count of uuid's generated during the current clock + // cycle to simulate higher resolution clock + var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; - if (s === 0) { - // No-op, we should not move anything at all - } else if (this.length > s) { - this.length -= s; - for (i = 0; i < this.length; i++) { - this.words[i] = this.words[i + s]; - } - } else { - this.words[0] = 0; - this.length = 1; - } + // Time since last uuid creation (in msecs) + var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; - var carry = 0; - for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) { - var word = this.words[i] | 0; - this.words[i] = carry << 26 - r | word >>> r; - carry = word & mask; - } + // Per 4.2.1.2, Bump clockseq on clock regression + if (dt < 0 && options.clockseq === undefined) { + clockseq = clockseq + 1 & 0x3fff; + } - // Push carried bits as a mask - if (maskedWords && carry !== 0) { - maskedWords.words[maskedWords.length++] = carry; - } + // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new + // time interval + if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { + nsecs = 0; + } - if (this.length === 0) { - this.words[0] = 0; - this.length = 1; - } + // Per 4.2.1.2 Throw error if too many uuids are requested + if (nsecs >= 10000) { + throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec'); + } - return this.strip(); - }; + _lastMSecs = msecs; + _lastNSecs = nsecs; + _clockseq = clockseq; - BN.prototype.ishrn = function ishrn(bits, hint, extended) { - // TODO(indutny): implement me - assert(this.negative === 0); - return this.iushrn(bits, hint, extended); - }; + // Per 4.1.4 - Convert from unix epoch to Gregorian epoch + msecs += 12219292800000; - // Shift-left - BN.prototype.shln = function shln(bits) { - return this.clone().ishln(bits); - }; + // `time_low` + var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; + b[i++] = tl >>> 24 & 0xff; + b[i++] = tl >>> 16 & 0xff; + b[i++] = tl >>> 8 & 0xff; + b[i++] = tl & 0xff; - BN.prototype.ushln = function ushln(bits) { - return this.clone().iushln(bits); - }; + // `time_mid` + var tmh = msecs / 0x100000000 * 10000 & 0xfffffff; + b[i++] = tmh >>> 8 & 0xff; + b[i++] = tmh & 0xff; - // Shift-right - BN.prototype.shrn = function shrn(bits) { - return this.clone().ishrn(bits); - }; + // `time_high_and_version` + b[i++] = tmh >>> 24 & 0xf | 0x10; // include version + b[i++] = tmh >>> 16 & 0xff; - BN.prototype.ushrn = function ushrn(bits) { - return this.clone().iushrn(bits); - }; + // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) + b[i++] = clockseq >>> 8 | 0x80; - // Test if n bit is set - BN.prototype.testn = function testn(bit) { - assert(typeof bit === 'number' && bit >= 0); - var r = bit % 26; - var s = (bit - r) / 26; - var q = 1 << r; + // `clock_seq_low` + b[i++] = clockseq & 0xff; - // Fast case: bit is much higher than all existing words - if (this.length <= s) return false; + // `node` + var node = options.node || _nodeId; + for (var n = 0; n < 6; n++) { + b[i + n] = node[n]; + } - // Check bit and return - var w = this.words[s]; + return buf ? buf : unparse(b); + } - return !!(w & q); - }; + // **`v4()` - Generate random UUID** - // Return only lowers bits of number (in-place) - BN.prototype.imaskn = function imaskn(bits) { - assert(typeof bits === 'number' && bits >= 0); - var r = bits % 26; - var s = (bits - r) / 26; + // See https://github.com/broofa/node-uuid for API details + function v4(options, buf, offset) { + // Deprecated - 'format' argument, as supported in v1.2 + var i = buf && offset || 0; - assert(this.negative === 0, 'imaskn works only with positive numbers'); + if (typeof options == 'string') { + buf = options == 'binary' ? new Array(16) : null; + options = null; + } + options = options || {}; - if (this.length <= s) { - return this; - } + var rnds = options.random || (options.rng || _rng)(); - if (r !== 0) { - s++; - } - this.length = Math.min(s, this.length); + // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` + rnds[6] = rnds[6] & 0x0f | 0x40; + rnds[8] = rnds[8] & 0x3f | 0x80; - if (r !== 0) { - var mask = 0x3ffffff ^ 0x3ffffff >>> r << r; - this.words[this.length - 1] &= mask; + // Copy bytes to buffer, if provided + if (buf) { + for (var ii = 0; ii < 16; ii++) { + buf[i + ii] = rnds[ii]; } + } - return this.strip(); - }; + return buf || unparse(rnds); + } - // Return only lowers bits of number - BN.prototype.maskn = function maskn(bits) { - return this.clone().imaskn(bits); - }; + // Export public API + var uuid = v4; + uuid.v1 = v1; + uuid.v4 = v4; + uuid.parse = parse; + uuid.unparse = unparse; - // Add plain number `num` to `this` - BN.prototype.iaddn = function iaddn(num) { - assert(typeof num === 'number'); - assert(num < 0x4000000); - if (num < 0) return this.isubn(-num); + module.exports = uuid; + }, { "./rng": 352 }], 354: [function (require, module, exports) { + (function (global, Buffer) { + /* + This file is part of web3.js. + + web3.js is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + web3.js is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with web3.js. If not, see . + */ + /** + * @file accounts.js + * @author Fabian Vogelsteller + * @date 2017 + */ - // Possible sign change - if (this.negative !== 0) { - if (this.length === 1 && (this.words[0] | 0) < num) { - this.words[0] = num - (this.words[0] | 0); - this.negative = 0; - return this; - } + "use strict"; - this.negative = 0; - this.isubn(num); - this.negative = 1; - return this; - } + var _ = require("underscore"); + var core = require('web3-core'); + var Method = require('web3-core-method'); + var Promise = require('bluebird'); + var Account = require("eth-lib/lib/account"); + var Hash = require("eth-lib/lib/hash"); + var RLP = require("eth-lib/lib/rlp"); + var Nat = require("eth-lib/lib/nat"); + var Bytes = require("eth-lib/lib/bytes"); + var cryp = typeof global === 'undefined' ? require('crypto-browserify') : require('crypto'); + var scryptsy = require('scrypt.js'); + var uuid = require('uuid'); + var utils = require('web3-utils'); + var helpers = require('web3-core-helpers'); - // Add without checks - return this._iaddn(num); + var isNot = function isNot(value) { + return _.isUndefined(value) || _.isNull(value); }; - BN.prototype._iaddn = function _iaddn(num) { - this.words[0] += num; - - // Carry - for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) { - this.words[i] -= 0x4000000; - if (i === this.length - 1) { - this.words[i + 1] = 1; - } else { - this.words[i + 1]++; - } + var trimLeadingZero = function trimLeadingZero(hex) { + while (hex && hex.startsWith('0x0')) { + hex = '0x' + hex.slice(3); } - this.length = Math.max(this.length, i + 1); + return hex; + }; - return this; + var makeEven = function makeEven(hex) { + if (hex.length % 2 === 1) { + hex = hex.replace('0x', '0x0'); + } + return hex; }; - // Subtract plain number `num` from `this` - BN.prototype.isubn = function isubn(num) { - assert(typeof num === 'number'); - assert(num < 0x4000000); - if (num < 0) return this.iaddn(-num); + var Accounts = function Accounts() { + var _this = this; - if (this.negative !== 0) { - this.negative = 0; - this.iaddn(num); - this.negative = 1; - return this; - } + // sets _requestmanager + core.packageInit(this, arguments); - this.words[0] -= num; + // remove unecessary core functions + delete this.BatchRequest; + delete this.extend; - if (this.length === 1 && this.words[0] < 0) { - this.words[0] = -this.words[0]; - this.negative = 1; - } else { - // Carry - for (var i = 0; i < this.length && this.words[i] < 0; i++) { - this.words[i] += 0x4000000; - this.words[i + 1] -= 1; - } - } + var _ethereumCall = [new Method({ + name: 'getId', + call: 'net_version', + params: 0, + outputFormatter: utils.hexToNumber + }), new Method({ + name: 'getGasPrice', + call: 'eth_gasPrice', + params: 0 + }), new Method({ + name: 'getTransactionCount', + call: 'eth_getTransactionCount', + params: 2, + inputFormatter: [function (address) { + if (utils.isAddress(address)) { + return address; + } else { + throw new Error('Address ' + address + ' is not a valid address to get the "transactionCount".'); + } + }, function () { + return 'latest'; + }] + })]; + // attach methods to this._ethereumCall + this._ethereumCall = {}; + _.each(_ethereumCall, function (method) { + method.attachToObject(_this._ethereumCall); + method.setRequestManager(_this._requestManager); + }); - return this.strip(); + this.wallet = new Wallet(this); }; - BN.prototype.addn = function addn(num) { - return this.clone().iaddn(num); - }; + Accounts.prototype._addAccountFunctions = function (account) { + var _this = this; - BN.prototype.subn = function subn(num) { - return this.clone().isubn(num); - }; + // add sign functions + account.signTransaction = function signTransaction(tx, callback) { + return _this.signTransaction(tx, account.privateKey, callback); + }; + account.sign = function sign(data) { + return _this.sign(data, account.privateKey); + }; - BN.prototype.iabs = function iabs() { - this.negative = 0; + account.encrypt = function encrypt(password, options) { + return _this.encrypt(account.privateKey, password, options); + }; - return this; + return account; }; - BN.prototype.abs = function abs() { - return this.clone().iabs(); + Accounts.prototype.create = function create(entropy) { + return this._addAccountFunctions(Account.create(entropy || utils.randomHex(32))); }; - BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) { - var len = num.length + shift; - var i; + Accounts.prototype.privateKeyToAccount = function privateKeyToAccount(privateKey) { + return this._addAccountFunctions(Account.fromPrivate(privateKey)); + }; - this._expand(len); + Accounts.prototype.signTransaction = function signTransaction(tx, privateKey, callback) { + var _this = this; - var w; - var carry = 0; - for (i = 0; i < num.length; i++) { - w = (this.words[i + shift] | 0) + carry; - var right = (num.words[i] | 0) * mul; - w -= right & 0x3ffffff; - carry = (w >> 26) - (right / 0x4000000 | 0); - this.words[i + shift] = w & 0x3ffffff; - } - for (; i < this.length - shift; i++) { - w = (this.words[i + shift] | 0) + carry; - carry = w >> 26; - this.words[i + shift] = w & 0x3ffffff; - } + function signed(tx) { - if (carry === 0) return this.strip(); + if (!tx.gas && !tx.gasLimit) { + throw new Error('"gas" is missing'); + } - // Subtraction overflow - assert(carry === -1); - carry = 0; - for (i = 0; i < this.length; i++) { - w = -(this.words[i] | 0) + carry; - carry = w >> 26; - this.words[i] = w & 0x3ffffff; - } - this.negative = 1; + var transaction = { + nonce: utils.numberToHex(tx.nonce), + to: tx.to ? helpers.formatters.inputAddressFormatter(tx.to) : '0x', + data: tx.data || '0x', + value: tx.value ? utils.numberToHex(tx.value) : "0x", + gas: utils.numberToHex(tx.gasLimit || tx.gas), + gasPrice: utils.numberToHex(tx.gasPrice), + chainId: utils.numberToHex(tx.chainId) + }; - return this.strip(); - }; + var rlpEncoded = RLP.encode([Bytes.fromNat(transaction.nonce), Bytes.fromNat(transaction.gasPrice), Bytes.fromNat(transaction.gas), transaction.to.toLowerCase(), Bytes.fromNat(transaction.value), transaction.data, Bytes.fromNat(transaction.chainId || "0x1"), "0x", "0x"]); - BN.prototype._wordDiv = function _wordDiv(num, mode) { - var shift = this.length - num.length; + var hash = Hash.keccak256(rlpEncoded); - var a = this.clone(); - var b = num; + var signature = Account.makeSigner(Nat.toNumber(transaction.chainId || "0x1") * 2 + 35)(Hash.keccak256(rlpEncoded), privateKey); - // Normalize - var bhi = b.words[b.length - 1] | 0; - var bhiBits = this._countBits(bhi); - shift = 26 - bhiBits; - if (shift !== 0) { - b = b.ushln(shift); - a.iushln(shift); - bhi = b.words[b.length - 1] | 0; - } + var rawTx = RLP.decode(rlpEncoded).slice(0, 6).concat(Account.decodeSignature(signature)); - // Initialize quotient - var m = a.length - b.length; - var q; + rawTx[7] = makeEven(trimLeadingZero(rawTx[7])); + rawTx[8] = makeEven(trimLeadingZero(rawTx[8])); - if (mode !== 'mod') { - q = new BN(null); - q.length = m + 1; - q.words = new Array(q.length); - for (var i = 0; i < q.length; i++) { - q.words[i] = 0; + var rawTransaction = RLP.encode(rawTx); + + var values = RLP.decode(rawTransaction); + var result = { + messageHash: hash, + v: trimLeadingZero(values[6]), + r: trimLeadingZero(values[7]), + s: trimLeadingZero(values[8]), + rawTransaction: rawTransaction + }; + if (_.isFunction(callback)) { + callback(null, result); } + return result; } - var diff = a.clone()._ishlnsubmul(b, 1, m); - if (diff.negative === 0) { - a = diff; - if (q) { - q.words[m] = 1; - } + // Returns synchronously if nonce, chainId and price are provided + if (tx.nonce !== undefined && tx.chainId !== undefined && tx.gasPrice !== undefined) { + return Promise.resolve(signed(tx)); } - for (var j = m - 1; j >= 0; j--) { - var qj = (a.words[b.length + j] | 0) * 0x4000000 + (a.words[b.length + j - 1] | 0); + // Otherwise, get the missing info from the Ethereum Node + return Promise.all([isNot(tx.chainId) ? _this._ethereumCall.getId() : tx.chainId, isNot(tx.gasPrice) ? _this._ethereumCall.getGasPrice() : tx.gasPrice, isNot(tx.nonce) ? _this._ethereumCall.getTransactionCount(_this.privateKeyToAccount(privateKey).address) : tx.nonce]).then(function (args) { + if (isNot(args[0]) || isNot(args[1]) || isNot(args[2])) { + throw new Error('One of the values "chainId", "gasPrice", or "nonce" couldn\'t be fetched: ' + JSON.stringify(args)); + } + return signed(_.extend(tx, { chainId: args[0], gasPrice: args[1], nonce: args[2] })); + }); + }; - // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max - // (0x7ffffff) - qj = Math.min(qj / bhi | 0, 0x3ffffff); + /* jshint ignore:start */ + Accounts.prototype.recoverTransaction = function recoverTransaction(rawTx) { + var values = RLP.decode(rawTx); + var signature = Account.encodeSignature(values.slice(6, 9)); + var recovery = Bytes.toNumber(values[6]); + var extraData = recovery < 35 ? [] : [Bytes.fromNumber(recovery - 35 >> 1), "0x", "0x"]; + var signingData = values.slice(0, 6).concat(extraData); + var signingDataHex = RLP.encode(signingData); + return Account.recover(Hash.keccak256(signingDataHex), signature); + }; + /* jshint ignore:end */ - a._ishlnsubmul(b, qj, j); - while (a.negative !== 0) { - qj--; - a.negative = 0; - a._ishlnsubmul(b, 1, j); - if (!a.isZero()) { - a.negative ^= 1; - } - } - if (q) { - q.words[j] = qj; - } - } - if (q) { - q.strip(); - } - a.strip(); + Accounts.prototype.hashMessage = function hashMessage(data) { + var message = utils.isHexStrict(data) ? utils.hexToUtf8(data) : data; + var ethMessage = "\x19Ethereum Signed Message:\n" + message.length + message; + return Hash.keccak256s(ethMessage); + }; - // Denormalize - if (mode !== 'div' && shift !== 0) { - a.iushrn(shift); - } + Accounts.prototype.sign = function sign(data, privateKey) { + var hash = this.hashMessage(data); + var signature = Account.sign(hash, privateKey); + var vrs = Account.decodeSignature(signature); return { - div: q || null, - mod: a + message: data, + messageHash: hash, + v: vrs[0], + r: vrs[1], + s: vrs[2], + signature: signature }; }; - // NOTE: 1) `mode` can be set to `mod` to request mod only, - // to `div` to request div only, or be absent to - // request both div & mod - // 2) `positive` is true if unsigned mod is requested - BN.prototype.divmod = function divmod(num, mode, positive) { - assert(!num.isZero()); + Accounts.prototype.recover = function recover(hash, signature) { - if (this.isZero()) { - return { - div: new BN(0), - mod: new BN(0) - }; + if (_.isObject(hash)) { + return this.recover(hash.messageHash, Account.encodeSignature([hash.v, hash.r, hash.s])); } - var div, mod, res; - if (this.negative !== 0 && num.negative === 0) { - res = this.neg().divmod(num, mode); + if (!utils.isHexStrict(hash)) { + hash = this.hashMessage(hash); + } - if (mode !== 'mod') { - div = res.div.neg(); - } + if (arguments.length === 4) { + return this.recover(hash, Account.encodeSignature([].slice.call(arguments, 1, 4))); // v, r, s + } + return Account.recover(hash, signature); + }; - if (mode !== 'div') { - mod = res.mod.neg(); - if (positive && mod.negative !== 0) { - mod.iadd(num); - } - } + // Taken from https://github.com/ethereumjs/ethereumjs-wallet + Accounts.prototype.decrypt = function (v3Keystore, password, nonStrict) { + /* jshint maxcomplexity: 10 */ - return { - div: div, - mod: mod - }; + if (!_.isString(password)) { + throw new Error('No password given.'); } - if (this.negative === 0 && num.negative !== 0) { - res = this.divmod(num.neg(), mode); - - if (mode !== 'mod') { - div = res.div.neg(); - } + var json = _.isObject(v3Keystore) ? v3Keystore : JSON.parse(nonStrict ? v3Keystore.toLowerCase() : v3Keystore); - return { - div: div, - mod: res.mod - }; + if (json.version !== 3) { + throw new Error('Not a valid V3 wallet'); } - if ((this.negative & num.negative) !== 0) { - res = this.neg().divmod(num.neg(), mode); + var derivedKey; + var kdfparams; + if (json.crypto.kdf === 'scrypt') { + kdfparams = json.crypto.kdfparams; - if (mode !== 'div') { - mod = res.mod.neg(); - if (positive && mod.negative !== 0) { - mod.isub(num); - } + // FIXME: support progress reporting callback + derivedKey = scryptsy(new Buffer(password), new Buffer(kdfparams.salt, 'hex'), kdfparams.n, kdfparams.r, kdfparams.p, kdfparams.dklen); + } else if (json.crypto.kdf === 'pbkdf2') { + kdfparams = json.crypto.kdfparams; + + if (kdfparams.prf !== 'hmac-sha256') { + throw new Error('Unsupported parameters to PBKDF2'); } - return { - div: res.div, - mod: mod - }; + derivedKey = cryp.pbkdf2Sync(new Buffer(password), new Buffer(kdfparams.salt, 'hex'), kdfparams.c, kdfparams.dklen, 'sha256'); + } else { + throw new Error('Unsupported key derivation scheme'); } - // Both numbers are positive at this point + var ciphertext = new Buffer(json.crypto.ciphertext, 'hex'); - // Strip both numbers to approximate shift value - if (num.length > this.length || this.cmp(num) < 0) { - return { - div: new BN(0), - mod: this - }; + var mac = utils.sha3(Buffer.concat([derivedKey.slice(16, 32), ciphertext])).replace('0x', ''); + if (mac !== json.crypto.mac) { + throw new Error('Key derivation failed - possibly wrong password'); } - // Very short reduction - if (num.length === 1) { - if (mode === 'div') { - return { - div: this.divn(num.words[0]), - mod: null - }; - } + var decipher = cryp.createDecipheriv(json.crypto.cipher, derivedKey.slice(0, 16), new Buffer(json.crypto.cipherparams.iv, 'hex')); + var seed = '0x' + Buffer.concat([decipher.update(ciphertext), decipher.final()]).toString('hex'); - if (mode === 'mod') { - return { - div: null, - mod: new BN(this.modn(num.words[0])) - }; - } + return this.privateKeyToAccount(seed); + }; - return { - div: this.divn(num.words[0]), - mod: new BN(this.modn(num.words[0])) - }; + Accounts.prototype.encrypt = function (privateKey, password, options) { + /* jshint maxcomplexity: 20 */ + var account = this.privateKeyToAccount(privateKey); + + options = options || {}; + var salt = options.salt || cryp.randomBytes(32); + var iv = options.iv || cryp.randomBytes(16); + + var derivedKey; + var kdf = options.kdf || 'scrypt'; + var kdfparams = { + dklen: options.dklen || 32, + salt: salt.toString('hex') + }; + + if (kdf === 'pbkdf2') { + kdfparams.c = options.c || 262144; + kdfparams.prf = 'hmac-sha256'; + derivedKey = cryp.pbkdf2Sync(new Buffer(password), salt, kdfparams.c, kdfparams.dklen, 'sha256'); + } else if (kdf === 'scrypt') { + // FIXME: support progress reporting callback + kdfparams.n = options.n || 8192; // 2048 4096 8192 16384 + kdfparams.r = options.r || 8; + kdfparams.p = options.p || 1; + derivedKey = scryptsy(new Buffer(password), salt, kdfparams.n, kdfparams.r, kdfparams.p, kdfparams.dklen); + } else { + throw new Error('Unsupported kdf'); } - return this._wordDiv(num, mode); - }; + var cipher = cryp.createCipheriv(options.cipher || 'aes-128-ctr', derivedKey.slice(0, 16), iv); + if (!cipher) { + throw new Error('Unsupported cipher'); + } - // Find `this` / `num` - BN.prototype.div = function div(num) { - return this.divmod(num, 'div', false).div; - }; + var ciphertext = Buffer.concat([cipher.update(new Buffer(account.privateKey.replace('0x', ''), 'hex')), cipher.final()]); - // Find `this` % `num` - BN.prototype.mod = function mod(num) { - return this.divmod(num, 'mod', false).mod; - }; + var mac = utils.sha3(Buffer.concat([derivedKey.slice(16, 32), new Buffer(ciphertext, 'hex')])).replace('0x', ''); - BN.prototype.umod = function umod(num) { - return this.divmod(num, 'mod', true).mod; + return { + version: 3, + id: uuid.v4({ random: options.uuid || cryp.randomBytes(16) }), + address: account.address.toLowerCase().replace('0x', ''), + crypto: { + ciphertext: ciphertext.toString('hex'), + cipherparams: { + iv: iv.toString('hex') + }, + cipher: options.cipher || 'aes-128-ctr', + kdf: kdf, + kdfparams: kdfparams, + mac: mac.toString('hex') + } + }; }; - // Find Round(`this` / `num`) - BN.prototype.divRound = function divRound(num) { - var dm = this.divmod(num); + // Note: this is trying to follow closely the specs on + // http://web3js.readthedocs.io/en/1.0/web3-eth-accounts.html - // Fast case - exact division - if (dm.mod.isZero()) return dm.div; + function Wallet(accounts) { + this._accounts = accounts; + this.length = 0; + this.defaultKeyName = "web3js_wallet"; + } - var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod; + Wallet.prototype._findSafeIndex = function (pointer) { + pointer = pointer || 0; + if (_.has(this, pointer)) { + return this._findSafeIndex(pointer + 1); + } else { + return pointer; + } + }; - var half = num.ushrn(1); - var r2 = num.andln(1); - var cmp = mod.cmp(half); + Wallet.prototype._currentIndexes = function () { + var keys = Object.keys(this); + var indexes = keys.map(function (key) { + return parseInt(key); + }).filter(function (n) { + return n < 9e20; + }); - // Round down - if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div; + return indexes; + }; - // Round up - return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1); + Wallet.prototype.create = function (numberOfAccounts, entropy) { + for (var i = 0; i < numberOfAccounts; ++i) { + this.add(this._accounts.create(entropy).privateKey); + } + return this; }; - BN.prototype.modn = function modn(num) { - assert(num <= 0x3ffffff); - var p = (1 << 26) % num; + Wallet.prototype.add = function (account) { - var acc = 0; - for (var i = this.length - 1; i >= 0; i--) { - acc = (p * acc + (this.words[i] | 0)) % num; + if (_.isString(account)) { + account = this._accounts.privateKeyToAccount(account); } + if (!this[account.address]) { + account = this._accounts.privateKeyToAccount(account.privateKey); + account.index = this._findSafeIndex(); - return acc; - }; + this[account.index] = account; + this[account.address] = account; + this[account.address.toLowerCase()] = account; - // In-place division by number - BN.prototype.idivn = function idivn(num) { - assert(num <= 0x3ffffff); + this.length++; - var carry = 0; - for (var i = this.length - 1; i >= 0; i--) { - var w = (this.words[i] | 0) + carry * 0x4000000; - this.words[i] = w / num | 0; - carry = w % num; + return account; + } else { + return this[account.address]; } - - return this.strip(); }; - BN.prototype.divn = function divn(num) { - return this.clone().idivn(num); - }; + Wallet.prototype.remove = function (addressOrIndex) { + var account = this[addressOrIndex]; - BN.prototype.egcd = function egcd(p) { - assert(p.negative === 0); - assert(!p.isZero()); + if (account && account.address) { + // address + this[account.address].privateKey = null; + delete this[account.address]; + // address lowercase + this[account.address.toLowerCase()].privateKey = null; + delete this[account.address.toLowerCase()]; + // index + this[account.index].privateKey = null; + delete this[account.index]; - var x = this; - var y = p.clone(); + this.length--; - if (x.negative !== 0) { - x = x.umod(p); + return true; } else { - x = x.clone(); + return false; } + }; - // A * x + B * y = x - var A = new BN(1); - var B = new BN(0); - - // C * x + D * y = y - var C = new BN(0); - var D = new BN(1); + Wallet.prototype.clear = function () { + var _this = this; + var indexes = this._currentIndexes(); - var g = 0; + indexes.forEach(function (index) { + _this.remove(index); + }); - while (x.isEven() && y.isEven()) { - x.iushrn(1); - y.iushrn(1); - ++g; - } + return this; + }; - var yp = y.clone(); - var xp = x.clone(); + Wallet.prototype.encrypt = function (password, options) { + var _this = this; + var indexes = this._currentIndexes(); - while (!x.isZero()) { - for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1) {} - if (i > 0) { - x.iushrn(i); - while (i-- > 0) { - if (A.isOdd() || B.isOdd()) { - A.iadd(yp); - B.isub(xp); - } + var accounts = indexes.map(function (index) { + return _this[index].encrypt(password, options); + }); - A.iushrn(1); - B.iushrn(1); - } - } + return accounts; + }; - for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1) {} - if (j > 0) { - y.iushrn(j); - while (j-- > 0) { - if (C.isOdd() || D.isOdd()) { - C.iadd(yp); - D.isub(xp); - } + Wallet.prototype.decrypt = function (encryptedWallet, password) { + var _this = this; - C.iushrn(1); - D.iushrn(1); - } - } + encryptedWallet.forEach(function (keystore) { + var account = _this._accounts.decrypt(keystore, password); - if (x.cmp(y) >= 0) { - x.isub(y); - A.isub(C); - B.isub(D); + if (account) { + _this.add(account); } else { - y.isub(x); - C.isub(A); - D.isub(B); + throw new Error('Couldn\'t decrypt accounts. Password wrong?'); } - } + }); - return { - a: C, - b: D, - gcd: y.iushln(g) - }; + return this; }; - // This is reduced incarnation of the binary EEA - // above, designated to invert members of the - // _prime_ fields F(p) at a maximal speed - BN.prototype._invmp = function _invmp(p) { - assert(p.negative === 0); - assert(!p.isZero()); + Wallet.prototype.save = function (password, keyName) { + localStorage.setItem(keyName || this.defaultKeyName, JSON.stringify(this.encrypt(password))); - var a = this; - var b = p.clone(); + return true; + }; - if (a.negative !== 0) { - a = a.umod(p); - } else { - a = a.clone(); + Wallet.prototype.load = function (password, keyName) { + var keystore = localStorage.getItem(keyName || this.defaultKeyName); + + if (keystore) { + try { + keystore = JSON.parse(keystore); + } catch (e) {} } - var x1 = new BN(1); - var x2 = new BN(0); + return this.decrypt(keystore || [], password); + }; - var delta = b.clone(); + if (typeof localStorage === 'undefined') { + delete Wallet.prototype.save; + delete Wallet.prototype.load; + } - while (a.cmpn(1) > 0 && b.cmpn(1) > 0) { - for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1) {} - if (i > 0) { - a.iushrn(i); - while (i-- > 0) { - if (x1.isOdd()) { - x1.iadd(delta); - } + module.exports = Accounts; + }).call(this, typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}, require("buffer").Buffer); + }, { "bluebird": 229, "buffer": 48, "crypto": 57, "crypto-browserify": 267, "eth-lib/lib/account": 294, "eth-lib/lib/bytes": 296, "eth-lib/lib/hash": 297, "eth-lib/lib/nat": 298, "eth-lib/lib/rlp": 299, "scrypt.js": 341, "underscore": 351, "uuid": 353, "web3-core": 201, "web3-core-helpers": 185, "web3-core-method": 187, "web3-utils": 383 }], 355: [function (require, module, exports) { + arguments[4][171][0].apply(exports, arguments); + }, { "dup": 171 }], 356: [function (require, module, exports) { + /* + This file is part of web3.js. + + web3.js is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + web3.js is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with web3.js. If not, see . + */ + /** + * @file contract.js + * + * To initialize a contract use: + * + * var Contract = require('web3-eth-contract'); + * Contract.setProvider('ws://localhost:8546'); + * var contract = new Contract(abi, address, ...); + * + * @author Fabian Vogelsteller + * @date 2017 + */ - x1.iushrn(1); - } - } + "use strict"; - for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1) {} - if (j > 0) { - b.iushrn(j); - while (j-- > 0) { - if (x2.isOdd()) { - x2.iadd(delta); - } + var _ = require('underscore'); + var core = require('web3-core'); + var Method = require('web3-core-method'); + var utils = require('web3-utils'); + var Subscription = require('web3-core-subscriptions').subscription; + var formatters = require('web3-core-helpers').formatters; + var errors = require('web3-core-helpers').errors; + var promiEvent = require('web3-core-promievent'); + var abi = require('web3-eth-abi'); - x2.iushrn(1); - } - } + /** + * Should be called to create new contract instance + * + * @method Contract + * @constructor + * @param {Array} jsonInterface + * @param {String} address + * @param {Object} options + */ + var Contract = function Contract(jsonInterface, address, options) { + var _this = this, + args = Array.prototype.slice.call(arguments); - if (a.cmp(b) >= 0) { - a.isub(b); - x1.isub(x2); - } else { - b.isub(a); - x2.isub(x1); - } - } + if (!(this instanceof Contract)) { + throw new Error('Please use the "new" keyword to instantiate a web3.eth.contract() object!'); + } - var res; - if (a.cmpn(1) === 0) { - res = x1; - } else { - res = x2; - } + // sets _requestmanager + core.packageInit(this, [this.constructor.currentProvider]); - if (res.cmpn(0) < 0) { - res.iadd(p); - } + this.clearSubscriptions = this._requestManager.clearSubscriptions; - return res; - }; + if (!jsonInterface || !Array.isArray(jsonInterface)) { + throw new Error('You must provide the json interface of the contract when instantiating a contract object.'); + } - BN.prototype.gcd = function gcd(num) { - if (this.isZero()) return num.abs(); - if (num.isZero()) return this.abs(); + // create the options object + this.options = {}; - var a = this.clone(); - var b = num.clone(); - a.negative = 0; - b.negative = 0; + var lastArg = args[args.length - 1]; + if (_.isObject(lastArg) && !_.isArray(lastArg)) { + options = lastArg; - // Remove common factor of two - for (var shift = 0; a.isEven() && b.isEven(); shift++) { - a.iushrn(1); - b.iushrn(1); + this.options = _.extend(this.options, this._getOrSetDefaultOptions(options)); + if (_.isObject(address)) { + address = null; } + } - do { - while (a.isEven()) { - a.iushrn(1); - } - while (b.isEven()) { - b.iushrn(1); + // set address + Object.defineProperty(this.options, 'address', { + set: function set(value) { + if (value) { + _this._address = utils.toChecksumAddress(formatters.inputAddressFormatter(value)); } + }, + get: function get() { + return _this._address; + }, + enumerable: true + }); - var r = a.cmp(b); - if (r < 0) { - // Swap `a` and `b` to make `a` always bigger than `b` - var t = a; - a = b; - b = t; - } else if (r === 0 || b.cmpn(1) === 0) { - break; - } + // add method and event signatures, when the jsonInterface gets set + Object.defineProperty(this.options, 'jsonInterface', { + set: function set(value) { + _this.methods = {}; + _this.events = {}; - a.isub(b); - } while (true); + _this._jsonInterface = value.map(function (method) { + var func, funcName; - return b.iushln(shift); - }; + if (method.name) { + funcName = utils._jsonInterfaceMethodToString(method); + } - // Invert number in the field F(num) - BN.prototype.invm = function invm(num) { - return this.egcd(num).a.umod(num); - }; + // function + if (method.type === 'function') { + method.signature = abi.encodeFunctionSignature(funcName); + func = _this._createTxObject.bind({ + method: method, + parent: _this + }); - BN.prototype.isEven = function isEven() { - return (this.words[0] & 1) === 0; - }; + // add method only if not one already exists + if (!_this.methods[method.name]) { + _this.methods[method.name] = func; + } else { + var cascadeFunc = _this._createTxObject.bind({ + method: method, + parent: _this, + nextMethod: _this.methods[method.name] + }); + _this.methods[method.name] = cascadeFunc; + } - BN.prototype.isOdd = function isOdd() { - return (this.words[0] & 1) === 1; - }; + // definitely add the method based on its signature + _this.methods[method.signature] = func; - // And first word and num - BN.prototype.andln = function andln(num) { - return this.words[0] & num; - }; + // add method by name + _this.methods[funcName] = func; - // Increment at the bit position in-line - BN.prototype.bincn = function bincn(bit) { - assert(typeof bit === 'number'); - var r = bit % 26; - var s = (bit - r) / 26; - var q = 1 << r; + // event + } else if (method.type === 'event') { + method.signature = abi.encodeEventSignature(funcName); + var event = _this._on.bind(_this, method.signature); - // Fast case: bit is much higher than all existing words - if (this.length <= s) { - this._expand(s + 1); - this.words[s] |= q; - return this; - } + // add method only if not already exists + if (!_this.events[method.name] || _this.events[method.name].name === 'bound ') _this.events[method.name] = event; - // Add bit and propagate, if needed - var carry = q; - for (var i = s; carry !== 0 && i < this.length; i++) { - var w = this.words[i] | 0; - w += carry; - carry = w >>> 26; - w &= 0x3ffffff; - this.words[i] = w; - } - if (carry !== 0) { - this.words[i] = carry; - this.length++; - } - return this; - }; + // definitely add the method based on its signature + _this.events[method.signature] = event; - BN.prototype.isZero = function isZero() { - return this.length === 1 && this.words[0] === 0; - }; + // add event by name + _this.events[funcName] = event; + } - BN.prototype.cmpn = function cmpn(num) { - var negative = num < 0; + return method; + }); - if (this.negative !== 0 && !negative) return -1; - if (this.negative === 0 && negative) return 1; + // add allEvents + _this.events.allEvents = _this._on.bind(_this, 'allevents'); - this.strip(); + return _this._jsonInterface; + }, + get: function get() { + return _this._jsonInterface; + }, + enumerable: true + }); - var res; - if (this.length > 1) { - res = 1; - } else { - if (negative) { - num = -num; + // get default account from the Class + var defaultAccount = this.constructor.defaultAccount; + var defaultBlock = this.constructor.defaultBlock || 'latest'; + + Object.defineProperty(this, 'defaultAccount', { + get: function get() { + return defaultAccount; + }, + set: function set(val) { + if (val) { + defaultAccount = utils.toChecksumAddress(formatters.inputAddressFormatter(val)); } - assert(num <= 0x3ffffff, 'Number is too big'); + return val; + }, + enumerable: true + }); + Object.defineProperty(this, 'defaultBlock', { + get: function get() { + return defaultBlock; + }, + set: function set(val) { + defaultBlock = val; - var w = this.words[0] | 0; - res = w === num ? 0 : w < num ? -1 : 1; - } - if (this.negative !== 0) return -res | 0; - return res; - }; + return val; + }, + enumerable: true + }); - // Compare two numbers and return: - // 1 - if `this` > `num` - // 0 - if `this` == `num` - // -1 - if `this` < `num` - BN.prototype.cmp = function cmp(num) { - if (this.negative !== 0 && num.negative === 0) return -1; - if (this.negative === 0 && num.negative !== 0) return 1; + // properties + this.methods = {}; + this.events = {}; - var res = this.ucmp(num); - if (this.negative !== 0) return -res | 0; - return res; - }; + this._address = null; + this._jsonInterface = []; - // Unsigned comparison - BN.prototype.ucmp = function ucmp(num) { - // At this point both numbers have the same sign - if (this.length > num.length) return 1; - if (this.length < num.length) return -1; + // set getter/setter properties + this.options.address = address; + this.options.jsonInterface = jsonInterface; + }; - var res = 0; - for (var i = this.length - 1; i >= 0; i--) { - var a = this.words[i] | 0; - var b = num.words[i] | 0; + Contract.setProvider = function (provider, accounts) { + // Contract.currentProvider = provider; + core.packageInit(this, [provider]); + + this._ethAccounts = accounts; + }; + + /** + * Get the callback and modiufy the array if necessary + * + * @method _getCallback + * @param {Array} args + * @return {Function} the callback + */ + Contract.prototype._getCallback = function getCallback(args) { + if (args && _.isFunction(args[args.length - 1])) { + return args.pop(); // modify the args array! + } + }; + + /** + * Checks that no listener with name "newListener" or "removeListener" is added. + * + * @method _checkListener + * @param {String} type + * @param {String} event + * @return {Object} the contract instance + */ + Contract.prototype._checkListener = function (type, event) { + if (event === type) { + throw new Error('The event "' + type + '" is a reserved event name, you can\'t use it.'); + } + }; + + /** + * Use default values, if options are not available + * + * @method _getOrSetDefaultOptions + * @param {Object} options the options gived by the user + * @return {Object} the options with gaps filled by defaults + */ + Contract.prototype._getOrSetDefaultOptions = function getOrSetDefaultOptions(options) { + var gasPrice = options.gasPrice ? String(options.gasPrice) : null; + var from = options.from ? utils.toChecksumAddress(formatters.inputAddressFormatter(options.from)) : null; - if (a === b) continue; - if (a < b) { - res = -1; - } else if (a > b) { - res = 1; - } - break; - } - return res; - }; + options.data = options.data || this.options.data; - BN.prototype.gtn = function gtn(num) { - return this.cmpn(num) === 1; - }; + options.from = from || this.options.from; + options.gasPrice = gasPrice || this.options.gasPrice; + options.gas = options.gas || options.gasLimit || this.options.gas; - BN.prototype.gt = function gt(num) { - return this.cmp(num) === 1; - }; + // TODO replace with only gasLimit? + delete options.gasLimit; - BN.prototype.gten = function gten(num) { - return this.cmpn(num) >= 0; - }; + return options; + }; - BN.prototype.gte = function gte(num) { - return this.cmp(num) >= 0; - }; + /** + * Should be used to encode indexed params and options to one final object + * + * @method _encodeEventABI + * @param {Object} event + * @param {Object} options + * @return {Object} everything combined together and encoded + */ + Contract.prototype._encodeEventABI = function (event, options) { + options = options || {}; + var filter = options.filter || {}, + result = {}; - BN.prototype.ltn = function ltn(num) { - return this.cmpn(num) === -1; - }; + ['fromBlock', 'toBlock'].filter(function (f) { + return options[f] !== undefined; + }).forEach(function (f) { + result[f] = formatters.inputBlockNumberFormatter(options[f]); + }); - BN.prototype.lt = function lt(num) { - return this.cmp(num) === -1; - }; + // use given topics + if (_.isArray(options.topics)) { + result.topics = options.topics; - BN.prototype.lten = function lten(num) { - return this.cmpn(num) <= 0; - }; + // create topics based on filter + } else { - BN.prototype.lte = function lte(num) { - return this.cmp(num) <= 0; - }; + result.topics = []; - BN.prototype.eqn = function eqn(num) { - return this.cmpn(num) === 0; - }; + // add event signature + if (event && !event.anonymous && event.name !== 'ALLEVENTS') { + result.topics.push(event.signature); + } - BN.prototype.eq = function eq(num) { - return this.cmp(num) === 0; - }; + // add event topics (indexed arguments) + if (event.name !== 'ALLEVENTS') { + var indexedTopics = event.inputs.filter(function (i) { + return i.indexed === true; + }).map(function (i) { + var value = filter[i.name]; + if (!value) { + return null; + } - // - // A reduce context, could be using montgomery or something better, depending - // on the `m` itself. - // - BN.red = function red(num) { - return new Red(num); - }; + // TODO: https://github.com/ethereum/web3.js/issues/344 - BN.prototype.toRed = function toRed(ctx) { - assert(!this.red, 'Already a number in reduction context'); - assert(this.negative === 0, 'red works only with positives'); - return ctx.convertTo(this)._forceRed(ctx); - }; + if (_.isArray(value)) { + return value.map(function (v) { + return abi.encodeParameter(i.type, v); + }); + } + return abi.encodeParameter(i.type, value); + }); - BN.prototype.fromRed = function fromRed() { - assert(this.red, 'fromRed works only with numbers in reduction context'); - return this.red.convertFrom(this); - }; + result.topics = result.topics.concat(indexedTopics); + } - BN.prototype._forceRed = function _forceRed(ctx) { - this.red = ctx; - return this; - }; + if (!result.topics.length) delete result.topics; + } - BN.prototype.forceRed = function forceRed(ctx) { - assert(!this.red, 'Already a number in reduction context'); - return this._forceRed(ctx); - }; + if (this.options.address) { + result.address = this.options.address.toLowerCase(); + } - BN.prototype.redAdd = function redAdd(num) { - assert(this.red, 'redAdd works only with red numbers'); - return this.red.add(this, num); - }; + return result; + }; - BN.prototype.redIAdd = function redIAdd(num) { - assert(this.red, 'redIAdd works only with red numbers'); - return this.red.iadd(this, num); - }; + /** + * Should be used to decode indexed params and options + * + * @method _decodeEventABI + * @param {Object} data + * @return {Object} result object with decoded indexed && not indexed params + */ + Contract.prototype._decodeEventABI = function (data) { + var event = this; - BN.prototype.redSub = function redSub(num) { - assert(this.red, 'redSub works only with red numbers'); - return this.red.sub(this, num); - }; + data.data = data.data || ''; + data.topics = data.topics || []; + var result = formatters.outputLogFormatter(data); - BN.prototype.redISub = function redISub(num) { - assert(this.red, 'redISub works only with red numbers'); - return this.red.isub(this, num); - }; + // if allEvents get the right event + if (event.name === 'ALLEVENTS') { + event = event.jsonInterface.find(function (intf) { + return intf.signature === data.topics[0]; + }) || { anonymous: true }; + } - BN.prototype.redShl = function redShl(num) { - assert(this.red, 'redShl works only with red numbers'); - return this.red.shl(this, num); - }; + // create empty inputs if none are present (e.g. anonymous events on allEvents) + event.inputs = event.inputs || []; - BN.prototype.redMul = function redMul(num) { - assert(this.red, 'redMul works only with red numbers'); - this.red._verify2(this, num); - return this.red.mul(this, num); - }; + var argTopics = event.anonymous ? data.topics : data.topics.slice(1); - BN.prototype.redIMul = function redIMul(num) { - assert(this.red, 'redMul works only with red numbers'); - this.red._verify2(this, num); - return this.red.imul(this, num); - }; + result.returnValues = abi.decodeLog(event.inputs, data.data, argTopics); + delete result.returnValues.__length__; - BN.prototype.redSqr = function redSqr() { - assert(this.red, 'redSqr works only with red numbers'); - this.red._verify1(this); - return this.red.sqr(this); - }; + // add name + result.event = event.name; - BN.prototype.redISqr = function redISqr() { - assert(this.red, 'redISqr works only with red numbers'); - this.red._verify1(this); - return this.red.isqr(this); - }; + // add signature + result.signature = event.anonymous || !data.topics[0] ? null : data.topics[0]; - // Square root over p - BN.prototype.redSqrt = function redSqrt() { - assert(this.red, 'redSqrt works only with red numbers'); - this.red._verify1(this); - return this.red.sqrt(this); + // move the data and topics to "raw" + result.raw = { + data: result.data, + topics: result.topics }; + delete result.data; + delete result.topics; - BN.prototype.redInvm = function redInvm() { - assert(this.red, 'redInvm works only with red numbers'); - this.red._verify1(this); - return this.red.invm(this); - }; + return result; + }; - // Return negative clone of `this` % `red modulo` - BN.prototype.redNeg = function redNeg() { - assert(this.red, 'redNeg works only with red numbers'); - this.red._verify1(this); - return this.red.neg(this); - }; + /** + * Encodes an ABI for a method, including signature or the method. + * Or when constructor encodes only the constructor parameters. + * + * @method _encodeMethodABI + * @param {Mixed} args the arguments to encode + * @param {String} the encoded ABI + */ + Contract.prototype._encodeMethodABI = function _encodeMethodABI() { + var methodSignature = this._method.signature, + args = this.arguments || []; - BN.prototype.redPow = function redPow(num) { - assert(this.red && !num.red, 'redPow(normalNum)'); - this.red._verify1(this); - return this.red.pow(this, num); - }; + var signature = false, + paramsABI = this._parent.options.jsonInterface.filter(function (json) { + return methodSignature === 'constructor' && json.type === methodSignature || (json.signature === methodSignature || json.signature === methodSignature.replace('0x', '') || json.name === methodSignature) && json.type === 'function'; + }).map(function (json) { + var inputLength = _.isArray(json.inputs) ? json.inputs.length : 0; - // Prime numbers with efficient reduction - var primes = { - k256: null, - p224: null, - p192: null, - p25519: null - }; + if (inputLength !== args.length) { + throw new Error('The number of arguments is not matching the methods required number. You need to pass ' + inputLength + ' arguments.'); + } - // Pseudo-Mersenne prime - function MPrime(name, p) { - // P = 2 ^ N - K - this.name = name; - this.p = new BN(p, 16); - this.n = this.p.bitLength(); - this.k = new BN(1).iushln(this.n).isub(this.p); + if (json.type === 'function') { + signature = json.signature; + } + return _.isArray(json.inputs) ? json.inputs.map(function (input) { + return input.type; + }) : []; + }).map(function (types) { + return abi.encodeParameters(types, args).replace('0x', ''); + })[0] || ''; - this.tmp = this._tmp(); - } + // return constructor + if (methodSignature === 'constructor') { + if (!this._deployData) throw new Error('The contract has no contract data option set. This is necessary to append the constructor parameters.'); - MPrime.prototype._tmp = function _tmp() { - var tmp = new BN(null); - tmp.words = new Array(Math.ceil(this.n / 13)); - return tmp; - }; + return this._deployData + paramsABI; - MPrime.prototype.ireduce = function ireduce(num) { - // Assumes that `num` is less than `P^2` - // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P) - var r = num; - var rlen; + // return method + } else { - do { - this.split(r, this.tmp); - r = this.imulK(r); - r = r.iadd(this.tmp); - rlen = r.bitLength(); - } while (rlen > this.n); + var returnValue = signature ? signature + paramsABI : paramsABI; - var cmp = rlen < this.n ? -1 : r.ucmp(this.p); - if (cmp === 0) { - r.words[0] = 0; - r.length = 1; - } else if (cmp > 0) { - r.isub(this.p); + if (!returnValue) { + throw new Error('Couldn\'t find a matching contract method named "' + this._method.name + '".'); } else { - r.strip(); + return returnValue; } + } + }; - return r; - }; - - MPrime.prototype.split = function split(input, out) { - input.iushrn(this.n, 0, out); - }; + /** + * Decode method return values + * + * @method _decodeMethodReturn + * @param {Array} outputs + * @param {String} returnValues + * @return {Object} decoded output return values + */ + Contract.prototype._decodeMethodReturn = function (outputs, returnValues) { + if (!returnValues) { + return null; + } - MPrime.prototype.imulK = function imulK(num) { - return num.imul(this.k); - }; + returnValues = returnValues.length >= 2 ? returnValues.slice(2) : returnValues; + var result = abi.decodeParameters(outputs, returnValues); - function K256() { - MPrime.call(this, 'k256', 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f'); + if (result.__length__ === 1) { + return result[0]; + } else { + delete result.__length__; + return result; } - inherits(K256, MPrime); + }; - K256.prototype.split = function split(input, output) { - // 256 = 9 * 26 + 22 - var mask = 0x3fffff; + /** + * Deploys a contract and fire events based on its state: transactionHash, receipt + * + * All event listeners will be removed, once the last possible event is fired ("error", or "receipt") + * + * @method deploy + * @param {Object} options + * @param {Function} callback + * @return {Object} EventEmitter possible events are "error", "transactionHash" and "receipt" + */ + Contract.prototype.deploy = function (options, callback) { - var outLen = Math.min(input.length, 9); - for (var i = 0; i < outLen; i++) { - output.words[i] = input.words[i]; - } - output.length = outLen; + options = options || {}; - if (input.length <= 9) { - input.words[0] = 0; - input.length = 1; - return; - } + options.arguments = options.arguments || []; + options = this._getOrSetDefaultOptions(options); - // Shift by 9 limbs - var prev = input.words[9]; - output.words[output.length++] = prev & mask; + // return error, if no "data" is specified + if (!options.data) { + return utils._fireError(new Error('No "data" specified in neither the given options, nor the default options.'), null, null, callback); + } - for (i = 10; i < input.length; i++) { - var next = input.words[i] | 0; - input.words[i - 10] = (next & mask) << 4 | prev >>> 22; - prev = next; - } - prev >>>= 22; - input.words[i - 10] = prev; - if (prev === 0 && input.length > 10) { - input.length -= 10; - } else { - input.length -= 9; - } - }; + var constructor = _.find(this.options.jsonInterface, function (method) { + return method.type === 'constructor'; + }) || {}; + constructor.signature = 'constructor'; - K256.prototype.imulK = function imulK(num) { - // K = 0x1000003d1 = [ 0x40, 0x3d1 ] - num.words[num.length] = 0; - num.words[num.length + 1] = 0; - num.length += 2; + return this._createTxObject.apply({ + method: constructor, + parent: this, + deployData: options.data, + _ethAccounts: this.constructor._ethAccounts + }, options.arguments); + }; - // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390 - var lo = 0; - for (var i = 0; i < num.length; i++) { - var w = num.words[i] | 0; - lo += w * 0x3d1; - num.words[i] = lo & 0x3ffffff; - lo = w * 0x40 + (lo / 0x4000000 | 0); - } + /** + * Gets the event signature and outputformatters + * + * @method _generateEventOptions + * @param {Object} event + * @param {Object} options + * @param {Function} callback + * @return {Object} the event options object + */ + Contract.prototype._generateEventOptions = function () { + var args = Array.prototype.slice.call(arguments); - // Fast length reduction - if (num.words[num.length - 1] === 0) { - num.length--; - if (num.words[num.length - 1] === 0) { - num.length--; - } - } - return num; - }; + // get the callback + var callback = this._getCallback(args); - function P224() { - MPrime.call(this, 'p224', 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001'); - } - inherits(P224, MPrime); + // get the options + var options = _.isObject(args[args.length - 1]) ? args.pop() : {}; - function P192() { - MPrime.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff'); - } - inherits(P192, MPrime); + var event = _.isString(args[0]) ? args[0] : 'allevents'; + event = event.toLowerCase() === 'allevents' ? { + name: 'ALLEVENTS', + jsonInterface: this.options.jsonInterface + } : this.options.jsonInterface.find(function (json) { + return json.type === 'event' && (json.name === event || json.signature === '0x' + event.replace('0x', '')); + }); - function P25519() { - // 2 ^ 255 - 19 - MPrime.call(this, '25519', '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed'); + if (!event) { + throw new Error('Event "' + event.name + '" doesn\'t exist in this contract.'); } - inherits(P25519, MPrime); - P25519.prototype.imulK = function imulK(num) { - // K = 0x13 - var carry = 0; - for (var i = 0; i < num.length; i++) { - var hi = (num.words[i] | 0) * 0x13 + carry; - var lo = hi & 0x3ffffff; - hi >>>= 26; + if (!utils.isAddress(this.options.address)) { + throw new Error('This contract object doesn\'t have address set yet, please set an address first.'); + } - num.words[i] = lo; - carry = hi; - } - if (carry !== 0) { - num.words[num.length++] = carry; - } - return num; + return { + params: this._encodeEventABI(event, options), + event: event, + callback: callback }; + }; - // Exported mostly for testing purposes, use plain name instead - BN._prime = function prime(name) { - // Cached version of prime - if (primes[name]) return primes[name]; + /** + * Adds event listeners and creates a subscription, and remove it once its fired. + * + * @method clone + * @return {Object} the event subscription + */ + Contract.prototype.clone = function () { + return new Contract(this.options.jsonInterface, this.options.address, this.options); + }; - var prime; - if (name === 'k256') { - prime = new K256(); - } else if (name === 'p224') { - prime = new P224(); - } else if (name === 'p192') { - prime = new P192(); - } else if (name === 'p25519') { - prime = new P25519(); - } else { - throw new Error('Unknown prime ' + name); - } - primes[name] = prime; + /** + * Adds event listeners and creates a subscription, and remove it once its fired. + * + * @method once + * @param {String} event + * @param {Object} options + * @param {Function} callback + * @return {Object} the event subscription + */ + Contract.prototype.once = function (event, options, callback) { + var args = Array.prototype.slice.call(arguments); - return prime; - }; + // get the callback + callback = this._getCallback(args); - // - // Base reduction engine - // - function Red(m) { - if (typeof m === 'string') { - var prime = BN._prime(m); - this.m = prime.p; - this.prime = prime; - } else { - assert(m.gtn(1), 'modulus must be greater than 1'); - this.m = m; - this.prime = null; - } + if (!callback) { + throw new Error('Once requires a callback as the second parameter.'); } - Red.prototype._verify1 = function _verify1(a) { - assert(a.negative === 0, 'red works only with positives'); - assert(a.red, 'red works only with red numbers'); - }; + // don't allow fromBlock + if (options) delete options.fromBlock; - Red.prototype._verify2 = function _verify2(a, b) { - assert((a.negative | b.negative) === 0, 'red works only with positives'); - assert(a.red && a.red === b.red, 'red works only with red numbers'); - }; + // don't return as once shouldn't provide "on" + this._on(event, options, function (err, res, sub) { + sub.unsubscribe(); + if (_.isFunction(callback)) { + callback(err, res, sub); + } + }); - Red.prototype.imod = function imod(a) { - if (this.prime) return this.prime.ireduce(a)._forceRed(this); - return a.umod(this.m)._forceRed(this); - }; + return undefined; + }; - Red.prototype.neg = function neg(a) { - if (a.isZero()) { - return a.clone(); - } + /** + * Adds event listeners and creates a subscription. + * + * @method _on + * @param {String} event + * @param {Object} options + * @param {Function} callback + * @return {Object} the event subscription + */ + Contract.prototype._on = function () { + var subOptions = this._generateEventOptions.apply(this, arguments); - return this.m.sub(a)._forceRed(this); - }; + // prevent the event "newListener" and "removeListener" from being overwritten + this._checkListener('newListener', subOptions.event.name, subOptions.callback); + this._checkListener('removeListener', subOptions.event.name, subOptions.callback); - Red.prototype.add = function add(a, b) { - this._verify2(a, b); + // TODO check if listener already exists? and reuse subscription if options are the same. - var res = a.add(b); - if (res.cmp(this.m) >= 0) { - res.isub(this.m); - } - return res._forceRed(this); - }; + // create new subscription + var subscription = new Subscription({ + subscription: { + params: 1, + inputFormatter: [formatters.inputLogFormatter], + outputFormatter: this._decodeEventABI.bind(subOptions.event), + // DUBLICATE, also in web3-eth + subscriptionHandler: function subscriptionHandler(output) { + if (output.removed) { + this.emit('changed', output); + } else { + this.emit('data', output); + } - Red.prototype.iadd = function iadd(a, b) { - this._verify2(a, b); + if (_.isFunction(this.callback)) { + this.callback(null, output, this); + } + } + }, + type: 'eth', + requestManager: this._requestManager + }); + subscription.subscribe('logs', subOptions.params, subOptions.callback || function () {}); - var res = a.iadd(b); - if (res.cmp(this.m) >= 0) { - res.isub(this.m); - } - return res; - }; + return subscription; + }; - Red.prototype.sub = function sub(a, b) { - this._verify2(a, b); + /** + * Get past events from contracts + * + * @method getPastEvents + * @param {String} event + * @param {Object} options + * @param {Function} callback + * @return {Object} the promievent + */ + Contract.prototype.getPastEvents = function () { + var subOptions = this._generateEventOptions.apply(this, arguments); - var res = a.sub(b); - if (res.cmpn(0) < 0) { - res.iadd(this.m); - } - return res._forceRed(this); - }; + var getPastLogs = new Method({ + name: 'getPastLogs', + call: 'eth_getLogs', + params: 1, + inputFormatter: [formatters.inputLogFormatter], + outputFormatter: this._decodeEventABI.bind(subOptions.event) + }); + getPastLogs.setRequestManager(this._requestManager); + var call = getPastLogs.buildCall(); - Red.prototype.isub = function isub(a, b) { - this._verify2(a, b); + getPastLogs = null; - var res = a.isub(b); - if (res.cmpn(0) < 0) { - res.iadd(this.m); - } - return res; - }; + return call(subOptions.params, subOptions.callback); + }; - Red.prototype.shl = function shl(a, num) { - this._verify1(a); - return this.imod(a.ushln(num)); - }; + /** + * returns the an object with call, send, estimate functions + * + * @method _createTxObject + * @returns {Object} an object with functions to call the methods + */ + Contract.prototype._createTxObject = function _createTxObject() { + var args = Array.prototype.slice.call(arguments); + var txObject = {}; - Red.prototype.imul = function imul(a, b) { - this._verify2(a, b); - return this.imod(a.imul(b)); - }; + if (this.method.type === 'function') { - Red.prototype.mul = function mul(a, b) { - this._verify2(a, b); - return this.imod(a.mul(b)); - }; + txObject.call = this.parent._executeMethod.bind(txObject, 'call'); + txObject.call.request = this.parent._executeMethod.bind(txObject, 'call', true); // to make batch requests + } - Red.prototype.isqr = function isqr(a) { - return this.imul(a, a.clone()); - }; + txObject.send = this.parent._executeMethod.bind(txObject, 'send'); + txObject.send.request = this.parent._executeMethod.bind(txObject, 'send', true); // to make batch requests + txObject.encodeABI = this.parent._encodeMethodABI.bind(txObject); + txObject.estimateGas = this.parent._executeMethod.bind(txObject, 'estimate'); - Red.prototype.sqr = function sqr(a) { - return this.mul(a, a); - }; + if (args && this.method.inputs && args.length !== this.method.inputs.length) { + if (this.nextMethod) { + return this.nextMethod.apply(null, args); + } + throw errors.InvalidNumberOfParams(args.length, this.method.inputs.length, this.method.name); + } - Red.prototype.sqrt = function sqrt(a) { - if (a.isZero()) return a.clone(); + txObject.arguments = args || []; + txObject._method = this.method; + txObject._parent = this.parent; + txObject._ethAccounts = this.parent.constructor._ethAccounts || this._ethAccounts; - var mod3 = this.m.andln(3); - assert(mod3 % 2 === 1); + if (this.deployData) { + txObject._deployData = this.deployData; + } - // Fast case - if (mod3 === 3) { - var pow = this.m.add(new BN(1)).iushrn(2); - return this.pow(a, pow); - } + return txObject; + }; - // Tonelli-Shanks algorithm (Totally unoptimized and slow) - // - // Find Q and S, that Q * 2 ^ S = (P - 1) - var q = this.m.subn(1); - var s = 0; - while (!q.isZero() && q.andln(1) === 0) { - s++; - q.iushrn(1); - } - assert(!q.isZero()); + /** + * Generates the options for the execute call + * + * @method _processExecuteArguments + * @param {Array} args + * @param {Promise} defer + */ + Contract.prototype._processExecuteArguments = function _processExecuteArguments(args, defer) { + var processedArgs = {}; - var one = new BN(1).toRed(this); - var nOne = one.redNeg(); + processedArgs.type = args.shift(); - // Find quadratic non-residue - // NOTE: Max is such because of generalized Riemann hypothesis. - var lpow = this.m.subn(1).iushrn(1); - var z = this.m.bitLength(); - z = new BN(2 * z * z).toRed(this); + // get the callback + processedArgs.callback = this._parent._getCallback(args); - while (this.pow(z, lpow).cmp(nOne) !== 0) { - z.redIAdd(nOne); - } + // get block number to use for call + if (processedArgs.type === 'call' && args[args.length - 1] !== true && (_.isString(args[args.length - 1]) || isFinite(args[args.length - 1]))) processedArgs.defaultBlock = args.pop(); - var c = this.pow(z, q); - var r = this.pow(a, q.addn(1).iushrn(1)); - var t = this.pow(a, q); - var m = s; - while (t.cmp(one) !== 0) { - var tmp = t; - for (var i = 0; tmp.cmp(one) !== 0; i++) { - tmp = tmp.redSqr(); - } - assert(i < m); - var b = this.pow(c, new BN(1).iushln(m - i - 1)); + // get the options + processedArgs.options = _.isObject(args[args.length - 1]) ? args.pop() : {}; - r = r.redMul(b); - c = b.redSqr(); - t = t.redMul(c); - m = i; - } + // get the generateRequest argument for batch requests + processedArgs.generateRequest = args[args.length - 1] === true ? args.pop() : false; - return r; - }; + processedArgs.options = this._parent._getOrSetDefaultOptions(processedArgs.options); + processedArgs.options.data = this.encodeABI(); - Red.prototype.invm = function invm(a) { - var inv = a._invmp(this.m); - if (inv.negative !== 0) { - inv.negative = 0; - return this.imod(inv).redNeg(); - } else { - return this.imod(inv); - } - }; + // add contract address + if (!this._deployData && !utils.isAddress(this._parent.options.address)) throw new Error('This contract object doesn\'t have address set yet, please set an address first.'); - Red.prototype.pow = function pow(a, num) { - if (num.isZero()) return new BN(1).toRed(this); - if (num.cmpn(1) === 0) return a.clone(); + if (!this._deployData) processedArgs.options.to = this._parent.options.address; - var windowSize = 4; - var wnd = new Array(1 << windowSize); - wnd[0] = new BN(1).toRed(this); - wnd[1] = a; - for (var i = 2; i < wnd.length; i++) { - wnd[i] = this.mul(wnd[i - 1], a); - } + // return error, if no "data" is specified + if (!processedArgs.options.data) return utils._fireError(new Error('Couldn\'t find a matching contract method, or the number of parameters is wrong.'), defer.eventEmitter, defer.reject, processedArgs.callback); - var res = wnd[0]; - var current = 0; - var currentLen = 0; - var start = num.bitLength() % 26; - if (start === 0) { - start = 26; - } + return processedArgs; + }; - for (i = num.length - 1; i >= 0; i--) { - var word = num.words[i]; - for (var j = start - 1; j >= 0; j--) { - var bit = word >> j & 1; - if (res !== wnd[0]) { - res = this.sqr(res); - } + /** + * Executes a call, transact or estimateGas on a contract function + * + * @method _executeMethod + * @param {String} type the type this execute function should execute + * @param {Boolean} makeRequest if true, it simply returns the request parameters, rather than executing it + */ + Contract.prototype._executeMethod = function _executeMethod() { + var _this = this, + args = this._parent._processExecuteArguments.call(this, Array.prototype.slice.call(arguments), defer), + defer = promiEvent(args.type !== 'send'), + ethAccounts = _this.constructor._ethAccounts || _this._ethAccounts; - if (bit === 0 && current === 0) { - currentLen = 0; - continue; - } + // simple return request for batch requests + if (args.generateRequest) { - current <<= 1; - current |= bit; - currentLen++; - if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue; + var payload = { + params: [formatters.inputCallFormatter.call(this._parent, args.options), formatters.inputDefaultBlockNumberFormatter.call(this._parent, args.defaultBlock)], + callback: args.callback + }; - res = this.mul(res, wnd[current]); - currentLen = 0; - current = 0; - } - start = 26; + if (args.type === 'call') { + payload.method = 'eth_call'; + payload.format = this._parent._decodeMethodReturn.bind(null, this._method.outputs); + } else { + payload.method = 'eth_sendTransaction'; } - return res; - }; + return payload; + } else { - Red.prototype.convertTo = function convertTo(num) { - var r = num.umod(this.m); + switch (args.type) { + case 'estimate': - return r === num ? r.clone() : r; - }; + var estimateGas = new Method({ + name: 'estimateGas', + call: 'eth_estimateGas', + params: 1, + inputFormatter: [formatters.inputCallFormatter], + outputFormatter: utils.hexToNumber, + requestManager: _this._parent._requestManager, + accounts: ethAccounts, // is eth.accounts (necessary for wallet signing) + defaultAccount: _this._parent.defaultAccount, + defaultBlock: _this._parent.defaultBlock + }).createFunction(); - Red.prototype.convertFrom = function convertFrom(num) { - var res = num.clone(); - res.red = null; - return res; - }; + return estimateGas(args.options, args.callback); - // - // Montgomery method engine - // + case 'call': - BN.mont = function mont(num) { - return new Mont(num); - }; + // TODO check errors: missing "from" should give error on deploy and send, call ? - function Mont(m) { - Red.call(this, m); + var call = new Method({ + name: 'call', + call: 'eth_call', + params: 2, + inputFormatter: [formatters.inputCallFormatter, formatters.inputDefaultBlockNumberFormatter], + // add output formatter for decoding + outputFormatter: function outputFormatter(result) { + return _this._parent._decodeMethodReturn(_this._method.outputs, result); + }, + requestManager: _this._parent._requestManager, + accounts: ethAccounts, // is eth.accounts (necessary for wallet signing) + defaultAccount: _this._parent.defaultAccount, + defaultBlock: _this._parent.defaultBlock + }).createFunction(); - this.shift = this.m.bitLength(); - if (this.shift % 26 !== 0) { - this.shift += 26 - this.shift % 26; - } + return call(args.options, args.defaultBlock, args.callback); - this.r = new BN(1).iushln(this.shift); - this.r2 = this.imod(this.r.sqr()); - this.rinv = this.r._invmp(this.m); + case 'send': - this.minv = this.rinv.mul(this.r).isubn(1).div(this.m); - this.minv = this.minv.umod(this.r); - this.minv = this.r.sub(this.minv); - } - inherits(Mont, Red); + // return error, if no "from" is specified + if (!utils.isAddress(args.options.from)) { + return utils._fireError(new Error('No "from" address specified in neither the given options, nor the default options.'), defer.eventEmitter, defer.reject, args.callback); + } - Mont.prototype.convertTo = function convertTo(num) { - return this.imod(num.ushln(this.shift)); - }; + if (_.isBoolean(this._method.payable) && !this._method.payable && args.options.value && args.options.value > 0) { + return utils._fireError(new Error('Can not send value to non-payable contract method or constructor'), defer.eventEmitter, defer.reject, args.callback); + } - Mont.prototype.convertFrom = function convertFrom(num) { - var r = this.imod(num.mul(this.rinv)); - r.red = null; - return r; - }; + // make sure receipt logs are decoded + var extraFormatters = { + receiptFormatter: function receiptFormatter(receipt) { + if (_.isArray(receipt.logs)) { - Mont.prototype.imul = function imul(a, b) { - if (a.isZero() || b.isZero()) { - a.words[0] = 0; - a.length = 1; - return a; - } + // decode logs + var events = _.map(receipt.logs, function (log) { + return _this._parent._decodeEventABI.call({ + name: 'ALLEVENTS', + jsonInterface: _this._parent.options.jsonInterface + }, log); + }); - var t = a.imul(b); - var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m); - var u = t.isub(c).iushrn(this.shift); - var res = u; + // make log names keys + receipt.events = {}; + var count = 0; + events.forEach(function (ev) { + if (ev.event) { + // if > 1 of the same event, don't overwrite any existing events + if (receipt.events[ev.event]) { + if (Array.isArray(receipt.events[ev.event])) { + receipt.events[ev.event].push(ev); + } else { + receipt.events[ev.event] = [receipt.events[ev.event], ev]; + } + } else { + receipt.events[ev.event] = ev; + } + } else { + receipt.events[count] = ev; + count++; + } + }); - if (u.cmp(this.m) >= 0) { - res = u.isub(this.m); - } else if (u.cmpn(0) < 0) { - res = u.iadd(this.m); - } + delete receipt.logs; + } + return receipt; + }, + contractDeployFormatter: function contractDeployFormatter(receipt) { + var newContract = _this._parent.clone(); + newContract.options.address = receipt.contractAddress; + return newContract; + } + }; - return res._forceRed(this); - }; + var sendTransaction = new Method({ + name: 'sendTransaction', + call: 'eth_sendTransaction', + params: 1, + inputFormatter: [formatters.inputTransactionFormatter], + requestManager: _this._parent._requestManager, + accounts: _this.constructor._ethAccounts || _this._ethAccounts, // is eth.accounts (necessary for wallet signing) + defaultAccount: _this._parent.defaultAccount, + defaultBlock: _this._parent.defaultBlock, + extraFormatters: extraFormatters + }).createFunction(); - Mont.prototype.mul = function mul(a, b) { - if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this); + return sendTransaction(args.options, args.callback); - var t = a.mul(b); - var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m); - var u = t.isub(c).iushrn(this.shift); - var res = u; - if (u.cmp(this.m) >= 0) { - res = u.isub(this.m); - } else if (u.cmpn(0) < 0) { - res = u.iadd(this.m); } + } + }; - return res._forceRed(this); - }; - - Mont.prototype.invm = function invm(a) { - // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R - var res = this.imod(a._invmp(this.m).mul(this.r2)); - return res._forceRed(this); - }; - })(typeof module === 'undefined' || module, this); - }, {}], 365: [function (require, module, exports) { + module.exports = Contract; + }, { "underscore": 355, "web3-core": 201, "web3-core-helpers": 185, "web3-core-method": 187, "web3-core-promievent": 190, "web3-core-subscriptions": 198, "web3-eth-abi": 205, "web3-utils": 383 }], 357: [function (require, module, exports) { + arguments[4][230][0].apply(exports, arguments); + }, { "buffer": 17, "dup": 230 }], 358: [function (require, module, exports) { /* This file is part of web3.js. @@ -49076,7 +45729,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; module.exports = Iban; - }, { "bn.js": 364, "web3-utils": 390 }], 366: [function (require, module, exports) { + }, { "bn.js": 357, "web3-utils": 383 }], 359: [function (require, module, exports) { /* This file is part of web3.js. @@ -49206,9 +45859,9 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol core.addProviders(Personal); module.exports = Personal; - }, { "web3-core": 200, "web3-core-helpers": 184, "web3-core-method": 186, "web3-net": 370, "web3-utils": 390 }], 367: [function (require, module, exports) { - arguments[4][170][0].apply(exports, arguments); - }, { "dup": 170 }], 368: [function (require, module, exports) { + }, { "web3-core": 201, "web3-core-helpers": 185, "web3-core-method": 187, "web3-net": 363, "web3-utils": 383 }], 360: [function (require, module, exports) { + arguments[4][171][0].apply(exports, arguments); + }, { "dup": 171 }], 361: [function (require, module, exports) { /* This file is part of web3.js. @@ -49278,7 +45931,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; module.exports = getNetworkType; - }, { "underscore": 367 }], 369: [function (require, module, exports) { + }, { "underscore": 360 }], 362: [function (require, module, exports) { /* This file is part of web3.js. @@ -49707,7 +46360,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol core.addProviders(Eth); module.exports = Eth; - }, { "./getNetworkType.js": 368, "underscore": 367, "web3-core": 200, "web3-core-helpers": 184, "web3-core-method": 186, "web3-core-subscriptions": 197, "web3-eth-abi": 204, "web3-eth-accounts": 361, "web3-eth-contract": 363, "web3-eth-iban": 365, "web3-eth-personal": 366, "web3-net": 370, "web3-utils": 390 }], 370: [function (require, module, exports) { + }, { "./getNetworkType.js": 361, "underscore": 360, "web3-core": 201, "web3-core-helpers": 185, "web3-core-method": 187, "web3-core-subscriptions": 198, "web3-eth-abi": 205, "web3-eth-accounts": 354, "web3-eth-contract": 356, "web3-eth-iban": 358, "web3-eth-personal": 359, "web3-net": 363, "web3-utils": 383 }], 363: [function (require, module, exports) { /* This file is part of web3.js. @@ -49765,9 +46418,9 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol core.addProviders(Net); module.exports = Net; - }, { "web3-core": 200, "web3-core-method": 186, "web3-utils": 390 }], 371: [function (require, module, exports) { + }, { "web3-core": 201, "web3-core-method": 187, "web3-utils": 383 }], 364: [function (require, module, exports) { module.exports = XMLHttpRequest; - }, {}], 372: [function (require, module, exports) { + }, {}], 365: [function (require, module, exports) { /* This file is part of web3.js. @@ -49861,7 +46514,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; module.exports = HttpProvider; - }, { "web3-core-helpers": 184, "xhr2": 371 }], 373: [function (require, module, exports) { + }, { "web3-core-helpers": 185, "xhr2": 364 }], 366: [function (require, module, exports) { // This file is the concatenation of many js files. // See http://github.com/jimhigson/oboe.js for the raw source @@ -52323,9 +48976,9 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return self; } }(), Object, Array, Error, JSON); - }, {}], 374: [function (require, module, exports) { - arguments[4][170][0].apply(exports, arguments); - }, { "dup": 170 }], 375: [function (require, module, exports) { + }, {}], 367: [function (require, module, exports) { + arguments[4][171][0].apply(exports, arguments); + }, { "dup": 171 }], 368: [function (require, module, exports) { /* This file is part of web3.js. @@ -52621,9 +49274,9 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; module.exports = IpcProvider; - }, { "oboe": 373, "underscore": 374, "web3-core-helpers": 184 }], 376: [function (require, module, exports) { - arguments[4][170][0].apply(exports, arguments); - }, { "dup": 170 }], 377: [function (require, module, exports) { + }, { "oboe": 366, "underscore": 367, "web3-core-helpers": 185 }], 369: [function (require, module, exports) { + arguments[4][171][0].apply(exports, arguments); + }, { "dup": 171 }], 370: [function (require, module, exports) { /* This file is part of web3.js. @@ -52948,7 +49601,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; module.exports = WebsocketProvider; - }, { "underscore": 376, "web3-core-helpers": 184, "websocket": 45 }], 378: [function (require, module, exports) { + }, { "underscore": 369, "web3-core-helpers": 185, "websocket": 45 }], 371: [function (require, module, exports) { /* This file is part of web3.js. @@ -53100,11 +49753,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol core.addProviders(Shh); module.exports = Shh; - }, { "web3-core": 200, "web3-core-method": 186, "web3-core-subscriptions": 197, "web3-net": 370 }], 379: [function (require, module, exports) { - arguments[4][201][0].apply(exports, arguments); - }, { "dup": 201 }], 380: [function (require, module, exports) { - arguments[4][158][0].apply(exports, arguments); - }, { "dup": 158 }], 381: [function (require, module, exports) { + }, { "web3-core": 201, "web3-core-method": 187, "web3-core-subscriptions": 198, "web3-net": 363 }], 372: [function (require, module, exports) { + arguments[4][202][0].apply(exports, arguments); + }, { "dup": 202 }], 373: [function (require, module, exports) { + arguments[4][159][0].apply(exports, arguments); + }, { "dup": 159 }], 374: [function (require, module, exports) { 'use strict'; var BN = require('bn.js'); @@ -53273,7 +49926,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol fromWei: fromWei, toWei: toWei }; - }, { "bn.js": 379, "number-to-bn": 383 }], 382: [function (require, module, exports) { + }, { "bn.js": 372, "number-to-bn": 376 }], 375: [function (require, module, exports) { /** * Returns a `Boolean` on whether or not the a `String` starts with '0x' * @param {String} str the string input value @@ -53287,7 +49940,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return str.slice(0, 2) === '0x'; }; - }, {}], 383: [function (require, module, exports) { + }, {}], 376: [function (require, module, exports) { var BN = require('bn.js'); var stripHexPrefix = require('strip-hex-prefix'); @@ -53324,11 +49977,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol throw new Error('[number-to-bn] while converting number ' + JSON.stringify(arg) + ' to BN.js instance, error: invalid number value. Value must be an integer, hex string, BN or BigNumber instance. Note, decimals are not supported.'); }; - }, { "bn.js": 379, "strip-hex-prefix": 387 }], 384: [function (require, module, exports) { + }, { "bn.js": 372, "strip-hex-prefix": 380 }], 377: [function (require, module, exports) { module.exports = window.crypto; - }, {}], 385: [function (require, module, exports) { + }, {}], 378: [function (require, module, exports) { module.exports = require('crypto'); - }, { "crypto": 384 }], 386: [function (require, module, exports) { + }, { "crypto": 377 }], 379: [function (require, module, exports) { var randomHex = function randomHex(size, callback) { var crypto = require('./crypto.js'); var isCallback = typeof callback === 'function'; @@ -53392,7 +50045,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; module.exports = randomHex; - }, { "./crypto.js": 385 }], 387: [function (require, module, exports) { + }, { "./crypto.js": 378 }], 380: [function (require, module, exports) { var isHexPrefixed = require('is-hex-prefixed'); /** @@ -53407,9 +50060,9 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return isHexPrefixed(str) ? str.slice(2) : str; }; - }, { "is-hex-prefixed": 382 }], 388: [function (require, module, exports) { - arguments[4][170][0].apply(exports, arguments); - }, { "dup": 170 }], 389: [function (require, module, exports) { + }, { "is-hex-prefixed": 375 }], 381: [function (require, module, exports) { + arguments[4][171][0].apply(exports, arguments); + }, { "dup": 171 }], 382: [function (require, module, exports) { (function (global) { /*! https://mths.be/utf8js v2.0.0 by @mathias */ ;(function (root) { @@ -53652,7 +50305,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol } })(this); }).call(this, typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}); - }, {}], 390: [function (require, module, exports) { + }, {}], 383: [function (require, module, exports) { /* This file is part of web3.js. @@ -53958,7 +50611,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol rightPad: utils.rightPad, toTwosComplement: utils.toTwosComplement }; - }, { "./soliditySha3.js": 391, "./utils.js": 392, "ethjs-unit": 381, "randomhex": 386, "underscore": 388 }], 391: [function (require, module, exports) { + }, { "./soliditySha3.js": 384, "./utils.js": 385, "ethjs-unit": 374, "randomhex": 379, "underscore": 381 }], 384: [function (require, module, exports) { /* This file is part of web3.js. @@ -54198,7 +50851,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol }; module.exports = soliditySha3; - }, { "./utils.js": 392, "bn.js": 379, "underscore": 388 }], 392: [function (require, module, exports) { + }, { "./utils.js": 385, "bn.js": 372, "underscore": 381 }], 385: [function (require, module, exports) { /* This file is part of web3.js. @@ -54647,7 +51300,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol toTwosComplement: toTwosComplement, sha3: sha3 }; - }, { "bn.js": 379, "eth-lib/lib/hash": 380, "number-to-bn": 383, "underscore": 388, "utf8": 389 }], 393: [function (require, module, exports) { + }, { "bn.js": 372, "eth-lib/lib/hash": 373, "number-to-bn": 376, "underscore": 381, "utf8": 382 }], 386: [function (require, module, exports) { module.exports = { "name": "web3", "namespace": "ethereum", @@ -54693,8 +51346,8 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol } }; }, {}], "BN": [function (require, module, exports) { - arguments[4][228][0].apply(exports, arguments); - }, { "buffer": 17, "dup": 228 }], "Web3": [function (require, module, exports) { + arguments[4][230][0].apply(exports, arguments); + }, { "buffer": 17, "dup": 230 }], "Web3": [function (require, module, exports) { /* This file is part of web3.js. @@ -54772,6 +51425,6 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol core.addProviders(Web3); module.exports = Web3; - }, { "../package.json": 393, "web3-bzz": 180, "web3-core": 200, "web3-eth": 369, "web3-eth-personal": 366, "web3-net": 370, "web3-shh": 378, "web3-utils": 390 }] }, {}, ["Web3"])("Web3"); + }, { "../package.json": 386, "web3-bzz": 181, "web3-core": 201, "web3-eth": 362, "web3-eth-personal": 359, "web3-net": 363, "web3-shh": 371, "web3-utils": 383 }] }, {}, ["Web3"])("Web3"); }); //# sourceMappingURL=web3.js.map \ No newline at end of file diff --git a/packages/web3/dist/web3.min.js b/packages/web3/dist/web3.min.js new file mode 100644 index 00000000000..389c0057aef --- /dev/null +++ b/packages/web3/dist/web3.min.js @@ -0,0 +1 @@ +"use strict";var _typeof2="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_typeof="function"==typeof Symbol&&"symbol"===_typeof2(Symbol.iterator)?function(t){return void 0===t?"undefined":_typeof2(t)}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":void 0===t?"undefined":_typeof2(t)};!function(t){if("object"===("undefined"==typeof exports?"undefined":_typeof(exports))&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Web3=t()}}(function(){var define,module,exports;return function t(e,r,n){function i(s,a){if(!r[s]){if(!e[s]){var c="function"==typeof require&&require;if(!a&&c)return c(s,!0);if(o)return o(s,!0);var u=new Error("Cannot find module '"+s+"'");throw u.code="MODULE_NOT_FOUND",u}var f=r[s]={exports:{}};e[s][0].call(f.exports,function(t){var r=e[s][1][t];return i(r||t)},f,f.exports,t,e,r,n)}return r[s].exports}for(var o="function"==typeof require&&require,s=0;s>6],i=0==(32&r);if(31==(31&r)){var o=r;for(r=0;128==(128&o);){if(o=t.readUInt8(e),t.isError(o))return o;r<<=7,r|=127&o}}else r&=31;return{cls:n,primitive:i,tag:r,tagStr:a.tag[r]}}function h(t,e,r){var n=t.readUInt8(r);if(t.isError(n))return n;if(!e&&128===n)return null;if(0==(128&n))return n;var i=127&n;if(i>4)return t.error("length octect is too long");n=0;for(var o=0;o=31)return n.error("Multi-octet tag encoding unsupported");e||(i|=32);return i|=a.tagClassByName[r||"universal"]<<6}(t,e,r,this.reporter);if(n.length<128)return(o=new i(2))[0]=s,o[1]=n.length,this._createEncoderBuffer([o,n]);for(var c=1,u=n.length;u>=256;u>>=8)c++;(o=new i(2+c))[0]=s,o[1]=128|c;u=1+c;for(var f=n.length;f>0;u--,f>>=8)o[u]=255&f;return this._createEncoderBuffer([o,n])},u.prototype._encodeStr=function(t,e){if("bitstr"===e)return this._createEncoderBuffer([0|t.unused,t.data]);if("bmpstr"===e){for(var r=new i(2*t.length),n=0;n=40)return this.reporter.error("Second objid identifier OOB");t.splice(0,2,40*t[0]+t[1])}var o=0;for(n=0;n=128;s>>=7)o++}var a=new i(o),c=a.length-1;for(n=t.length-1;n>=0;n--){s=t[n];for(a[c--]=127&s;(s>>=7)>0;)a[c--]=128|127&s}return this._createEncoderBuffer(a)},u.prototype._encodeTime=function(t,e){var r,n=new Date(t);return"gentime"===e?r=[f(n.getFullYear()),f(n.getUTCMonth()+1),f(n.getUTCDate()),f(n.getUTCHours()),f(n.getUTCMinutes()),f(n.getUTCSeconds()),"Z"].join(""):"utctime"===e?r=[f(n.getFullYear()%100),f(n.getUTCMonth()+1),f(n.getUTCDate()),f(n.getUTCHours()),f(n.getUTCMinutes()),f(n.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+e+" time is not supported yet"),this._encodeStr(r,"octstr")},u.prototype._encodeNull=function(){return this._createEncoderBuffer("")},u.prototype._encodeInt=function(t,e){if("string"==typeof t){if(!e)return this.reporter.error("String int or enum given, but no values map");if(!e.hasOwnProperty(t))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(t));t=e[t]}if("number"!=typeof t&&!i.isBuffer(t)){var r=t.toArray();!t.sign&&128&r[0]&&r.unshift(0),t=new i(r)}if(i.isBuffer(t)){var n=t.length;0===t.length&&n++;var o=new i(n);return t.copy(o),0===t.length&&(o[0]=0),this._createEncoderBuffer(o)}if(t<128)return this._createEncoderBuffer(t);if(t<256)return this._createEncoderBuffer([0,t]);n=1;for(var s=t;s>=256;s>>=8)n++;for(s=(o=new Array(n)).length-1;s>=0;s--)o[s]=255&t,t>>=8;return 128&o[0]&&o.unshift(0),this._createEncoderBuffer(new i(o))},u.prototype._encodeBool=function(t){return this._createEncoderBuffer(t?255:0)},u.prototype._use=function(t,e){return"function"==typeof t&&(t=t(e)),t._getEncoder("der").tree},u.prototype._skipDefault=function(t,e,r){var n,i=this._baseState;if(null===i.default)return!1;var o=t.join();if(void 0===i.defaultBuffer&&(i.defaultBuffer=this._encodeValue(i.default,e,r).join()),o.length!==i.defaultBuffer.length)return!1;for(n=0;n0?c-4:c;var f=0;for(e=0;e>16&255,a[f++]=n>>8&255,a[f++]=255&n;2===s?(n=i[t.charCodeAt(e)]<<2|i[t.charCodeAt(e+1)]>>4,a[f++]=255&n):1===s&&(n=i[t.charCodeAt(e)]<<10|i[t.charCodeAt(e+1)]<<4|i[t.charCodeAt(e+2)]>>2,a[f++]=n>>8&255,a[f++]=255&n);return a},r.fromByteArray=function(t){for(var e,r=t.length,i=r%3,o="",s=[],a=0,c=r-i;ac?c:a+16383));1===i?(e=t[r-1],o+=n[e>>2],o+=n[e<<4&63],o+="=="):2===i&&(e=(t[r-2]<<8)+t[r-1],o+=n[e>>10],o+=n[e>>4&63],o+=n[e<<2&63],o+="=");return s.push(o),s.join("")};for(var n=[],i=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,c=s.length;a0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===t[e-2]?2:"="===t[e-1]?1:0}function f(t,e,r){for(var i,o,s=[],a=e;a>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return s.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},{}],16:[function(t,e,r){var n;function i(t){this.rand=t}if(e.exports=function(t){return n||(n=new i(null)),n.generate(t)},e.exports.Rand=i,i.prototype.generate=function(t){return this._rand(t)},i.prototype._rand=function(t){if(this.rand.getBytes)return this.rand.getBytes(t);for(var e=new Uint8Array(t),r=0;r>>24]^f[p>>>16&255]^h[b>>>8&255]^l[255&m]^e[v++],s=u[p>>>24]^f[b>>>16&255]^h[m>>>8&255]^l[255&d]^e[v++],a=u[b>>>24]^f[m>>>16&255]^h[d>>>8&255]^l[255&p]^e[v++],c=u[m>>>24]^f[d>>>16&255]^h[p>>>8&255]^l[255&b]^e[v++],d=o,p=s,b=a,m=c;return o=(n[d>>>24]<<24|n[p>>>16&255]<<16|n[b>>>8&255]<<8|n[255&m])^e[v++],s=(n[p>>>24]<<24|n[b>>>16&255]<<16|n[m>>>8&255]<<8|n[255&d])^e[v++],a=(n[b>>>24]<<24|n[m>>>16&255]<<16|n[d>>>8&255]<<8|n[255&p])^e[v++],c=(n[m>>>24]<<24|n[d>>>16&255]<<16|n[p>>>8&255]<<8|n[255&b])^e[v++],[o>>>=0,s>>>=0,a>>>=0,c>>>=0]}var a=[0,1,2,4,8,16,32,64,128,27,54],c=function(){for(var t=new Array(256),e=0;e<256;e++)t[e]=e<128?e<<1:e<<1^283;for(var r=[],n=[],i=[[],[],[],[]],o=[[],[],[],[]],s=0,a=0,c=0;c<256;++c){var u=a^a<<1^a<<2^a<<3^a<<4;u=u>>>8^255&u^99,r[s]=u,n[u]=s;var f=t[s],h=t[f],l=t[h],d=257*t[u]^16843008*u;i[0][s]=d<<24|d>>>8,i[1][s]=d<<16|d>>>16,i[2][s]=d<<8|d>>>24,i[3][s]=d,d=16843009*l^65537*h^257*f^16843008*s,o[0][u]=d<<24|d>>>8,o[1][u]=d<<16|d>>>16,o[2][u]=d<<8|d>>>24,o[3][u]=d,0===s?s=a=1:(s=f^t[t[t[l^f]]],a^=t[t[a]])}return{SBOX:r,INV_SBOX:n,SUB_MIX:i,INV_SUB_MIX:o}}();function u(t){this._key=i(t),this._reset()}u.blockSize=16,u.keySize=32,u.prototype.blockSize=u.blockSize,u.prototype.keySize=u.keySize,u.prototype._reset=function(){for(var t=this._key,e=t.length,r=e+6,n=4*(r+1),i=[],o=0;o>>24,s=c.SBOX[s>>>24]<<24|c.SBOX[s>>>16&255]<<16|c.SBOX[s>>>8&255]<<8|c.SBOX[255&s],s^=a[o/e|0]<<24):e>6&&o%e==4&&(s=c.SBOX[s>>>24]<<24|c.SBOX[s>>>16&255]<<16|c.SBOX[s>>>8&255]<<8|c.SBOX[255&s]),i[o]=i[o-e]^s}for(var u=[],f=0;f>>24]]^c.INV_SUB_MIX[1][c.SBOX[l>>>16&255]]^c.INV_SUB_MIX[2][c.SBOX[l>>>8&255]]^c.INV_SUB_MIX[3][c.SBOX[255&l]]}this._nRounds=r,this._keySchedule=i,this._invKeySchedule=u},u.prototype.encryptBlockRaw=function(t){return s(t=i(t),this._keySchedule,c.SUB_MIX,c.SBOX,this._nRounds)},u.prototype.encryptBlock=function(t){var e=this.encryptBlockRaw(t),r=n.allocUnsafe(16);return r.writeUInt32BE(e[0],0),r.writeUInt32BE(e[1],4),r.writeUInt32BE(e[2],8),r.writeUInt32BE(e[3],12),r},u.prototype.decryptBlock=function(t){var e=(t=i(t))[1];t[1]=t[3],t[3]=e;var r=s(t,this._invKeySchedule,c.INV_SUB_MIX,c.INV_SBOX,this._nRounds),o=n.allocUnsafe(16);return o.writeUInt32BE(r[0],0),o.writeUInt32BE(r[3],4),o.writeUInt32BE(r[2],8),o.writeUInt32BE(r[1],12),o},u.prototype.scrub=function(){o(this._keySchedule),o(this._invKeySchedule),o(this._key)},e.exports.AES=u},{"safe-buffer":130}],19:[function(t,e,r){var n=t("./aes"),i=t("safe-buffer").Buffer,o=t("cipher-base"),s=t("inherits"),a=t("./ghash"),c=t("buffer-xor"),u=t("./incr32");function f(t,e,r,s){o.call(this);var c=i.alloc(4,0);this._cipher=new n.AES(e);var f=this._cipher.encryptBlock(c);this._ghash=new a(f),r=function(t,e,r){if(12===e.length)return t._finID=i.concat([e,i.from([0,0,0,1])]),i.concat([e,i.from([0,0,0,2])]);var n=new a(r),o=e.length,s=o%16;n.update(e),s&&(s=16-s,n.update(i.alloc(s,0))),n.update(i.alloc(8,0));var c=8*o,f=i.alloc(8);f.writeUIntBE(c,0,8),n.update(f),t._finID=n.state;var h=i.from(t._finID);return u(h),h}(this,r,f),this._prev=i.from(r),this._cache=i.allocUnsafe(0),this._secCache=i.allocUnsafe(0),this._decrypt=s,this._alen=0,this._len=0,this._mode=t,this._authTag=null,this._called=!1}s(f,o),f.prototype._update=function(t){if(!this._called&&this._alen){var e=16-this._alen%16;e<16&&(e=i.alloc(e,0),this._ghash.update(e))}this._called=!0;var r=this._mode.encrypt(this,t);return this._decrypt?this._ghash.update(t):this._ghash.update(r),this._len+=t.length,r},f.prototype._final=function(){if(this._decrypt&&!this._authTag)throw new Error("Unsupported state or unable to authenticate data");var t=c(this._ghash.final(8*this._alen,8*this._len),this._cipher.encryptBlock(this._finID));if(this._decrypt&&function(t,e){var r=0;t.length!==e.length&&r++;for(var n=Math.min(t.length,e.length),i=0;i16)return e=this.cache.slice(0,16),this.cache=this.cache.slice(16),e}else if(this.cache.length>=16)return e=this.cache.slice(0,16),this.cache=this.cache.slice(16),e;return null},h.prototype.flush=function(){if(this.cache.length)return this.cache},r.createDecipher=function(t,e){var r=o[t.toLowerCase()];if(!r)throw new TypeError("invalid suite type");var n=u(e,!1,r.key,r.iv);return l(t,n.key,n.iv)},r.createDecipheriv=l},{"./aes":18,"./authCipher":19,"./modes":31,"./streamCipher":34,"cipher-base":49,evp_bytestokey:85,inherits:102,"safe-buffer":130}],22:[function(t,e,r){var n=t("./modes"),i=t("./authCipher"),o=t("safe-buffer").Buffer,s=t("./streamCipher"),a=t("cipher-base"),c=t("./aes"),u=t("evp_bytestokey");function f(t,e,r){a.call(this),this._cache=new l,this._cipher=new c.AES(e),this._prev=o.from(r),this._mode=t,this._autopadding=!0}t("inherits")(f,a),f.prototype._update=function(t){var e,r;this._cache.add(t);for(var n=[];e=this._cache.get();)r=this._mode.encrypt(this,e),n.push(r);return o.concat(n)};var h=o.alloc(16,16);function l(){this.cache=o.allocUnsafe(0)}function d(t,e,r){var a=n[t.toLowerCase()];if(!a)throw new TypeError("invalid suite type");if("string"==typeof e&&(e=o.from(e)),e.length!==a.key/8)throw new TypeError("invalid key length "+e.length);if("string"==typeof r&&(r=o.from(r)),"GCM"!==a.mode&&r.length!==a.iv)throw new TypeError("invalid iv length "+r.length);return"stream"===a.type?new s(a.module,e,r):"auth"===a.type?new i(a.module,e,r):new f(a.module,e,r)}f.prototype._final=function(){var t=this._cache.flush();if(this._autopadding)return t=this._mode.encrypt(this,t),this._cipher.scrub(),t;if(!t.equals(h))throw this._cipher.scrub(),new Error("data not multiple of block length")},f.prototype.setAutoPadding=function(t){return this._autopadding=!!t,this},l.prototype.add=function(t){this.cache=o.concat([this.cache,t])},l.prototype.get=function(){if(this.cache.length>15){var t=this.cache.slice(0,16);return this.cache=this.cache.slice(16),t}return null},l.prototype.flush=function(){for(var t=16-this.cache.length,e=o.allocUnsafe(t),r=-1;++r>>0,0),e.writeUInt32BE(t[1]>>>0,4),e.writeUInt32BE(t[2]>>>0,8),e.writeUInt32BE(t[3]>>>0,12),e}function s(t){this.h=t,this.state=n.alloc(16,0),this.cache=n.allocUnsafe(0)}s.prototype.ghash=function(t){for(var e=-1;++e0;e--)n[e]=n[e]>>>1|(1&n[e-1])<<31;n[0]=n[0]>>>1,r&&(n[0]=n[0]^225<<24)}this.state=o(i)},s.prototype.update=function(t){var e;for(this.cache=n.concat([this.cache,t]);this.cache.length>=16;)e=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(e)},s.prototype.final=function(t,e){return this.cache.length&&this.ghash(n.concat([this.cache,i],16)),this.ghash(o([0,t,0,e])),this.state},e.exports=s},{"safe-buffer":130}],24:[function(t,e,r){e.exports=function(t){for(var e,r=t.length;r--;){if(255!==(e=t.readUInt8(r))){e++,t.writeUInt8(e,r);break}t.writeUInt8(0,r)}}},{}],25:[function(t,e,r){var n=t("buffer-xor");r.encrypt=function(t,e){var r=n(e,t._prev);return t._prev=t._cipher.encryptBlock(r),t._prev},r.decrypt=function(t,e){var r=t._prev;t._prev=e;var i=t._cipher.decryptBlock(e);return n(i,r)}},{"buffer-xor":47}],26:[function(t,e,r){var n=t("safe-buffer").Buffer,i=t("buffer-xor");function o(t,e,r){var o=e.length,s=i(e,t._cache);return t._cache=t._cache.slice(o),t._prev=n.concat([t._prev,r?e:s]),s}r.encrypt=function(t,e,r){for(var i,s=n.allocUnsafe(0);e.length;){if(0===t._cache.length&&(t._cache=t._cipher.encryptBlock(t._prev),t._prev=n.allocUnsafe(0)),!(t._cache.length<=e.length)){s=n.concat([s,o(t,e,r)]);break}i=t._cache.length,s=n.concat([s,o(t,e.slice(0,i),r)]),e=e.slice(i)}return s}},{"buffer-xor":47,"safe-buffer":130}],27:[function(t,e,r){var n=t("safe-buffer").Buffer;function i(t,e,r){for(var n,i,s,a=-1,c=0;++a<8;)n=t._cipher.encryptBlock(t._prev),i=e&1<<7-a?128:0,c+=(128&(s=n[0]^i))>>a%8,t._prev=o(t._prev,r?i:s);return c}function o(t,e){var r=t.length,i=-1,o=n.allocUnsafe(t.length);for(t=n.concat([t,n.from([e])]);++i>7;return o}r.encrypt=function(t,e,r){for(var o=e.length,s=n.allocUnsafe(o),a=-1;++a=0||!r.umod(t.prime1)||!r.umod(t.prime2);)r=new n(i(e));return r}e.exports=o,o.getr=s}).call(this,t("buffer").Buffer)},{"bn.js":"BN",buffer:48,randombytes:127}],39:[function(t,e,r){e.exports=t("./browser/algorithms.json")},{"./browser/algorithms.json":40}],40:[function(t,e,r){e.exports={sha224WithRSAEncryption:{sign:"rsa",hash:"sha224",id:"302d300d06096086480165030402040500041c"},"RSA-SHA224":{sign:"ecdsa/rsa",hash:"sha224",id:"302d300d06096086480165030402040500041c"},sha256WithRSAEncryption:{sign:"rsa",hash:"sha256",id:"3031300d060960864801650304020105000420"},"RSA-SHA256":{sign:"ecdsa/rsa",hash:"sha256",id:"3031300d060960864801650304020105000420"},sha384WithRSAEncryption:{sign:"rsa",hash:"sha384",id:"3041300d060960864801650304020205000430"},"RSA-SHA384":{sign:"ecdsa/rsa",hash:"sha384",id:"3041300d060960864801650304020205000430"},sha512WithRSAEncryption:{sign:"rsa",hash:"sha512",id:"3051300d060960864801650304020305000440"},"RSA-SHA512":{sign:"ecdsa/rsa",hash:"sha512",id:"3051300d060960864801650304020305000440"},"RSA-SHA1":{sign:"rsa",hash:"sha1",id:"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{sign:"ecdsa",hash:"sha1",id:""},sha256:{sign:"ecdsa",hash:"sha256",id:""},sha224:{sign:"ecdsa",hash:"sha224",id:""},sha384:{sign:"ecdsa",hash:"sha384",id:""},sha512:{sign:"ecdsa",hash:"sha512",id:""},"DSA-SHA":{sign:"dsa",hash:"sha1",id:""},"DSA-SHA1":{sign:"dsa",hash:"sha1",id:""},DSA:{sign:"dsa",hash:"sha1",id:""},"DSA-WITH-SHA224":{sign:"dsa",hash:"sha224",id:""},"DSA-SHA224":{sign:"dsa",hash:"sha224",id:""},"DSA-WITH-SHA256":{sign:"dsa",hash:"sha256",id:""},"DSA-SHA256":{sign:"dsa",hash:"sha256",id:""},"DSA-WITH-SHA384":{sign:"dsa",hash:"sha384",id:""},"DSA-SHA384":{sign:"dsa",hash:"sha384",id:""},"DSA-WITH-SHA512":{sign:"dsa",hash:"sha512",id:""},"DSA-SHA512":{sign:"dsa",hash:"sha512",id:""},"DSA-RIPEMD160":{sign:"dsa",hash:"rmd160",id:""},ripemd160WithRSA:{sign:"rsa",hash:"rmd160",id:"3021300906052b2403020105000414"},"RSA-RIPEMD160":{sign:"rsa",hash:"rmd160",id:"3021300906052b2403020105000414"},md5WithRSAEncryption:{sign:"rsa",hash:"md5",id:"3020300c06082a864886f70d020505000410"},"RSA-MD5":{sign:"rsa",hash:"md5",id:"3020300c06082a864886f70d020505000410"}}},{}],41:[function(t,e,r){e.exports={"1.3.132.0.10":"secp256k1","1.3.132.0.33":"p224","1.2.840.10045.3.1.1":"p192","1.2.840.10045.3.1.7":"p256","1.3.132.0.34":"p384","1.3.132.0.35":"p521"}},{}],42:[function(t,e,r){(function(r){var n=t("create-hash"),i=t("stream"),o=t("inherits"),s=t("./sign"),a=t("./verify"),c=t("./algorithms.json");function u(t){i.Writable.call(this);var e=c[t];if(!e)throw new Error("Unknown message digest");this._hashType=e.hash,this._hash=n(e.hash),this._tag=e.id,this._signType=e.sign}function f(t){i.Writable.call(this);var e=c[t];if(!e)throw new Error("Unknown message digest");this._hash=n(e.hash),this._tag=e.id,this._signType=e.sign}function h(t){return new u(t)}function l(t){return new f(t)}Object.keys(c).forEach(function(t){c[t].id=new r(c[t].id,"hex"),c[t.toLowerCase()]=c[t]}),o(u,i.Writable),u.prototype._write=function(t,e,r){this._hash.update(t),r()},u.prototype.update=function(t,e){return"string"==typeof t&&(t=new r(t,e)),this._hash.update(t),this},u.prototype.sign=function(t,e){this.end();var r=this._hash.digest(),n=s(r,t,this._hashType,this._signType,this._tag);return e?n.toString(e):n},o(f,i.Writable),f.prototype._write=function(t,e,r){this._hash.update(t),r()},f.prototype.update=function(t,e){return"string"==typeof t&&(t=new r(t,e)),this._hash.update(t),this},f.prototype.verify=function(t,e,n){"string"==typeof e&&(e=new r(e,n)),this.end();var i=this._hash.digest();return a(e,i,t,this._signType,this._tag)},e.exports={Sign:h,Verify:l,createSign:h,createVerify:l}}).call(this,t("buffer").Buffer)},{"./algorithms.json":40,"./sign":43,"./verify":44,buffer:48,"create-hash":52,inherits:102,stream:139}],43:[function(t,e,r){(function(r){var n=t("create-hmac"),i=t("browserify-rsa"),o=t("elliptic").ec,s=t("bn.js"),a=t("parse-asn1"),c=t("./curves.json");function u(t,e,i,o){if((t=new r(t.toArray())).length0&&r.ishrn(n),r}function h(t,e,i){var o,s;do{for(o=new r(0);8*o.length=e)throw new Error("invalid sig")}e.exports=function(t,e,c,u,f){var h=o(c);if("ec"===h.type){if("ecdsa"!==u&&"ecdsa/rsa"!==u)throw new Error("wrong public key type");return function(t,e,r){var n=s[r.data.algorithm.curve.join(".")];if(!n)throw new Error("unknown curve "+r.data.algorithm.curve.join("."));var o=new i(n),a=r.data.subjectPrivateKey.data;return o.verify(e,t,a)}(t,e,h)}if("dsa"===h.type){if("dsa"!==u)throw new Error("wrong public key type");return function(t,e,r){var i=r.data.p,s=r.data.q,c=r.data.g,u=r.data.pub_key,f=o.signature.decode(t,"der"),h=f.s,l=f.r;a(h,s),a(l,s);var d=n.mont(i),p=h.invm(s);return 0===c.toRed(d).redPow(new n(e).mul(p).mod(s)).fromRed().mul(u.toRed(d).redPow(l.mul(p).mod(s)).fromRed()).mod(i).mod(s).cmp(l)}(t,e,h)}if("rsa"!==u&&"ecdsa/rsa"!==u)throw new Error("wrong public key type");e=r.concat([f,e]);for(var l=h.modulus.byteLength(),d=[1],p=0;e.length+d.length+2>5==6?2:t>>4==14?3:t>>3==30?4:-1}function a(t){var e=this.lastTotal-this.lastNeed,r=function(t,e,r){if(128!=(192&e[0]))return t.lastNeed=0,"�".repeat(r);if(t.lastNeed>1&&e.length>1){if(128!=(192&e[1]))return t.lastNeed=1,"�".repeat(r+1);if(t.lastNeed>2&&e.length>2&&128!=(192&e[2]))return t.lastNeed=2,"�".repeat(r+2)}}(this,t,e);return void 0!==r?r:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),void(this.lastNeed-=t.length))}function c(t,e){if((t.length-e)%2==0){var r=t.toString("utf16le",e);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function u(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function f(t,e){var r=(t.length-e)%3;return 0===r?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function h(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function l(t){return t.toString(this.encoding)}function d(t){return t&&t.length?this.write(t):""}r.StringDecoder=o,o.prototype.write=function(t){if(0===t.length)return"";var e,r;if(this.lastNeed){if(void 0===(e=this.fillLast(t)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r=0)return i>0&&(t.lastNeed=i-1),i;if(--n=0)return i>0&&(t.lastNeed=i-2),i;if(--n=0)return i>0&&(2===i?i=0:t.lastNeed=i-3),i;return 0}(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var n=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,n),t.toString("utf8",e,n)},o.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length}},{"safe-buffer":130}],47:[function(t,e,r){(function(t){e.exports=function(e,r){for(var n=Math.min(e.length,r.length),i=new t(n),o=0;oo)throw new RangeError("Invalid typed array length");var e=new Uint8Array(t);return e.__proto__=a.prototype,e}function a(t,e,r){if("number"==typeof t){if("string"==typeof e)throw new Error("If encoding is specified then the first argument must be a string");return f(t)}return c(t,e,r)}function c(t,e,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return O(t)?function(t,e,r){if(e<0||t.byteLength=o)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o.toString(16)+" bytes");return 0|t}function d(t,e){if(a.isBuffer(t))return t.length;if(N(t)||O(t))return t.byteLength;"string"!=typeof t&&(t=""+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return B(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return F(t).length;default:if(n)return B(t).length;e=(""+e).toLowerCase(),n=!0}}function p(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function b(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),L(r=+r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=a.from(e,n)),a.isBuffer(e))return 0===e.length?-1:m(t,e,r,n,i);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):m(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function m(t,e,r,n,i){var o,s=1,a=t.length,c=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;s=2,a/=2,c/=2,r/=2}function u(t,e){return 1===s?t[e]:t.readUInt16BE(e*s)}if(i){var f=-1;for(o=r;oa&&(r=a-c),o=r;o>=0;o--){for(var h=!0,l=0;li&&(n=i):n=i;var o=e.length;if(o%2!=0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var s=0;s239?4:u>223?3:u>191?2:1;if(i+h<=r)switch(h){case 1:u<128&&(f=u);break;case 2:128==(192&(o=t[i+1]))&&(c=(31&u)<<6|63&o)>127&&(f=c);break;case 3:o=t[i+1],s=t[i+2],128==(192&o)&&128==(192&s)&&(c=(15&u)<<12|(63&o)<<6|63&s)>2047&&(c<55296||c>57343)&&(f=c);break;case 4:o=t[i+1],s=t[i+2],a=t[i+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&(c=(15&u)<<18|(63&o)<<12|(63&s)<<6|63&a)>65535&&c<1114112&&(f=c)}null===f?(f=65533,h=1):f>65535&&(f-=65536,n.push(f>>>10&1023|55296),f=56320|1023&f),n.push(f),i+=h}return function(t){var e=t.length;if(e<=w)return String.fromCharCode.apply(String,t);var r="",n=0;for(;nthis.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return E(this,e,r);case"utf8":case"utf-8":return _(this,e,r);case"ascii":return k(this,e,r);case"latin1":case"binary":return x(this,e,r);case"base64":return g(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}.apply(this,arguments)},a.prototype.equals=function(t){if(!a.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===a.compare(this,t)},a.prototype.inspect=function(){var t="",e=r.INSPECT_MAX_BYTES;return this.length>0&&(t=this.toString("hex",0,e).match(/.{2}/g).join(" "),this.length>e&&(t+=" ... ")),""},a.prototype.compare=function(t,e,r,n,i){if(!a.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(e>>>=0,r>>>=0,n>>>=0,i>>>=0,this===t)return 0;for(var o=i-n,s=r-e,c=Math.min(o,s),u=this.slice(n,i),f=t.slice(e,r),h=0;h>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var i=this.length-e;if((void 0===r||r>i)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o,s,a,c,u,f,h,l,d,p=!1;;)switch(n){case"hex":return v(this,t,e,r);case"utf8":case"utf-8":return l=e,d=r,R(B(t,(h=this).length-l),h,l,d);case"ascii":return y(this,t,e,r);case"latin1":case"binary":return y(this,t,e,r);case"base64":return c=this,u=e,f=r,R(F(t),c,u,f);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return s=e,a=r,R(function(t,e){for(var r,n,i,o=[],s=0;s>8,i=r%256,o.push(i),o.push(n);return o}(t,(o=this).length-s),o,s,a);default:if(p)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),p=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var w=4096;function k(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;in)&&(r=n);for(var i="",o=e;or)throw new RangeError("Trying to access beyond buffer length")}function j(t,e,r,n,i,o){if(!a.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function A(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function C(t,e,r,n,o){return e=+e,r>>>=0,o||A(t,0,r,4),i.write(t,e,r,n,23,4),r+4}function T(t,e,r,n,o){return e=+e,r>>>=0,o||A(t,0,r,8),i.write(t,e,r,n,52,8),r+8}a.prototype.slice=function(t,e){var r=this.length;t=~~t,e=void 0===e?r:~~e,t<0?(t+=r)<0&&(t=0):t>r&&(t=r),e<0?(e+=r)<0&&(e=0):e>r&&(e=r),e>>=0,e>>>=0,r||M(t,e,this.length);for(var n=this[t],i=1,o=0;++o>>=0,e>>>=0,r||M(t,e,this.length);for(var n=this[t+--e],i=1;e>0&&(i*=256);)n+=this[t+--e]*i;return n},a.prototype.readUInt8=function(t,e){return t>>>=0,e||M(t,1,this.length),this[t]},a.prototype.readUInt16LE=function(t,e){return t>>>=0,e||M(t,2,this.length),this[t]|this[t+1]<<8},a.prototype.readUInt16BE=function(t,e){return t>>>=0,e||M(t,2,this.length),this[t]<<8|this[t+1]},a.prototype.readUInt32LE=function(t,e){return t>>>=0,e||M(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},a.prototype.readUInt32BE=function(t,e){return t>>>=0,e||M(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},a.prototype.readIntLE=function(t,e,r){t>>>=0,e>>>=0,r||M(t,e,this.length);for(var n=this[t],i=1,o=0;++o=(i*=128)&&(n-=Math.pow(2,8*e)),n},a.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||M(t,e,this.length);for(var n=e,i=1,o=this[t+--n];n>0&&(i*=256);)o+=this[t+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*e)),o},a.prototype.readInt8=function(t,e){return t>>>=0,e||M(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},a.prototype.readInt16LE=function(t,e){t>>>=0,e||M(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt16BE=function(t,e){t>>>=0,e||M(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt32LE=function(t,e){return t>>>=0,e||M(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},a.prototype.readInt32BE=function(t,e){return t>>>=0,e||M(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},a.prototype.readFloatLE=function(t,e){return t>>>=0,e||M(t,4,this.length),i.read(this,t,!0,23,4)},a.prototype.readFloatBE=function(t,e){return t>>>=0,e||M(t,4,this.length),i.read(this,t,!1,23,4)},a.prototype.readDoubleLE=function(t,e){return t>>>=0,e||M(t,8,this.length),i.read(this,t,!0,52,8)},a.prototype.readDoubleBE=function(t,e){return t>>>=0,e||M(t,8,this.length),i.read(this,t,!1,52,8)},a.prototype.writeUIntLE=function(t,e,r,n){(t=+t,e>>>=0,r>>>=0,n)||j(this,t,e,r,Math.pow(2,8*r)-1,0);var i=1,o=0;for(this[e]=255&t;++o>>=0,r>>>=0,n)||j(this,t,e,r,Math.pow(2,8*r)-1,0);var i=r-1,o=1;for(this[e+i]=255&t;--i>=0&&(o*=256);)this[e+i]=t/o&255;return e+r},a.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||j(this,t,e,1,255,0),this[e]=255&t,e+1},a.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||j(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},a.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||j(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},a.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||j(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},a.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||j(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},a.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);j(this,t,e,r,i-1,-i)}var o=0,s=1,a=0;for(this[e]=255&t;++o>0)-a&255;return e+r},a.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);j(this,t,e,r,i-1,-i)}var o=r-1,s=1,a=0;for(this[e+o]=255&t;--o>=0&&(s*=256);)t<0&&0===a&&0!==this[e+o+1]&&(a=1),this[e+o]=(t/s>>0)-a&255;return e+r},a.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||j(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},a.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||j(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},a.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||j(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},a.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||j(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},a.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||j(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},a.prototype.writeFloatLE=function(t,e,r){return C(this,t,e,!0,r)},a.prototype.writeFloatBE=function(t,e,r){return C(this,t,e,!1,r)},a.prototype.writeDoubleLE=function(t,e,r){return T(this,t,e,!0,r)},a.prototype.writeDoubleBE=function(t,e,r){return T(this,t,e,!1,r)},a.prototype.copy=function(t,e,r,n){if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e=0;--i)t[i+e]=this[i+r];else if(o<1e3)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(o=e;o55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function F(t){return n.toByteArray(function(t){if((t=t.trim().replace(P,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function R(t,e,r,n){for(var i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function O(t){return t instanceof ArrayBuffer||null!=t&&null!=t.constructor&&"ArrayBuffer"===t.constructor.name&&"number"==typeof t.byteLength}function N(t){return"function"==typeof ArrayBuffer.isView&&ArrayBuffer.isView(t)}function L(t){return t!=t}},{"base64-js":15,ieee754:100}],49:[function(t,e,r){var n=t("safe-buffer").Buffer,i=t("stream").Transform,o=t("string_decoder").StringDecoder;function s(t){i.call(this),this.hashMode="string"==typeof t,this.hashMode?this[t]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}t("inherits")(s,i),s.prototype.update=function(t,e,r){"string"==typeof t&&(t=n.from(t,e));var i=this._update(t);return this.hashMode?this:(r&&(i=this._toString(i,r)),i)},s.prototype.setAutoPadding=function(){},s.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},s.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},s.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},s.prototype._transform=function(t,e,r){var n;try{this.hashMode?this._update(t):this.push(this._update(t))}catch(t){n=t}finally{r(n)}},s.prototype._flush=function(t){var e;try{this.push(this.__final())}catch(t){e=t}t(e)},s.prototype._finalOrDigest=function(t){var e=this.__final()||n.alloc(0);return t&&(e=this._toString(e,t,!0)),e},s.prototype._toString=function(t,e,r){if(this._decoder||(this._decoder=new o(e),this._encoding=e),this._encoding!==e)throw new Error("can't switch encodings");var n=this._decoder.write(t);return r&&(n+=this._decoder.end()),n},e.exports=s},{inherits:102,"safe-buffer":130,stream:139,string_decoder:46}],50:[function(t,e,r){(function(t){function e(t){return Object.prototype.toString.call(t)}r.isArray=function(t){return Array.isArray?Array.isArray(t):"[object Array]"===e(t)},r.isBoolean=function(t){return"boolean"==typeof t},r.isNull=function(t){return null===t},r.isNullOrUndefined=function(t){return null==t},r.isNumber=function(t){return"number"==typeof t},r.isString=function(t){return"string"==typeof t},r.isSymbol=function(t){return"symbol"===(void 0===t?"undefined":_typeof(t))},r.isUndefined=function(t){return void 0===t},r.isRegExp=function(t){return"[object RegExp]"===e(t)},r.isObject=function(t){return"object"===(void 0===t?"undefined":_typeof(t))&&null!==t},r.isDate=function(t){return"[object Date]"===e(t)},r.isError=function(t){return"[object Error]"===e(t)||t instanceof Error},r.isFunction=function(t){return"function"==typeof t},r.isPrimitive=function(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"===(void 0===t?"undefined":_typeof(t))||void 0===t},r.isBuffer=t.isBuffer}).call(this,{isBuffer:t("../../is-buffer/index.js")})},{"../../is-buffer/index.js":103}],51:[function(t,e,r){(function(r){var n=t("elliptic"),i=t("bn.js");e.exports=function(t){return new s(t)};var o={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};function s(t){this.curveType=o[t],this.curveType||(this.curveType={name:t}),this.curve=new n.ec(this.curveType.name),this.keys=void 0}function a(t,e,n){Array.isArray(t)||(t=t.toArray());var i=new r(t);if(n&&i.length>>2),s=0,a=0;s>5]|=128<>>9<<4)]=e;for(var r=1732584193,n=-271733879,i=-1732584194,o=271733878,h=0;h>>32-a,r);var s,a}function s(t,e,r,n,i,s,a){return o(e&r|~e&n,t,e,i,s,a)}function a(t,e,r,n,i,s,a){return o(e&n|r&~n,t,e,i,s,a)}function c(t,e,r,n,i,s,a){return o(e^r^n,t,e,i,s,a)}function u(t,e,r,n,i,s,a){return o(r^(e|~n),t,e,i,s,a)}function f(t,e){var r=(65535&t)+(65535&e);return(t>>16)+(e>>16)+(r>>16)<<16|65535&r}e.exports=function(t){return n(t,i)}},{"./make-hash":53}],55:[function(t,e,r){var n=t("inherits"),i=t("./legacy"),o=t("cipher-base"),s=t("safe-buffer").Buffer,a=t("create-hash/md5"),c=t("ripemd160"),u=t("sha.js"),f=s.alloc(128);function h(t,e){o.call(this,"digest"),"string"==typeof e&&(e=s.from(e));var r="sha512"===t||"sha384"===t?128:64;(this._alg=t,this._key=e,e.length>r)?e=("rmd160"===t?new c:u(t)).update(e).digest():e.lengtha?e=t(e):e.length0;n--)e+=this._buffer(t,e),r+=this._flushBuffer(i,r);return e+=this._buffer(t,e),i},i.prototype.final=function(t){var e,r;return t&&(e=this.update(t)),r="encrypt"===this.type?this._finalEncrypt():this._finalDecrypt(),e?e.concat(r):r},i.prototype._pad=function(t,e){if(0===e)return!1;for(;e>>1];r=s.r28shl(r,a),i=s.r28shl(i,a),s.pc2(r,i,t.keys,o)}},c.prototype._update=function(t,e,r,n){var i=this._desState,o=s.readUInt32BE(t,e),a=s.readUInt32BE(t,e+4);s.ip(o,a,i.tmp,0),o=i.tmp[0],a=i.tmp[1],"encrypt"===this.type?this._encrypt(i,o,a,i.tmp,0):this._decrypt(i,o,a,i.tmp,0),o=i.tmp[0],a=i.tmp[1],s.writeUInt32BE(r,o,n),s.writeUInt32BE(r,a,n+4)},c.prototype._pad=function(t,e){for(var r=t.length-e,n=e;n>>0,o=l}s.rip(a,o,n,i)},c.prototype._decrypt=function(t,e,r,n,i){for(var o=r,a=e,c=t.keys.length-2;c>=0;c-=2){var u=t.keys[c],f=t.keys[c+1];s.expand(o,t.tmp,0),u^=t.tmp[0],f^=t.tmp[1];var h=s.substitute(u,f),l=o;o=(a^s.permute(h))>>>0,a=l}s.rip(o,a,n,i)}},{"../des":58,inherits:102,"minimalistic-assert":107}],62:[function(t,e,r){var n=t("minimalistic-assert"),i=t("inherits"),o=t("../des"),s=o.Cipher,a=o.DES;function c(t){s.call(this,t);var e=new function(t,e){n.equal(e.length,24,"Invalid key length");var r=e.slice(0,8),i=e.slice(8,16),o=e.slice(16,24);this.ciphers="encrypt"===t?[a.create({type:"encrypt",key:r}),a.create({type:"decrypt",key:i}),a.create({type:"encrypt",key:o})]:[a.create({type:"decrypt",key:o}),a.create({type:"encrypt",key:i}),a.create({type:"decrypt",key:r})]}(this.type,this.options.key);this._edeState=e}i(c,s),e.exports=c,c.create=function(t){return new c(t)},c.prototype._update=function(t,e,r,n){var i=this._edeState;i.ciphers[0]._update(t,e,r,n),i.ciphers[1]._update(r,n,r,n),i.ciphers[2]._update(r,n,r,n)},c.prototype._pad=a.prototype._pad,c.prototype._unpad=a.prototype._unpad},{"../des":58,inherits:102,"minimalistic-assert":107}],63:[function(t,e,r){r.readUInt32BE=function(t,e){return(t[0+e]<<24|t[1+e]<<16|t[2+e]<<8|t[3+e])>>>0},r.writeUInt32BE=function(t,e,r){t[0+r]=e>>>24,t[1+r]=e>>>16&255,t[2+r]=e>>>8&255,t[3+r]=255&e},r.ip=function(t,e,r,n){for(var i=0,o=0,s=6;s>=0;s-=2){for(var a=0;a<=24;a+=8)i<<=1,i|=e>>>a+s&1;for(a=0;a<=24;a+=8)i<<=1,i|=t>>>a+s&1}for(s=6;s>=0;s-=2){for(a=1;a<=25;a+=8)o<<=1,o|=e>>>a+s&1;for(a=1;a<=25;a+=8)o<<=1,o|=t>>>a+s&1}r[n+0]=i>>>0,r[n+1]=o>>>0},r.rip=function(t,e,r,n){for(var i=0,o=0,s=0;s<4;s++)for(var a=24;a>=0;a-=8)i<<=1,i|=e>>>a+s&1,i<<=1,i|=t>>>a+s&1;for(s=4;s<8;s++)for(a=24;a>=0;a-=8)o<<=1,o|=e>>>a+s&1,o<<=1,o|=t>>>a+s&1;r[n+0]=i>>>0,r[n+1]=o>>>0},r.pc1=function(t,e,r,n){for(var i=0,o=0,s=7;s>=5;s--){for(var a=0;a<=24;a+=8)i<<=1,i|=e>>a+s&1;for(a=0;a<=24;a+=8)i<<=1,i|=t>>a+s&1}for(a=0;a<=24;a+=8)i<<=1,i|=e>>a+s&1;for(s=1;s<=3;s++){for(a=0;a<=24;a+=8)o<<=1,o|=e>>a+s&1;for(a=0;a<=24;a+=8)o<<=1,o|=t>>a+s&1}for(a=0;a<=24;a+=8)o<<=1,o|=t>>a+s&1;r[n+0]=i>>>0,r[n+1]=o>>>0},r.r28shl=function(t,e){return t<>>28-e};var n=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];r.pc2=function(t,e,r,i){for(var o=0,s=0,a=n.length>>>1,c=0;c>>n[c]&1;for(c=a;c>>n[c]&1;r[i+0]=o>>>0,r[i+1]=s>>>0},r.expand=function(t,e,r){var n=0,i=0;n=(1&t)<<5|t>>>27;for(var o=23;o>=15;o-=4)n<<=6,n|=t>>>o&63;for(o=11;o>=3;o-=4)i|=t>>>o&63,i<<=6;i|=(31&t)<<1|t>>>31,e[r+0]=n>>>0,e[r+1]=i>>>0};var i=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];r.substitute=function(t,e){for(var r=0,n=0;n<4;n++){r<<=4,r|=i[64*n+(t>>>18-6*n&63)]}for(n=0;n<4;n++){r<<=4,r|=i[256+64*n+(e>>>18-6*n&63)]}return r>>>0};var o=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];r.permute=function(t){for(var e=0,r=0;r>>o[r]&1;return e>>>0},r.padSplit=function(t,e,r){for(var n=t.toString(2);n.lengtht;)r.ishrn(1);if(r.isEven()&&r.iadd(a),r.testn(1)||r.iadd(c),e.cmp(c)){if(!e.cmp(u))for(;r.mod(f).cmp(h);)r.iadd(d)}else for(;r.mod(o).cmp(l);)r.iadd(d);if(b(p=r.shrn(1))&&b(r)&&m(p)&&m(r)&&s.test(p)&&s.test(r))return r}}},{"bn.js":"BN","miller-rabin":106,randombytes:127}],67:[function(t,e,r){e.exports={modp1:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},modp2:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},modp5:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},modp14:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},modp15:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},modp16:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},modp17:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},modp18:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}},{}],68:[function(t,e,r){var n=r;n.version=t("../package.json").version,n.utils=t("./elliptic/utils"),n.rand=t("brorand"),n.curve=t("./elliptic/curve"),n.curves=t("./elliptic/curves"),n.ec=t("./elliptic/ec"),n.eddsa=t("./elliptic/eddsa")},{"../package.json":83,"./elliptic/curve":71,"./elliptic/curves":74,"./elliptic/ec":75,"./elliptic/eddsa":78,"./elliptic/utils":82,brorand:16}],69:[function(t,e,r){var n=t("bn.js"),i=t("../../elliptic").utils,o=i.getNAF,s=i.getJSF,a=i.assert;function c(t,e){this.type=t,this.p=new n(e.p,16),this.red=e.prime?n.red(e.prime):n.mont(this.p),this.zero=new n(0).toRed(this.red),this.one=new n(1).toRed(this.red),this.two=new n(2).toRed(this.red),this.n=e.n&&new n(e.n,16),this.g=e.g&&this.pointFromJSON(e.g,e.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4);var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function u(t,e){this.curve=t,this.type=e,this.precomputed=null}e.exports=c,c.prototype.point=function(){throw new Error("Not implemented")},c.prototype.validate=function(){throw new Error("Not implemented")},c.prototype._fixedNafMul=function(t,e){a(t.precomputed);var r=t._getDoubles(),n=o(e,1),i=(1<=c;e--)u=(u<<1)+n[e];s.push(u)}for(var f=this.jpoint(null,null,null),h=this.jpoint(null,null,null),l=i;l>0;l--){for(c=0;c=0;u--){for(e=0;u>=0&&0===s[u];u--)e++;if(u>=0&&e++,c=c.dblp(e),u<0)break;var f=s[u];a(0!==f),c="affine"===t.type?f>0?c.mixedAdd(i[f-1>>1]):c.mixedAdd(i[-f-1>>1].neg()):f>0?c.add(i[f-1>>1]):c.add(i[-f-1>>1].neg())}return"affine"===t.type?c.toP():c},c.prototype._wnafMulAdd=function(t,e,r,n,i){for(var a=this._wnafT1,c=this._wnafT2,u=this._wnafT3,f=0,h=0;h=1;h-=2){var d=h-1,p=h;if(1===a[d]&&1===a[p]){var b=[e[d],null,null,e[p]];0===e[d].y.cmp(e[p].y)?(b[1]=e[d].add(e[p]),b[2]=e[d].toJ().mixedAdd(e[p].neg())):0===e[d].y.cmp(e[p].y.redNeg())?(b[1]=e[d].toJ().mixedAdd(e[p]),b[2]=e[d].add(e[p].neg())):(b[1]=e[d].toJ().mixedAdd(e[p]),b[2]=e[d].toJ().mixedAdd(e[p].neg()));var m=[-3,-1,-5,-7,0,7,5,1,3],v=s(r[d],r[p]);f=Math.max(v[0].length,f),u[d]=new Array(f),u[p]=new Array(f);for(var y=0;y=0;h--){for(var x=0;h>=0;){var E=!0;for(y=0;y=0&&x++,w=w.dblp(x),h<0)break;for(y=0;y0?S=c[y][M-1>>1]:M<0&&(S=c[y][-M-1>>1].neg()),w="affine"===S.type?w.mixedAdd(S):w.add(S))}}for(h=0;h=Math.ceil((t.bitLength()+1)/e.step)},u.prototype._getDoubles=function(t,e){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,i=0;i":""},f.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&0===this.y.cmp(this.z)},f.prototype._extDbl=function(){var t=this.x.redSqr(),e=this.y.redSqr(),r=this.z.redSqr();r=r.redIAdd(r);var n=this.curve._mulA(t),i=this.x.redAdd(this.y).redSqr().redISub(t).redISub(e),o=n.redAdd(e),s=o.redSub(r),a=n.redSub(e),c=i.redMul(s),u=o.redMul(a),f=i.redMul(a),h=s.redMul(o);return this.curve.point(c,u,h,f)},f.prototype._projDbl=function(){var t,e,r,n=this.x.redAdd(this.y).redSqr(),i=this.x.redSqr(),o=this.y.redSqr();if(this.curve.twisted){var s=(u=this.curve._mulA(i)).redAdd(o);if(this.zOne)t=n.redSub(i).redSub(o).redMul(s.redSub(this.curve.two)),e=s.redMul(u.redSub(o)),r=s.redSqr().redSub(s).redSub(s);else{var a=this.z.redSqr(),c=s.redSub(a).redISub(a);t=n.redSub(i).redISub(o).redMul(c),e=s.redMul(u.redSub(o)),r=s.redMul(c)}}else{var u=i.redAdd(o);a=this.curve._mulC(this.c.redMul(this.z)).redSqr(),c=u.redSub(a).redSub(a);t=this.curve._mulC(n.redISub(u)).redMul(c),e=this.curve._mulC(u).redMul(i.redISub(o)),r=u.redMul(c)}return this.curve.point(t,e,r)},f.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},f.prototype._extAdd=function(t){var e=this.y.redSub(this.x).redMul(t.y.redSub(t.x)),r=this.y.redAdd(this.x).redMul(t.y.redAdd(t.x)),n=this.t.redMul(this.curve.dd).redMul(t.t),i=this.z.redMul(t.z.redAdd(t.z)),o=r.redSub(e),s=i.redSub(n),a=i.redAdd(n),c=r.redAdd(e),u=o.redMul(s),f=a.redMul(c),h=o.redMul(c),l=s.redMul(a);return this.curve.point(u,f,l,h)},f.prototype._projAdd=function(t){var e,r,n=this.z.redMul(t.z),i=n.redSqr(),o=this.x.redMul(t.x),s=this.y.redMul(t.y),a=this.curve.d.redMul(o).redMul(s),c=i.redSub(a),u=i.redAdd(a),f=this.x.redAdd(this.y).redMul(t.x.redAdd(t.y)).redISub(o).redISub(s),h=n.redMul(c).redMul(f);return this.curve.twisted?(e=n.redMul(u).redMul(s.redSub(this.curve._mulA(o))),r=c.redMul(u)):(e=n.redMul(u).redMul(s.redSub(o)),r=this.curve._mulC(c).redMul(u)),this.curve.point(h,e,r)},f.prototype.add=function(t){return this.isInfinity()?t:t.isInfinity()?this:this.curve.extended?this._extAdd(t):this._projAdd(t)},f.prototype.mul=function(t){return this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve._wnafMul(this,t)},f.prototype.mulAdd=function(t,e,r){return this.curve._wnafMulAdd(1,[this,e],[t,r],2,!1)},f.prototype.jmulAdd=function(t,e,r){return this.curve._wnafMulAdd(1,[this,e],[t,r],2,!0)},f.prototype.normalize=function(){if(this.zOne)return this;var t=this.z.redInvm();return this.x=this.x.redMul(t),this.y=this.y.redMul(t),this.t&&(this.t=this.t.redMul(t)),this.z=this.curve.one,this.zOne=!0,this},f.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},f.prototype.getX=function(){return this.normalize(),this.x.fromRed()},f.prototype.getY=function(){return this.normalize(),this.y.fromRed()},f.prototype.eq=function(t){return this===t||0===this.getX().cmp(t.getX())&&0===this.getY().cmp(t.getY())},f.prototype.eqXToP=function(t){var e=t.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(e))return!0;for(var r=t.clone(),n=this.curve.redN.redMul(this.z);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(e.redIAdd(n),0===this.x.cmp(e))return!0}return!1},f.prototype.toP=f.prototype.normalize,f.prototype.mixedAdd=f.prototype.add},{"../../elliptic":68,"../curve":71,"bn.js":"BN",inherits:102}],71:[function(t,e,r){var n=r;n.base=t("./base"),n.short=t("./short"),n.mont=t("./mont"),n.edwards=t("./edwards")},{"./base":69,"./edwards":70,"./mont":72,"./short":73}],72:[function(t,e,r){var n=t("../curve"),i=t("bn.js"),o=t("inherits"),s=n.base,a=t("../../elliptic").utils;function c(t){s.call(this,"mont",t),this.a=new i(t.a,16).toRed(this.red),this.b=new i(t.b,16).toRed(this.red),this.i4=new i(4).toRed(this.red).redInvm(),this.two=new i(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function u(t,e,r){s.BasePoint.call(this,t,"projective"),null===e&&null===r?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new i(e,16),this.z=new i(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}o(c,s),e.exports=c,c.prototype.validate=function(t){var e=t.normalize().x,r=e.redSqr(),n=r.redMul(e).redAdd(r.redMul(this.a)).redAdd(e);return 0===n.redSqrt().redSqr().cmp(n)},o(u,s.BasePoint),c.prototype.decodePoint=function(t,e){return this.point(a.toArray(t,e),1)},c.prototype.point=function(t,e){return new u(this,t,e)},c.prototype.pointFromJSON=function(t){return u.fromJSON(this,t)},u.prototype.precompute=function(){},u.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},u.fromJSON=function(t,e){return new u(t,e[0],e[1]||t.one)},u.prototype.inspect=function(){return this.isInfinity()?"":""},u.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},u.prototype.dbl=function(){var t=this.x.redAdd(this.z).redSqr(),e=this.x.redSub(this.z).redSqr(),r=t.redSub(e),n=t.redMul(e),i=r.redMul(e.redAdd(this.curve.a24.redMul(r)));return this.curve.point(n,i)},u.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.diffAdd=function(t,e){var r=this.x.redAdd(this.z),n=this.x.redSub(this.z),i=t.x.redAdd(t.z),o=t.x.redSub(t.z).redMul(r),s=i.redMul(n),a=e.z.redMul(o.redAdd(s).redSqr()),c=e.x.redMul(o.redISub(s).redSqr());return this.curve.point(a,c)},u.prototype.mul=function(t){for(var e=t.clone(),r=this,n=this.curve.point(null,null),i=[];0!==e.cmpn(0);e.iushrn(1))i.push(e.andln(1));for(var o=i.length-1;o>=0;o--)0===i[o]?(r=r.diffAdd(n,this),n=n.dbl()):(n=r.diffAdd(n,this),r=r.dbl());return n},u.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.eq=function(t){return 0===this.getX().cmp(t.getX())},u.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},u.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},{"../../elliptic":68,"../curve":71,"bn.js":"BN",inherits:102}],73:[function(t,e,r){var n=t("../curve"),i=t("../../elliptic"),o=t("bn.js"),s=t("inherits"),a=n.base,c=i.utils.assert;function u(t){a.call(this,"short",t),this.a=new o(t.a,16).toRed(this.red),this.b=new o(t.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(t),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function f(t,e,r,n){a.BasePoint.call(this,t,"affine"),null===e&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new o(e,16),this.y=new o(r,16),n&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function h(t,e,r,n){a.BasePoint.call(this,t,"jacobian"),null===e&&null===r&&null===n?(this.x=this.curve.one,this.y=this.curve.one,this.z=new o(0)):(this.x=new o(e,16),this.y=new o(r,16),this.z=new o(n,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}s(u,a),e.exports=u,u.prototype._getEndomorphism=function(t){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var e,r;if(t.beta)e=new o(t.beta,16).toRed(this.red);else{var n=this._getEndoRoots(this.p);e=(e=n[0].cmp(n[1])<0?n[0]:n[1]).toRed(this.red)}if(t.lambda)r=new o(t.lambda,16);else{var i=this._getEndoRoots(this.n);0===this.g.mul(i[0]).x.cmp(this.g.x.redMul(e))?r=i[0]:(r=i[1],c(0===this.g.mul(r).x.cmp(this.g.x.redMul(e))))}return{beta:e,lambda:r,basis:t.basis?t.basis.map(function(t){return{a:new o(t.a,16),b:new o(t.b,16)}}):this._getEndoBasis(r)}}},u.prototype._getEndoRoots=function(t){var e=t===this.p?this.red:o.mont(t),r=new o(2).toRed(e).redInvm(),n=r.redNeg(),i=new o(3).toRed(e).redNeg().redSqrt().redMul(r);return[n.redAdd(i).fromRed(),n.redSub(i).fromRed()]},u.prototype._getEndoBasis=function(t){for(var e,r,n,i,s,a,c,u,f,h=this.n.ushrn(Math.floor(this.n.bitLength()/2)),l=t,d=this.n.clone(),p=new o(1),b=new o(0),m=new o(0),v=new o(1),y=0;0!==l.cmpn(0);){var g=d.div(l);u=d.sub(g.mul(l)),f=m.sub(g.mul(p));var _=v.sub(g.mul(b));if(!n&&u.cmp(h)<0)e=c.neg(),r=p,n=u.neg(),i=f;else if(n&&2==++y)break;c=u,d=l,l=u,m=p,p=f,v=b,b=_}s=u.neg(),a=f;var w=n.sqr().add(i.sqr());return s.sqr().add(a.sqr()).cmp(w)>=0&&(s=e,a=r),n.negative&&(n=n.neg(),i=i.neg()),s.negative&&(s=s.neg(),a=a.neg()),[{a:n,b:i},{a:s,b:a}]},u.prototype._endoSplit=function(t){var e=this.endo.basis,r=e[0],n=e[1],i=n.b.mul(t).divRound(this.n),o=r.b.neg().mul(t).divRound(this.n),s=i.mul(r.a),a=o.mul(n.a),c=i.mul(r.b),u=o.mul(n.b);return{k1:t.sub(s).sub(a),k2:c.add(u).neg()}},u.prototype.pointFromX=function(t,e){(t=new o(t,16)).red||(t=t.toRed(this.red));var r=t.redSqr().redMul(t).redIAdd(t.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var i=n.fromRed().isOdd();return(e&&!i||!e&&i)&&(n=n.redNeg()),this.point(t,n)},u.prototype.validate=function(t){if(t.inf)return!0;var e=t.x,r=t.y,n=this.a.redMul(e),i=e.redSqr().redMul(e).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(i).cmpn(0)},u.prototype._endoWnafMulAdd=function(t,e,r){for(var n=this._endoWnafT1,i=this._endoWnafT2,o=0;o":""},f.prototype.isInfinity=function(){return this.inf},f.prototype.add=function(t){if(this.inf)return t;if(t.inf)return this;if(this.eq(t))return this.dbl();if(this.neg().eq(t))return this.curve.point(null,null);if(0===this.x.cmp(t.x))return this.curve.point(null,null);var e=this.y.redSub(t.y);0!==e.cmpn(0)&&(e=e.redMul(this.x.redSub(t.x).redInvm()));var r=e.redSqr().redISub(this.x).redISub(t.x),n=e.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},f.prototype.dbl=function(){if(this.inf)return this;var t=this.y.redAdd(this.y);if(0===t.cmpn(0))return this.curve.point(null,null);var e=this.curve.a,r=this.x.redSqr(),n=t.redInvm(),i=r.redAdd(r).redIAdd(r).redIAdd(e).redMul(n),o=i.redSqr().redISub(this.x.redAdd(this.x)),s=i.redMul(this.x.redSub(o)).redISub(this.y);return this.curve.point(o,s)},f.prototype.getX=function(){return this.x.fromRed()},f.prototype.getY=function(){return this.y.fromRed()},f.prototype.mul=function(t){return t=new o(t,16),this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve.endo?this.curve._endoWnafMulAdd([this],[t]):this.curve._wnafMul(this,t)},f.prototype.mulAdd=function(t,e,r){var n=[this,e],i=[t,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i):this.curve._wnafMulAdd(1,n,i,2)},f.prototype.jmulAdd=function(t,e,r){var n=[this,e],i=[t,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i,!0):this.curve._wnafMulAdd(1,n,i,2,!0)},f.prototype.eq=function(t){return this===t||this.inf===t.inf&&(this.inf||0===this.x.cmp(t.x)&&0===this.y.cmp(t.y))},f.prototype.neg=function(t){if(this.inf)return this;var e=this.curve.point(this.x,this.y.redNeg());if(t&&this.precomputed){var r=this.precomputed,n=function(t){return t.neg()};e.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return e},f.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},s(h,a.BasePoint),u.prototype.jpoint=function(t,e,r){return new h(this,t,e,r)},h.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var t=this.z.redInvm(),e=t.redSqr(),r=this.x.redMul(e),n=this.y.redMul(e).redMul(t);return this.curve.point(r,n)},h.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},h.prototype.add=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var e=t.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(e),i=t.x.redMul(r),o=this.y.redMul(e.redMul(t.z)),s=t.y.redMul(r.redMul(this.z)),a=n.redSub(i),c=o.redSub(s);if(0===a.cmpn(0))return 0!==c.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=a.redSqr(),f=u.redMul(a),h=n.redMul(u),l=c.redSqr().redIAdd(f).redISub(h).redISub(h),d=c.redMul(h.redISub(l)).redISub(o.redMul(f)),p=this.z.redMul(t.z).redMul(a);return this.curve.jpoint(l,d,p)},h.prototype.mixedAdd=function(t){if(this.isInfinity())return t.toJ();if(t.isInfinity())return this;var e=this.z.redSqr(),r=this.x,n=t.x.redMul(e),i=this.y,o=t.y.redMul(e).redMul(this.z),s=r.redSub(n),a=i.redSub(o);if(0===s.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=s.redSqr(),u=c.redMul(s),f=r.redMul(c),h=a.redSqr().redIAdd(u).redISub(f).redISub(f),l=a.redMul(f.redISub(h)).redISub(i.redMul(u)),d=this.z.redMul(s);return this.curve.jpoint(h,l,d)},h.prototype.dblp=function(t){if(0===t)return this;if(this.isInfinity())return this;if(!t)return this.dbl();if(this.curve.zeroA||this.curve.threeA){for(var e=this,r=0;r=0)return!1;if(r.redIAdd(i),0===this.x.cmp(r))return!0}return!1},h.prototype.inspect=function(){return this.isInfinity()?"":""},h.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},{"../../elliptic":68,"../curve":71,"bn.js":"BN",inherits:102}],74:[function(t,e,r){var n,i=r,o=t("hash.js"),s=t("../elliptic"),a=s.utils.assert;function c(t){"short"===t.type?this.curve=new s.curve.short(t):"edwards"===t.type?this.curve=new s.curve.edwards(t):this.curve=new s.curve.mont(t),this.g=this.curve.g,this.n=this.curve.n,this.hash=t.hash,a(this.g.validate(),"Invalid curve"),a(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function u(t,e){Object.defineProperty(i,t,{configurable:!0,enumerable:!0,get:function(){var r=new c(e);return Object.defineProperty(i,t,{configurable:!0,enumerable:!0,value:r}),r}})}i.PresetCurve=c,u("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:o.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),u("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:o.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),u("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:o.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),u("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:o.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),u("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:o.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),u("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["9"]}),u("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{n=t("./precomputed/secp256k1")}catch(t){n=void 0}u("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:o.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",n]})},{"../elliptic":68,"./precomputed/secp256k1":81,"hash.js":87}],75:[function(t,e,r){var n=t("bn.js"),i=t("hmac-drbg"),o=t("../../elliptic"),s=o.utils.assert,a=t("./key"),c=t("./signature");function u(t){if(!(this instanceof u))return new u(t);"string"==typeof t&&(s(o.curves.hasOwnProperty(t),"Unknown curve "+t),t=o.curves[t]),t instanceof o.curves.PresetCurve&&(t={curve:t}),this.curve=t.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=t.curve.g,this.g.precompute(t.curve.n.bitLength()+1),this.hash=t.hash||t.curve.hash}e.exports=u,u.prototype.keyPair=function(t){return new a(this,t)},u.prototype.keyFromPrivate=function(t,e){return a.fromPrivate(this,t,e)},u.prototype.keyFromPublic=function(t,e){return a.fromPublic(this,t,e)},u.prototype.genKeyPair=function(t){t||(t={});for(var e=new i({hash:this.hash,pers:t.pers,persEnc:t.persEnc||"utf8",entropy:t.entropy||o.rand(this.hash.hmacStrength),entropyEnc:t.entropy&&t.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),s=this.n.sub(new n(2));;){var a=new n(e.generate(r));if(!(a.cmp(s)>0))return a.iaddn(1),this.keyFromPrivate(a)}},u.prototype._truncateToN=function(t,e){var r=8*t.byteLength()-this.n.bitLength();return r>0&&(t=t.ushrn(r)),!e&&t.cmp(this.n)>=0?t.sub(this.n):t},u.prototype.sign=function(t,e,r,o){"object"===(void 0===r?"undefined":_typeof(r))&&(o=r,r=null),o||(o={}),e=this.keyFromPrivate(e,r),t=this._truncateToN(new n(t,16));for(var s=this.n.byteLength(),a=e.getPrivate().toArray("be",s),u=t.toArray("be",s),f=new i({hash:this.hash,entropy:a,nonce:u,pers:o.pers,persEnc:o.persEnc||"utf8"}),h=this.n.sub(new n(1)),l=0;;l++){var d=o.k?o.k(l):new n(f.generate(this.n.byteLength()));if(!((d=this._truncateToN(d,!0)).cmpn(1)<=0||d.cmp(h)>=0)){var p=this.g.mul(d);if(!p.isInfinity()){var b=p.getX(),m=b.umod(this.n);if(0!==m.cmpn(0)){var v=d.invm(this.n).mul(m.mul(e.getPrivate()).iadd(t));if(0!==(v=v.umod(this.n)).cmpn(0)){var y=(p.getY().isOdd()?1:0)|(0!==b.cmp(m)?2:0);return o.canonical&&v.cmp(this.nh)>0&&(v=this.n.sub(v),y^=1),new c({r:m,s:v,recoveryParam:y})}}}}}},u.prototype.verify=function(t,e,r,i){t=this._truncateToN(new n(t,16)),r=this.keyFromPublic(r,i);var o=(e=new c(e,"hex")).r,s=e.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;var a,u=s.invm(this.n),f=u.mul(t).umod(this.n),h=u.mul(o).umod(this.n);return this.curve._maxwellTrick?!(a=this.g.jmulAdd(f,r.getPublic(),h)).isInfinity()&&a.eqXToP(o):!(a=this.g.mulAdd(f,r.getPublic(),h)).isInfinity()&&0===a.getX().umod(this.n).cmp(o)},u.prototype.recoverPubKey=function(t,e,r,i){s((3&r)===r,"The recovery param is more than two bits"),e=new c(e,i);var o=this.n,a=new n(t),u=e.r,f=e.s,h=1&r,l=r>>1;if(u.cmp(this.curve.p.umod(this.curve.n))>=0&&l)throw new Error("Unable to find sencond key candinate");u=l?this.curve.pointFromX(u.add(this.curve.n),h):this.curve.pointFromX(u,h);var d=e.r.invm(o),p=o.sub(a).mul(d).umod(o),b=f.mul(d).umod(o);return this.g.mulAdd(p,u,b)},u.prototype.getKeyRecoveryParam=function(t,e,r,n){if(null!==(e=new c(e,n)).recoveryParam)return e.recoveryParam;for(var i=0;i<4;i++){var o;try{o=this.recoverPubKey(t,e,i)}catch(t){continue}if(o.eq(r))return i}throw new Error("Unable to find valid recovery factor")}},{"../../elliptic":68,"./key":76,"./signature":77,"bn.js":"BN","hmac-drbg":99}],76:[function(t,e,r){var n=t("bn.js"),i=t("../../elliptic").utils.assert;function o(t,e){this.ec=t,this.priv=null,this.pub=null,e.priv&&this._importPrivate(e.priv,e.privEnc),e.pub&&this._importPublic(e.pub,e.pubEnc)}e.exports=o,o.fromPublic=function(t,e,r){return e instanceof o?e:new o(t,{pub:e,pubEnc:r})},o.fromPrivate=function(t,e,r){return e instanceof o?e:new o(t,{priv:e,privEnc:r})},o.prototype.validate=function(){var t=this.getPublic();return t.isInfinity()?{result:!1,reason:"Invalid public key"}:t.validate()?t.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},o.prototype.getPublic=function(t,e){return"string"==typeof t&&(e=t,t=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),e?this.pub.encode(e,t):this.pub},o.prototype.getPrivate=function(t){return"hex"===t?this.priv.toString(16,2):this.priv},o.prototype._importPrivate=function(t,e){this.priv=new n(t,e||16),this.priv=this.priv.umod(this.ec.curve.n)},o.prototype._importPublic=function(t,e){if(t.x||t.y)return"mont"===this.ec.curve.type?i(t.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||i(t.x&&t.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(t.x,t.y));this.pub=this.ec.curve.decodePoint(t,e)},o.prototype.derive=function(t){return t.mul(this.priv).getX()},o.prototype.sign=function(t,e,r){return this.ec.sign(t,this,e,r)},o.prototype.verify=function(t,e){return this.ec.verify(t,e,this)},o.prototype.inspect=function(){return""}},{"../../elliptic":68,"bn.js":"BN"}],77:[function(t,e,r){var n=t("bn.js"),i=t("../../elliptic").utils,o=i.assert;function s(t,e){if(t instanceof s)return t;this._importDER(t,e)||(o(t.r&&t.s,"Signature without r or s"),this.r=new n(t.r,16),this.s=new n(t.s,16),void 0===t.recoveryParam?this.recoveryParam=null:this.recoveryParam=t.recoveryParam)}function a(t,e){var r=t[e.place++];if(!(128&r))return r;for(var n=15&r,i=0,o=0,s=e.place;o>>3);for(t.push(128|r);--r;)t.push(e>>>(r<<3)&255);t.push(e)}}e.exports=s,s.prototype._importDER=function(t,e){t=i.toArray(t,e);var r=new function(){this.place=0};if(48!==t[r.place++])return!1;if(a(t,r)+r.place!==t.length)return!1;if(2!==t[r.place++])return!1;var o=a(t,r),s=t.slice(r.place,o+r.place);if(r.place+=o,2!==t[r.place++])return!1;var c=a(t,r);if(t.length!==c+r.place)return!1;var u=t.slice(r.place,c+r.place);return 0===s[0]&&128&s[1]&&(s=s.slice(1)),0===u[0]&&128&u[1]&&(u=u.slice(1)),this.r=new n(s),this.s=new n(u),this.recoveryParam=null,!0},s.prototype.toDER=function(t){var e=this.r.toArray(),r=this.s.toArray();for(128&e[0]&&(e=[0].concat(e)),128&r[0]&&(r=[0].concat(r)),e=c(e),r=c(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];u(n,e.length),(n=n.concat(e)).push(2),u(n,r.length);var o=n.concat(r),s=[48];return u(s,o.length),s=s.concat(o),i.encode(s,t)}},{"../../elliptic":68,"bn.js":"BN"}],78:[function(t,e,r){var n=t("hash.js"),i=t("../../elliptic"),o=i.utils,s=o.assert,a=o.parseBytes,c=t("./key"),u=t("./signature");function f(t){if(s("ed25519"===t,"only tested with ed25519 so far"),!(this instanceof f))return new f(t);t=i.curves[t].curve;this.curve=t,this.g=t.g,this.g.precompute(t.n.bitLength()+1),this.pointClass=t.point().constructor,this.encodingLength=Math.ceil(t.n.bitLength()/8),this.hash=n.sha512}e.exports=f,f.prototype.sign=function(t,e){t=a(t);var r=this.keyFromSecret(e),n=this.hashInt(r.messagePrefix(),t),i=this.g.mul(n),o=this.encodePoint(i),s=this.hashInt(o,r.pubBytes(),t).mul(r.priv()),c=n.add(s).umod(this.curve.n);return this.makeSignature({R:i,S:c,Rencoded:o})},f.prototype.verify=function(t,e,r){t=a(t),e=this.makeSignature(e);var n=this.keyFromPublic(r),i=this.hashInt(e.Rencoded(),n.pubBytes(),t),o=this.g.mul(e.S());return e.R().add(n.pub().mul(i)).eq(o)},f.prototype.hashInt=function(){for(var t=this.hash(),e=0;e=0;){var o;if(i.isOdd()){var s=i.andln(n-1);o=s>(n>>1)-1?(n>>1)-s:s,i.isubn(o)}else o=0;r.push(o);for(var a=0!==i.cmpn(0)&&0===i.andln(n-1)?e+1:1,c=1;c0||e.cmpn(-i)>0;){var o,s,a,c=t.andln(3)+n&3,u=e.andln(3)+i&3;3===c&&(c=-1),3===u&&(u=-1),o=0==(1&c)?0:3!=(a=t.andln(7)+n&7)&&5!==a||2!==u?c:-c,r[0].push(o),s=0==(1&u)?0:3!=(a=e.andln(7)+i&7)&&5!==a||2!==c?u:-u,r[1].push(s),2*n===o+1&&(n=1-n),2*i===s+1&&(i=1-i),t.iushrn(1),e.iushrn(1)}return r},n.cachedProperty=function(t,e,r){var n="_"+e;t.prototype[e]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},n.parseBytes=function(t){return"string"==typeof t?n.toArray(t,"hex"):t},n.intFromLE=function(t){return new i(t,"hex","le")}},{"bn.js":"BN","minimalistic-assert":107,"minimalistic-crypto-utils":108}],83:[function(t,e,r){e.exports={_from:"elliptic@^6.0.0",_id:"elliptic@6.4.0",_inBundle:!1,_integrity:"sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=",_location:"/elliptic",_phantomChildren:{},_requested:{type:"range",registry:!0,raw:"elliptic@^6.0.0",name:"elliptic",escapedName:"elliptic",rawSpec:"^6.0.0",saveSpec:null,fetchSpec:"^6.0.0"},_requiredBy:["/browserify-sign","/create-ecdh","/secp256k1"],_resolved:"https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz",_shasum:"cac9af8762c85836187003c8dfe193e5e2eae5df",_spec:"elliptic@^6.0.0",_where:"/Users/gasolin/Documents/eth/web3.js/node_modules/browserify-sign",author:{name:"Fedor Indutny",email:"fedor@indutny.com"},bugs:{url:"https://github.com/indutny/elliptic/issues"},bundleDependencies:!1,dependencies:{"bn.js":"^4.4.0",brorand:"^1.0.1","hash.js":"^1.0.0","hmac-drbg":"^1.0.0",inherits:"^2.0.1","minimalistic-assert":"^1.0.0","minimalistic-crypto-utils":"^1.0.0"},deprecated:!1,description:"EC cryptography",devDependencies:{brfs:"^1.4.3",coveralls:"^2.11.3",grunt:"^0.4.5","grunt-browserify":"^5.0.0","grunt-cli":"^1.2.0","grunt-contrib-connect":"^1.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^1.0.1","grunt-mocha-istanbul":"^3.0.1","grunt-saucelabs":"^8.6.2",istanbul:"^0.4.2",jscs:"^2.9.0",jshint:"^2.6.0",mocha:"^2.1.0"},files:["lib"],homepage:"https://github.com/indutny/elliptic",keywords:["EC","Elliptic","curve","Cryptography"],license:"MIT",main:"lib/elliptic.js",name:"elliptic",repository:{type:"git",url:"git+ssh://git@github.com/indutny/elliptic.git"},scripts:{jscs:"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",jshint:"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",lint:"npm run jscs && npm run jshint",test:"npm run lint && npm run unit",unit:"istanbul test _mocha --reporter=spec test/index.js",version:"grunt dist && git add dist/"},version:"6.4.0"}},{}],84:[function(t,e,r){function n(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function i(t){return"function"==typeof t}function o(t){return"object"===(void 0===t?"undefined":_typeof(t))&&null!==t}function s(t){return void 0===t}e.exports=n,n.EventEmitter=n,n.prototype._events=void 0,n.prototype._maxListeners=void 0,n.defaultMaxListeners=10,n.prototype.setMaxListeners=function(t){if("number"!=typeof t||t<0||isNaN(t))throw TypeError("n must be a positive number");return this._maxListeners=t,this},n.prototype.emit=function(t){var e,r,n,a,c,u;if(this._events||(this._events={}),"error"===t&&(!this._events.error||o(this._events.error)&&!this._events.error.length)){if((e=arguments[1])instanceof Error)throw e;var f=new Error('Uncaught, unspecified "error" event. ('+e+")");throw f.context=e,f}if(s(r=this._events[t]))return!1;if(i(r))switch(arguments.length){case 1:r.call(this);break;case 2:r.call(this,arguments[1]);break;case 3:r.call(this,arguments[1],arguments[2]);break;default:a=Array.prototype.slice.call(arguments,1),r.apply(this,a)}else if(o(r))for(a=Array.prototype.slice.call(arguments,1),n=(u=r.slice()).length,c=0;c0&&this._events[t].length>r&&(this._events[t].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[t].length),"function"==typeof console.trace&&console.trace()),this},n.prototype.on=n.prototype.addListener,n.prototype.once=function(t,e){if(!i(e))throw TypeError("listener must be a function");var r=!1;function n(){this.removeListener(t,n),r||(r=!0,e.apply(this,arguments))}return n.listener=e,this.on(t,n),this},n.prototype.removeListener=function(t,e){var r,n,s,a;if(!i(e))throw TypeError("listener must be a function");if(!this._events||!this._events[t])return this;if(s=(r=this._events[t]).length,n=-1,r===e||i(r.listener)&&r.listener===e)delete this._events[t],this._events.removeListener&&this.emit("removeListener",t,e);else if(o(r)){for(a=s;a-- >0;)if(r[a]===e||r[a].listener&&r[a].listener===e){n=a;break}if(n<0)return this;1===r.length?(r.length=0,delete this._events[t]):r.splice(n,1),this._events.removeListener&&this.emit("removeListener",t,e)}return this},n.prototype.removeAllListeners=function(t){var e,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[t]&&delete this._events[t],this;if(0===arguments.length){for(e in this._events)"removeListener"!==e&&this.removeAllListeners(e);return this.removeAllListeners("removeListener"),this._events={},this}if(i(r=this._events[t]))this.removeListener(t,r);else if(r)for(;r.length;)this.removeListener(t,r[r.length-1]);return delete this._events[t],this},n.prototype.listeners=function(t){return this._events&&this._events[t]?i(this._events[t])?[this._events[t]]:this._events[t].slice():[]},n.prototype.listenerCount=function(t){if(this._events){var e=this._events[t];if(i(e))return 1;if(e)return e.length}return 0},n.listenerCount=function(t,e){return t.listenerCount(e)}},{}],85:[function(t,e,r){var n=t("safe-buffer").Buffer,i=t("md5.js");e.exports=function(t,e,r,o){if(n.isBuffer(t)||(t=n.from(t,"binary")),e&&(n.isBuffer(e)||(e=n.from(e,"binary")),8!==e.length))throw new RangeError("salt should be Buffer with 8 byte length");for(var s=r/8,a=n.alloc(s),c=n.alloc(o||0),u=n.alloc(0);s>0||o>0;){var f=new i;f.update(u),f.update(t),e&&f.update(e),u=f.digest();var h=0;if(s>0){var l=a.length-s;h=Math.min(s,u.length),u.copy(a,l,0,h),s-=h}if(h0){var d=c.length-o,p=Math.min(o,u.length-h);u.copy(c,d,h,h+p),o-=p}}return u.fill(0),{key:a,iv:c}}},{"md5.js":104,"safe-buffer":130}],86:[function(t,e,r){(function(r){var n=t("stream").Transform;function i(t){n.call(this),this._block=new r(t),this._blockSize=t,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}t("inherits")(i,n),i.prototype._transform=function(t,e,n){var i=null;try{"buffer"!==e&&(t=new r(t,e)),this.update(t)}catch(t){i=t}n(i)},i.prototype._flush=function(t){var e=null;try{this.push(this._digest())}catch(t){e=t}t(e)},i.prototype.update=function(t,e){if(!r.isBuffer(t)&&"string"!=typeof t)throw new TypeError("Data must be a string or a buffer");if(this._finalized)throw new Error("Digest already called");r.isBuffer(t)||(t=new r(t,e||"binary"));for(var n=this._block,i=0;this._blockOffset+t.length-i>=this._blockSize;){for(var o=this._blockOffset;o0;++s)this._length[s]+=a,(a=this._length[s]/4294967296|0)>0&&(this._length[s]-=4294967296*a);return this},i.prototype._update=function(t){throw new Error("_update is not implemented")},i.prototype.digest=function(t){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var e=this._digest();return void 0!==t&&(e=e.toString(t)),e},i.prototype._digest=function(){throw new Error("_digest is not implemented")},e.exports=i}).call(this,t("buffer").Buffer)},{buffer:48,inherits:102,stream:139}],87:[function(t,e,r){var n=r;n.utils=t("./hash/utils"),n.common=t("./hash/common"),n.sha=t("./hash/sha"),n.ripemd=t("./hash/ripemd"),n.hmac=t("./hash/hmac"),n.sha1=n.sha.sha1,n.sha256=n.sha.sha256,n.sha224=n.sha.sha224,n.sha384=n.sha.sha384,n.sha512=n.sha.sha512,n.ripemd160=n.ripemd.ripemd160},{"./hash/common":88,"./hash/hmac":89,"./hash/ripemd":90,"./hash/sha":91,"./hash/utils":98}],88:[function(t,e,r){var n=t("./utils"),i=t("minimalistic-assert");function o(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}r.BlockHash=o,o.prototype.update=function(t,e){if(t=n.toArray(t,e),this.pending?this.pending=this.pending.concat(t):this.pending=t,this.pendingTotal+=t.length,this.pending.length>=this._delta8){var r=(t=this.pending).length%this._delta8;this.pending=t.slice(t.length-r,t.length),0===this.pending.length&&(this.pending=null),t=n.join32(t,0,t.length-r,this.endian);for(var i=0;i>>24&255,n[i++]=t>>>16&255,n[i++]=t>>>8&255,n[i++]=255&t}else for(n[i++]=255&t,n[i++]=t>>>8&255,n[i++]=t>>>16&255,n[i++]=t>>>24&255,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,o=8;othis.blockSize&&(t=(new this.Hash).update(t).digest()),i(t.length<=this.blockSize);for(var e=t.length;e>>3},r.g1_256=function(t){return n(t,17)^n(t,19)^t>>>10}},{"../utils":98}],98:[function(t,e,r){var n=t("minimalistic-assert"),i=t("inherits");function o(t){return(t>>>24|t>>>8&65280|t<<8&16711680|(255&t)<<24)>>>0}function s(t){return 1===t.length?"0"+t:t}function a(t){return 7===t.length?"0"+t:6===t.length?"00"+t:5===t.length?"000"+t:4===t.length?"0000"+t:3===t.length?"00000"+t:2===t.length?"000000"+t:1===t.length?"0000000"+t:t}r.inherits=i,r.toArray=function(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var r=[];if("string"==typeof t)if(e){if("hex"===e)for((t=t.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(t="0"+t),n=0;n>8,s=255&i;o?r.push(o,s):r.push(s)}else for(n=0;n>>0}return s},r.split32=function(t,e){for(var r=new Array(4*t.length),n=0,i=0;n>>24,r[i+1]=o>>>16&255,r[i+2]=o>>>8&255,r[i+3]=255&o):(r[i+3]=o>>>24,r[i+2]=o>>>16&255,r[i+1]=o>>>8&255,r[i]=255&o)}return r},r.rotr32=function(t,e){return t>>>e|t<<32-e},r.rotl32=function(t,e){return t<>>32-e},r.sum32=function(t,e){return t+e>>>0},r.sum32_3=function(t,e,r){return t+e+r>>>0},r.sum32_4=function(t,e,r,n){return t+e+r+n>>>0},r.sum32_5=function(t,e,r,n,i){return t+e+r+n+i>>>0},r.sum64=function(t,e,r,n){var i=t[e],o=n+t[e+1]>>>0,s=(o>>0,t[e+1]=o},r.sum64_hi=function(t,e,r,n){return(e+n>>>0>>0},r.sum64_lo=function(t,e,r,n){return e+n>>>0},r.sum64_4_hi=function(t,e,r,n,i,o,s,a){var c=0,u=e;return c+=(u=u+n>>>0)>>0)>>0)>>0},r.sum64_4_lo=function(t,e,r,n,i,o,s,a){return e+n+o+a>>>0},r.sum64_5_hi=function(t,e,r,n,i,o,s,a,c,u){var f=0,h=e;return f+=(h=h+n>>>0)>>0)>>0)>>0)>>0},r.sum64_5_lo=function(t,e,r,n,i,o,s,a,c,u){return e+n+o+a+u>>>0},r.rotr64_hi=function(t,e,r){return(e<<32-r|t>>>r)>>>0},r.rotr64_lo=function(t,e,r){return(t<<32-r|e>>>r)>>>0},r.shr64_hi=function(t,e,r){return t>>>r},r.shr64_lo=function(t,e,r){return(t<<32-r|e>>>r)>>>0}},{inherits:102,"minimalistic-assert":107}],99:[function(t,e,r){var n=t("hash.js"),i=t("minimalistic-crypto-utils"),o=t("minimalistic-assert");function s(t){if(!(this instanceof s))return new s(t);this.hash=t.hash,this.predResist=!!t.predResist,this.outLen=this.hash.outSize,this.minEntropy=t.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var e=i.toArray(t.entropy,t.entropyEnc||"hex"),r=i.toArray(t.nonce,t.nonceEnc||"hex"),n=i.toArray(t.pers,t.persEnc||"hex");o(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(e,r,n)}e.exports=s,s.prototype._init=function(t,e,r){var n=t.concat(e).concat(r);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(t.concat(r||[])),this._reseed=1},s.prototype.generate=function(t,e,r,n){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof e&&(n=r,r=e,e=null),r&&(r=i.toArray(r,n||"hex"),this._update(r));for(var o=[];o.length>1,f=-7,h=r?i-1:0,l=r?-1:1,d=t[e+h];for(h+=l,o=d&(1<<-f)-1,d>>=-f,f+=a;f>0;o=256*o+t[e+h],h+=l,f-=8);for(s=o&(1<<-f)-1,o>>=-f,f+=n;f>0;s=256*s+t[e+h],h+=l,f-=8);if(0===o)o=1-u;else{if(o===c)return s?NaN:1/0*(d?-1:1);s+=Math.pow(2,n),o-=u}return(d?-1:1)*s*Math.pow(2,o-n)},r.write=function(t,e,r,n,i,o){var s,a,c,u=8*o-i-1,f=(1<>1,l=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:o-1,p=n?1:-1,b=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=f):(s=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-s))<1&&(s--,c*=2),(e+=s+h>=1?l/c:l*Math.pow(2,1-h))*c>=2&&(s++,c/=2),s+h>=f?(a=0,s=f):s+h>=1?(a=(e*c-1)*Math.pow(2,i),s+=h):(a=e*Math.pow(2,h-1)*Math.pow(2,i),s=0));i>=8;t[r+d]=255&a,d+=p,a/=256,i-=8);for(s=s<0;t[r+d]=255&s,d+=p,s/=256,u-=8);t[r+d-p]|=128*b}},{}],101:[function(t,e,r){var n=[].indexOf;e.exports=function(t,e){if(n)return t.indexOf(e);for(var r=0;r>>32-e}function c(t,e,r,n,i,o,s){return a(t+(e&r|~e&n)+i+o|0,s)+e|0}function u(t,e,r,n,i,o,s){return a(t+(e&n|r&~n)+i+o|0,s)+e|0}function f(t,e,r,n,i,o,s){return a(t+(e^r^n)+i+o|0,s)+e|0}function h(t,e,r,n,i,o,s){return a(t+(r^(e|~n))+i+o|0,s)+e|0}n(s,i),s.prototype._update=function(){for(var t=o,e=0;e<16;++e)t[e]=this._block.readInt32LE(4*e);var r=this._a,n=this._b,i=this._c,s=this._d;n=h(n=h(n=h(n=h(n=f(n=f(n=f(n=f(n=u(n=u(n=u(n=u(n=c(n=c(n=c(n=c(n,i=c(i,s=c(s,r=c(r,n,i,s,t[0],3614090360,7),n,i,t[1],3905402710,12),r,n,t[2],606105819,17),s,r,t[3],3250441966,22),i=c(i,s=c(s,r=c(r,n,i,s,t[4],4118548399,7),n,i,t[5],1200080426,12),r,n,t[6],2821735955,17),s,r,t[7],4249261313,22),i=c(i,s=c(s,r=c(r,n,i,s,t[8],1770035416,7),n,i,t[9],2336552879,12),r,n,t[10],4294925233,17),s,r,t[11],2304563134,22),i=c(i,s=c(s,r=c(r,n,i,s,t[12],1804603682,7),n,i,t[13],4254626195,12),r,n,t[14],2792965006,17),s,r,t[15],1236535329,22),i=u(i,s=u(s,r=u(r,n,i,s,t[1],4129170786,5),n,i,t[6],3225465664,9),r,n,t[11],643717713,14),s,r,t[0],3921069994,20),i=u(i,s=u(s,r=u(r,n,i,s,t[5],3593408605,5),n,i,t[10],38016083,9),r,n,t[15],3634488961,14),s,r,t[4],3889429448,20),i=u(i,s=u(s,r=u(r,n,i,s,t[9],568446438,5),n,i,t[14],3275163606,9),r,n,t[3],4107603335,14),s,r,t[8],1163531501,20),i=u(i,s=u(s,r=u(r,n,i,s,t[13],2850285829,5),n,i,t[2],4243563512,9),r,n,t[7],1735328473,14),s,r,t[12],2368359562,20),i=f(i,s=f(s,r=f(r,n,i,s,t[5],4294588738,4),n,i,t[8],2272392833,11),r,n,t[11],1839030562,16),s,r,t[14],4259657740,23),i=f(i,s=f(s,r=f(r,n,i,s,t[1],2763975236,4),n,i,t[4],1272893353,11),r,n,t[7],4139469664,16),s,r,t[10],3200236656,23),i=f(i,s=f(s,r=f(r,n,i,s,t[13],681279174,4),n,i,t[0],3936430074,11),r,n,t[3],3572445317,16),s,r,t[6],76029189,23),i=f(i,s=f(s,r=f(r,n,i,s,t[9],3654602809,4),n,i,t[12],3873151461,11),r,n,t[15],530742520,16),s,r,t[2],3299628645,23),i=h(i,s=h(s,r=h(r,n,i,s,t[0],4096336452,6),n,i,t[7],1126891415,10),r,n,t[14],2878612391,15),s,r,t[5],4237533241,21),i=h(i,s=h(s,r=h(r,n,i,s,t[12],1700485571,6),n,i,t[3],2399980690,10),r,n,t[10],4293915773,15),s,r,t[1],2240044497,21),i=h(i,s=h(s,r=h(r,n,i,s,t[8],1873313359,6),n,i,t[15],4264355552,10),r,n,t[6],2734768916,15),s,r,t[13],1309151649,21),i=h(i,s=h(s,r=h(r,n,i,s,t[4],4149444226,6),n,i,t[11],3174756917,10),r,n,t[2],718787259,15),s,r,t[9],3951481745,21),this._a=this._a+r|0,this._b=this._b+n|0,this._c=this._c+i|0,this._d=this._d+s|0},s.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=new r(16);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t},e.exports=s}).call(this,t("buffer").Buffer)},{buffer:48,"hash-base":105,inherits:102}],105:[function(t,e,r){var n=t("safe-buffer").Buffer,i=t("stream").Transform;function o(t){i.call(this),this._block=n.allocUnsafe(t),this._blockSize=t,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}t("inherits")(o,i),o.prototype._transform=function(t,e,r){var n=null;try{this.update(t,e)}catch(t){n=t}r(n)},o.prototype._flush=function(t){var e=null;try{this.push(this.digest())}catch(t){e=t}t(e)},o.prototype.update=function(t,e){if(function(t,e){if(!n.isBuffer(t)&&"string"!=typeof t)throw new TypeError(e+" must be a string or a buffer")}(t,"Data"),this._finalized)throw new Error("Digest already called");n.isBuffer(t)||(t=n.from(t,e));for(var r=this._block,i=0;this._blockOffset+t.length-i>=this._blockSize;){for(var o=this._blockOffset;o0;++s)this._length[s]+=a,(a=this._length[s]/4294967296|0)>0&&(this._length[s]-=4294967296*a);return this},o.prototype._update=function(){throw new Error("_update is not implemented")},o.prototype.digest=function(t){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var e=this._digest();void 0!==t&&(e=e.toString(t)),this._block.fill(0),this._blockOffset=0;for(var r=0;r<4;++r)this._length[r]=0;return e},o.prototype._digest=function(){throw new Error("_digest is not implemented")},e.exports=o},{inherits:102,"safe-buffer":130,stream:139}],106:[function(t,e,r){var n=t("bn.js"),i=t("brorand");function o(t){this.rand=t||new i.Rand}e.exports=o,o.create=function(t){return new o(t)},o.prototype._randbelow=function(t){var e=t.bitLength(),r=Math.ceil(e/8);do{var i=new n(this.rand.generate(r))}while(i.cmp(t)>=0);return i},o.prototype._randrange=function(t,e){var r=e.sub(t);return t.add(this._randbelow(r))},o.prototype.test=function(t,e,r){var i=t.bitLength(),o=n.mont(t),s=new n(1).toRed(o);e||(e=Math.max(1,i/48|0));for(var a=t.subn(1),c=0;!a.testn(c);c++);for(var u=t.shrn(c),f=a.toRed(o);e>0;e--){var h=this._randrange(new n(2),a);r&&r(h);var l=h.toRed(o).redPow(u);if(0!==l.cmp(s)&&0!==l.cmp(f)){for(var d=1;d0;e--){var f=this._randrange(new n(2),s),h=t.gcd(f);if(0!==h.cmpn(1))return h;var l=f.toRed(i).redPow(c);if(0!==l.cmp(o)&&0!==l.cmp(u)){for(var d=1;d>8,s=255&i;o?r.push(o,s):r.push(s)}return r},n.zero2=i,n.toHex=o,n.encode=function(t,e){return"hex"===e?o(t):t}},{}],109:[function(t,e,r){e.exports={"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"}},{}],110:[function(t,e,r){var n=t("asn1.js");r.certificate=t("./certificate");var i=n.define("RSAPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("modulus").int(),this.key("publicExponent").int(),this.key("privateExponent").int(),this.key("prime1").int(),this.key("prime2").int(),this.key("exponent1").int(),this.key("exponent2").int(),this.key("coefficient").int())});r.RSAPrivateKey=i;var o=n.define("RSAPublicKey",function(){this.seq().obj(this.key("modulus").int(),this.key("publicExponent").int())});r.RSAPublicKey=o;var s=n.define("SubjectPublicKeyInfo",function(){this.seq().obj(this.key("algorithm").use(a),this.key("subjectPublicKey").bitstr())});r.PublicKey=s;var a=n.define("AlgorithmIdentifier",function(){this.seq().obj(this.key("algorithm").objid(),this.key("none").null_().optional(),this.key("curve").objid().optional(),this.key("params").seq().obj(this.key("p").int(),this.key("q").int(),this.key("g").int()).optional())}),c=n.define("PrivateKeyInfo",function(){this.seq().obj(this.key("version").int(),this.key("algorithm").use(a),this.key("subjectPrivateKey").octstr())});r.PrivateKey=c;var u=n.define("EncryptedPrivateKeyInfo",function(){this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(),this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(),this.key("kdeparams").seq().obj(this.key("salt").octstr(),this.key("iters").int())),this.key("cipher").seq().obj(this.key("algo").objid(),this.key("iv").octstr()))),this.key("subjectPrivateKey").octstr())});r.EncryptedPrivateKey=u;var f=n.define("DSAPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("p").int(),this.key("q").int(),this.key("g").int(),this.key("pub_key").int(),this.key("priv_key").int())});r.DSAPrivateKey=f,r.DSAparam=n.define("DSAparam",function(){this.int()});var h=n.define("ECPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("privateKey").octstr(),this.key("parameters").optional().explicit(0).use(l),this.key("publicKey").optional().explicit(1).bitstr())});r.ECPrivateKey=h;var l=n.define("ECParameters",function(){this.choice({namedCurve:this.objid()})});r.signature=n.define("signature",function(){this.seq().obj(this.key("r").int(),this.key("s").int())})},{"./certificate":111,"asn1.js":1}],111:[function(t,e,r){var n=t("asn1.js"),i=n.define("Time",function(){this.choice({utcTime:this.utctime(),generalTime:this.gentime()})}),o=n.define("AttributeTypeValue",function(){this.seq().obj(this.key("type").objid(),this.key("value").any())}),s=n.define("AlgorithmIdentifier",function(){this.seq().obj(this.key("algorithm").objid(),this.key("parameters").optional())}),a=n.define("SubjectPublicKeyInfo",function(){this.seq().obj(this.key("algorithm").use(s),this.key("subjectPublicKey").bitstr())}),c=n.define("RelativeDistinguishedName",function(){this.setof(o)}),u=n.define("RDNSequence",function(){this.seqof(c)}),f=n.define("Name",function(){this.choice({rdnSequence:this.use(u)})}),h=n.define("Validity",function(){this.seq().obj(this.key("notBefore").use(i),this.key("notAfter").use(i))}),l=n.define("Extension",function(){this.seq().obj(this.key("extnID").objid(),this.key("critical").bool().def(!1),this.key("extnValue").octstr())}),d=n.define("TBSCertificate",function(){this.seq().obj(this.key("version").explicit(0).int(),this.key("serialNumber").int(),this.key("signature").use(s),this.key("issuer").use(f),this.key("validity").use(h),this.key("subject").use(f),this.key("subjectPublicKeyInfo").use(a),this.key("issuerUniqueID").implicit(1).bitstr().optional(),this.key("subjectUniqueID").implicit(2).bitstr().optional(),this.key("extensions").explicit(3).seqof(l).optional())}),p=n.define("X509Certificate",function(){this.seq().obj(this.key("tbsCertificate").use(d),this.key("signatureAlgorithm").use(s),this.key("signatureValue").bitstr())});e.exports=p},{"asn1.js":1}],112:[function(t,e,r){(function(r){var n=/Proc-Type: 4,ENCRYPTED\n\r?DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)\n\r?\n\r?([0-9A-z\n\r\+\/\=]+)\n\r?/m,i=/^-----BEGIN ((?:.* KEY)|CERTIFICATE)-----\n/m,o=/^-----BEGIN ((?:.* KEY)|CERTIFICATE)-----\n\r?([0-9A-z\n\r\+\/\=]+)\n\r?-----END \1-----$/m,s=t("evp_bytestokey"),a=t("browserify-aes");e.exports=function(t,e){var c,u=t.toString(),f=u.match(n);if(f){var h="aes"+f[1],l=new r(f[2],"hex"),d=new r(f[3].replace(/\r?\n/g,""),"base64"),p=s(e,l.slice(0,8),parseInt(f[1],10)).key,b=[],m=a.createDecipheriv(h,p,l);b.push(m.update(d)),b.push(m.final()),c=r.concat(b)}else{var v=u.match(o);c=new r(v[2].replace(/\r?\n/g,""),"base64")}return{tag:u.match(i)[1],data:c}}}).call(this,t("buffer").Buffer)},{"browserify-aes":20,buffer:48,evp_bytestokey:85}],113:[function(t,e,r){(function(r){var n=t("./asn1"),i=t("./aesid.json"),o=t("./fixProc"),s=t("browserify-aes"),a=t("pbkdf2");function c(t){var e;"object"!==(void 0===t?"undefined":_typeof(t))||r.isBuffer(t)||(e=t.passphrase,t=t.key),"string"==typeof t&&(t=new r(t));var c,u,f,h,l,d,p,b,m,v,y,g,_,w=o(t,e),k=w.tag,x=w.data;switch(k){case"CERTIFICATE":u=n.certificate.decode(x,"der").tbsCertificate.subjectPublicKeyInfo;case"PUBLIC KEY":switch(u||(u=n.PublicKey.decode(x,"der")),c=u.algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return n.RSAPublicKey.decode(u.subjectPublicKey.data,"der");case"1.2.840.10045.2.1":return u.subjectPrivateKey=u.subjectPublicKey,{type:"ec",data:u};case"1.2.840.10040.4.1":return u.algorithm.params.pub_key=n.DSAparam.decode(u.subjectPublicKey.data,"der"),{type:"dsa",data:u.algorithm.params};default:throw new Error("unknown key id "+c)}throw new Error("unknown key type "+k);case"ENCRYPTED PRIVATE KEY":x=n.EncryptedPrivateKey.decode(x,"der"),h=e,l=(f=x).algorithm.decrypt.kde.kdeparams.salt,d=parseInt(f.algorithm.decrypt.kde.kdeparams.iters.toString(),10),p=i[f.algorithm.decrypt.cipher.algo.join(".")],b=f.algorithm.decrypt.cipher.iv,m=f.subjectPrivateKey,v=parseInt(p.split("-")[1],10)/8,y=a.pbkdf2Sync(h,l,d,v),g=s.createDecipheriv(p,y,b),(_=[]).push(g.update(m)),_.push(g.final()),x=r.concat(_);case"PRIVATE KEY":switch(c=(u=n.PrivateKey.decode(x,"der")).algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return n.RSAPrivateKey.decode(u.subjectPrivateKey,"der");case"1.2.840.10045.2.1":return{curve:u.algorithm.curve,privateKey:n.ECPrivateKey.decode(u.subjectPrivateKey,"der").privateKey};case"1.2.840.10040.4.1":return u.algorithm.params.priv_key=n.DSAparam.decode(u.subjectPrivateKey,"der"),{type:"dsa",params:u.algorithm.params};default:throw new Error("unknown key id "+c)}throw new Error("unknown key type "+k);case"RSA PUBLIC KEY":return n.RSAPublicKey.decode(x,"der");case"RSA PRIVATE KEY":return n.RSAPrivateKey.decode(x,"der");case"DSA PRIVATE KEY":return{type:"dsa",params:n.DSAPrivateKey.decode(x,"der")};case"EC PRIVATE KEY":return{curve:(x=n.ECPrivateKey.decode(x,"der")).parameters.value,privateKey:x.privateKey};default:throw new Error("unknown key type "+k)}}e.exports=c,c.signature=n.signature}).call(this,t("buffer").Buffer)},{"./aesid.json":109,"./asn1":110,"./fixProc":112,"browserify-aes":20,buffer:48,pbkdf2:114}],114:[function(t,e,r){r.pbkdf2=t("./lib/async"),r.pbkdf2Sync=t("./lib/sync")},{"./lib/async":115,"./lib/sync":118}],115:[function(t,e,r){(function(r,n){var i,o=t("./precondition"),s=t("./default-encoding"),a=t("./sync"),c=t("safe-buffer").Buffer,u=n.crypto&&n.crypto.subtle,f={sha:"SHA-1","sha-1":"SHA-1",sha1:"SHA-1",sha256:"SHA-256","sha-256":"SHA-256",sha384:"SHA-384","sha-384":"SHA-384","sha-512":"SHA-512",sha512:"SHA-512"},h=[];function l(t,e,r,n,i){return u.importKey("raw",t,{name:"PBKDF2"},!1,["deriveBits"]).then(function(t){return u.deriveBits({name:"PBKDF2",salt:e,iterations:r,hash:{name:i}},t,n<<3)}).then(function(t){return c.from(t)})}e.exports=function(t,e,d,p,b,m){if(c.isBuffer(t)||(t=c.from(t,s)),c.isBuffer(e)||(e=c.from(e,s)),o(d,p),"function"==typeof b&&(m=b,b=void 0),"function"!=typeof m)throw new Error("No callback provided to pbkdf2");var v,y,g=f[(b=b||"sha1").toLowerCase()];if(!g||"function"!=typeof n.Promise)return r.nextTick(function(){var r;try{r=a(t,e,d,p,b)}catch(t){return m(t)}m(null,r)});v=function(t){if(n.process&&!n.process.browser)return Promise.resolve(!1);if(!u||!u.importKey||!u.deriveBits)return Promise.resolve(!1);if(void 0!==h[t])return h[t];var e=l(i=i||c.alloc(8),i,10,128,t).then(function(){return!0}).catch(function(){return!1});return h[t]=e,e}(g).then(function(r){return r?l(t,e,d,p,g):a(t,e,d,p,b)}),y=m,v.then(function(t){r.nextTick(function(){y(null,t)})},function(t){r.nextTick(function(){y(t)})})}}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./default-encoding":116,"./precondition":117,"./sync":118,_process:120,"safe-buffer":130}],116:[function(t,e,r){(function(t){var r;t.browser?r="utf-8":r=parseInt(t.version.split(".")[0].slice(1),10)>=6?"utf-8":"binary";e.exports=r}).call(this,t("_process"))},{_process:120}],117:[function(t,e,r){var n=Math.pow(2,30)-1;e.exports=function(t,e){if("number"!=typeof t)throw new TypeError("Iterations not a number");if(t<0)throw new TypeError("Bad iterations");if("number"!=typeof e)throw new TypeError("Key length not a number");if(e<0||e>n||e!=e)throw new TypeError("Bad key length")}},{}],118:[function(t,e,r){var n=t("create-hash/md5"),i=t("ripemd160"),o=t("sha.js"),s=t("./precondition"),a=t("./default-encoding"),c=t("safe-buffer").Buffer,u=c.alloc(128),f={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function h(t,e,r){var s=function(t){return"rmd160"===t||"ripemd160"===t?i:"md5"===t?n:function(e){return o(t).update(e).digest()}}(t),a="sha512"===t||"sha384"===t?128:64;e.length>a?e=s(e):e.length1)for(var r=1;rp||new s(e).cmp(d.modulus)>=0)throw new Error("decryption error");l=f?u(new s(e),d):a(e,d);var b=new r(p-l.length);if(b.fill(0),l=r.concat([b,l],p),4===h)return function(t,e){t.modulus;var n=t.modulus.byteLength(),s=(e.length,c("sha1").update(new r("")).digest()),a=s.length;if(0!==e[0])throw new Error("decryption error");var u=e.slice(1,a+1),f=e.slice(a+1),h=o(u,i(f,a)),l=o(f,i(h,n-a-1));if(function(t,e){t=new r(t),e=new r(e);var n=0,i=t.length;t.length!==e.length&&(n++,i=Math.min(t.length,e.length));var o=-1;for(;++o=e.length){o++;break}var s=e.slice(2,i-1);e.slice(i-1,i);("0002"!==n.toString("hex")&&!r||"0001"!==n.toString("hex")&&r)&&o++;s.length<8&&o++;if(o)throw new Error("decryption error");return e.slice(i)}(0,l,f);if(3===h)return l;throw new Error("unknown padding")}}).call(this,t("buffer").Buffer)},{"./mgf":122,"./withPublic":125,"./xor":126,"bn.js":"BN","browserify-rsa":38,buffer:48,"create-hash":52,"parse-asn1":113}],124:[function(t,e,r){(function(r){var n=t("parse-asn1"),i=t("randombytes"),o=t("create-hash"),s=t("./mgf"),a=t("./xor"),c=t("bn.js"),u=t("./withPublic"),f=t("browserify-rsa");e.exports=function(t,e,h){var l;l=t.padding?t.padding:h?1:4;var d,p=n(t);if(4===l)d=function(t,e){var n=t.modulus.byteLength(),u=e.length,f=o("sha1").update(new r("")).digest(),h=f.length,l=2*h;if(u>n-l-2)throw new Error("message too long");var d=new r(n-u-l-2);d.fill(0);var p=n-h-1,b=i(h),m=a(r.concat([f,d,new r([1]),e],p),s(b,p)),v=a(b,s(m,h));return new c(r.concat([new r([0]),v,m],n))}(p,e);else if(1===l)d=function(t,e,n){var o,s=e.length,a=t.modulus.byteLength();if(s>a-11)throw new Error("message too long");n?(o=new r(a-s-3)).fill(255):o=function(t,e){var n,o=new r(t),s=0,a=i(2*t),c=0;for(;s=0)throw new Error("data too long for modulus")}return h?f(d,p):u(d,p)}}).call(this,t("buffer").Buffer)},{"./mgf":122,"./withPublic":125,"./xor":126,"bn.js":"BN","browserify-rsa":38,buffer:48,"create-hash":52,"parse-asn1":113,randombytes:127}],125:[function(t,e,r){(function(r){var n=t("bn.js");e.exports=function(t,e){return new r(t.toRed(n.mont(e.modulus)).redPow(new n(e.publicExponent)).fromRed().toArray())}}).call(this,t("buffer").Buffer)},{"bn.js":"BN",buffer:48}],126:[function(t,e,r){e.exports=function(t,e){for(var r=t.length,n=-1;++n65536)throw new Error("requested too many random bytes");var s=new n.Uint8Array(t);t>0&&o.getRandomValues(s);var a=i.from(s.buffer);if("function"==typeof e)return r.nextTick(function(){e(null,a)});return a}:e.exports=function(){throw new Error("Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11")}}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:120,"safe-buffer":130}],128:[function(t,e,r){(function(e,n){function i(){throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11")}var o=t("safe-buffer"),s=t("randombytes"),a=o.Buffer,c=o.kMaxLength,u=n.crypto||n.msCrypto,f=Math.pow(2,32)-1;function h(t,e){if("number"!=typeof t||t!=t)throw new TypeError("offset must be a number");if(t>f||t<0)throw new TypeError("offset must be a uint32");if(t>c||t>e)throw new RangeError("offset out of range")}function l(t,e,r){if("number"!=typeof t||t!=t)throw new TypeError("size must be a number");if(t>f||t<0)throw new TypeError("size must be a uint32");if(t+e>r||t>c)throw new RangeError("buffer too small")}function d(t,r,n,i){if(e.browser){var o=t.buffer,a=new Uint8Array(o,r,n);return u.getRandomValues(a),i?void e.nextTick(function(){i(null,t)}):t}if(!i)return s(n).copy(t,r),t;s(n,function(e,n){if(e)return i(e);n.copy(t,r),i(null,t)})}u&&u.getRandomValues||!e.browser?(r.randomFill=function(t,e,r,i){if(!(a.isBuffer(t)||t instanceof n.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if("function"==typeof e)i=e,e=0,r=t.length;else if("function"==typeof r)i=r,r=t.length-e;else if("function"!=typeof i)throw new TypeError('"cb" argument must be a function');return h(e,t.length),l(r,e,t.length),d(t,e,r,i)},r.randomFillSync=function(t,e,r){void 0===e&&(e=0);if(!(a.isBuffer(t)||t instanceof n.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');h(e,t.length),void 0===r&&(r=t.length-e);return l(r,e,t.length),d(t,e,r)}):(r.randomFill=i,r.randomFillSync=i)}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:120,randombytes:127,"safe-buffer":130}],129:[function(t,e,r){(function(r){var n=t("inherits"),i=t("hash-base");function o(){i.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function s(t,e){return t<>>32-e}function a(t,e,r,n,i,o,a,c){return s(t+(e^r^n)+o+a|0,c)+i|0}function c(t,e,r,n,i,o,a,c){return s(t+(e&r|~e&n)+o+a|0,c)+i|0}function u(t,e,r,n,i,o,a,c){return s(t+((e|~r)^n)+o+a|0,c)+i|0}function f(t,e,r,n,i,o,a,c){return s(t+(e&n|r&~n)+o+a|0,c)+i|0}function h(t,e,r,n,i,o,a,c){return s(t+(e^(r|~n))+o+a|0,c)+i|0}n(o,i),o.prototype._update=function(){for(var t=new Array(16),e=0;e<16;++e)t[e]=this._block.readInt32LE(4*e);var r=this._a,n=this._b,i=this._c,o=this._d,l=this._e;l=a(l,r=a(r,n,i,o,l,t[0],0,11),n,i=s(i,10),o,t[1],0,14),n=a(n=s(n,10),i=a(i,o=a(o,l,r,n,i,t[2],0,15),l,r=s(r,10),n,t[3],0,12),o,l=s(l,10),r,t[4],0,5),o=a(o=s(o,10),l=a(l,r=a(r,n,i,o,l,t[5],0,8),n,i=s(i,10),o,t[6],0,7),r,n=s(n,10),i,t[7],0,9),r=a(r=s(r,10),n=a(n,i=a(i,o,l,r,n,t[8],0,11),o,l=s(l,10),r,t[9],0,13),i,o=s(o,10),l,t[10],0,14),i=a(i=s(i,10),o=a(o,l=a(l,r,n,i,o,t[11],0,15),r,n=s(n,10),i,t[12],0,6),l,r=s(r,10),n,t[13],0,7),l=c(l=s(l,10),r=a(r,n=a(n,i,o,l,r,t[14],0,9),i,o=s(o,10),l,t[15],0,8),n,i=s(i,10),o,t[7],1518500249,7),n=c(n=s(n,10),i=c(i,o=c(o,l,r,n,i,t[4],1518500249,6),l,r=s(r,10),n,t[13],1518500249,8),o,l=s(l,10),r,t[1],1518500249,13),o=c(o=s(o,10),l=c(l,r=c(r,n,i,o,l,t[10],1518500249,11),n,i=s(i,10),o,t[6],1518500249,9),r,n=s(n,10),i,t[15],1518500249,7),r=c(r=s(r,10),n=c(n,i=c(i,o,l,r,n,t[3],1518500249,15),o,l=s(l,10),r,t[12],1518500249,7),i,o=s(o,10),l,t[0],1518500249,12),i=c(i=s(i,10),o=c(o,l=c(l,r,n,i,o,t[9],1518500249,15),r,n=s(n,10),i,t[5],1518500249,9),l,r=s(r,10),n,t[2],1518500249,11),l=c(l=s(l,10),r=c(r,n=c(n,i,o,l,r,t[14],1518500249,7),i,o=s(o,10),l,t[11],1518500249,13),n,i=s(i,10),o,t[8],1518500249,12),n=u(n=s(n,10),i=u(i,o=u(o,l,r,n,i,t[3],1859775393,11),l,r=s(r,10),n,t[10],1859775393,13),o,l=s(l,10),r,t[14],1859775393,6),o=u(o=s(o,10),l=u(l,r=u(r,n,i,o,l,t[4],1859775393,7),n,i=s(i,10),o,t[9],1859775393,14),r,n=s(n,10),i,t[15],1859775393,9),r=u(r=s(r,10),n=u(n,i=u(i,o,l,r,n,t[8],1859775393,13),o,l=s(l,10),r,t[1],1859775393,15),i,o=s(o,10),l,t[2],1859775393,14),i=u(i=s(i,10),o=u(o,l=u(l,r,n,i,o,t[7],1859775393,8),r,n=s(n,10),i,t[0],1859775393,13),l,r=s(r,10),n,t[6],1859775393,6),l=u(l=s(l,10),r=u(r,n=u(n,i,o,l,r,t[13],1859775393,5),i,o=s(o,10),l,t[11],1859775393,12),n,i=s(i,10),o,t[5],1859775393,7),n=f(n=s(n,10),i=f(i,o=u(o,l,r,n,i,t[12],1859775393,5),l,r=s(r,10),n,t[1],2400959708,11),o,l=s(l,10),r,t[9],2400959708,12),o=f(o=s(o,10),l=f(l,r=f(r,n,i,o,l,t[11],2400959708,14),n,i=s(i,10),o,t[10],2400959708,15),r,n=s(n,10),i,t[0],2400959708,14),r=f(r=s(r,10),n=f(n,i=f(i,o,l,r,n,t[8],2400959708,15),o,l=s(l,10),r,t[12],2400959708,9),i,o=s(o,10),l,t[4],2400959708,8),i=f(i=s(i,10),o=f(o,l=f(l,r,n,i,o,t[13],2400959708,9),r,n=s(n,10),i,t[3],2400959708,14),l,r=s(r,10),n,t[7],2400959708,5),l=f(l=s(l,10),r=f(r,n=f(n,i,o,l,r,t[15],2400959708,6),i,o=s(o,10),l,t[14],2400959708,8),n,i=s(i,10),o,t[5],2400959708,6),n=h(n=s(n,10),i=f(i,o=f(o,l,r,n,i,t[6],2400959708,5),l,r=s(r,10),n,t[2],2400959708,12),o,l=s(l,10),r,t[4],2840853838,9),o=h(o=s(o,10),l=h(l,r=h(r,n,i,o,l,t[0],2840853838,15),n,i=s(i,10),o,t[5],2840853838,5),r,n=s(n,10),i,t[9],2840853838,11),r=h(r=s(r,10),n=h(n,i=h(i,o,l,r,n,t[7],2840853838,6),o,l=s(l,10),r,t[12],2840853838,8),i,o=s(o,10),l,t[2],2840853838,13),i=h(i=s(i,10),o=h(o,l=h(l,r,n,i,o,t[10],2840853838,12),r,n=s(n,10),i,t[14],2840853838,5),l,r=s(r,10),n,t[1],2840853838,12),l=h(l=s(l,10),r=h(r,n=h(n,i,o,l,r,t[3],2840853838,13),i,o=s(o,10),l,t[8],2840853838,14),n,i=s(i,10),o,t[11],2840853838,11),n=h(n=s(n,10),i=h(i,o=h(o,l,r,n,i,t[6],2840853838,8),l,r=s(r,10),n,t[15],2840853838,5),o,l=s(l,10),r,t[13],2840853838,6),o=s(o,10);var d=this._a,p=this._b,b=this._c,m=this._d,v=this._e;v=h(v,d=h(d,p,b,m,v,t[5],1352829926,8),p,b=s(b,10),m,t[14],1352829926,9),p=h(p=s(p,10),b=h(b,m=h(m,v,d,p,b,t[7],1352829926,9),v,d=s(d,10),p,t[0],1352829926,11),m,v=s(v,10),d,t[9],1352829926,13),m=h(m=s(m,10),v=h(v,d=h(d,p,b,m,v,t[2],1352829926,15),p,b=s(b,10),m,t[11],1352829926,15),d,p=s(p,10),b,t[4],1352829926,5),d=h(d=s(d,10),p=h(p,b=h(b,m,v,d,p,t[13],1352829926,7),m,v=s(v,10),d,t[6],1352829926,7),b,m=s(m,10),v,t[15],1352829926,8),b=h(b=s(b,10),m=h(m,v=h(v,d,p,b,m,t[8],1352829926,11),d,p=s(p,10),b,t[1],1352829926,14),v,d=s(d,10),p,t[10],1352829926,14),v=f(v=s(v,10),d=h(d,p=h(p,b,m,v,d,t[3],1352829926,12),b,m=s(m,10),v,t[12],1352829926,6),p,b=s(b,10),m,t[6],1548603684,9),p=f(p=s(p,10),b=f(b,m=f(m,v,d,p,b,t[11],1548603684,13),v,d=s(d,10),p,t[3],1548603684,15),m,v=s(v,10),d,t[7],1548603684,7),m=f(m=s(m,10),v=f(v,d=f(d,p,b,m,v,t[0],1548603684,12),p,b=s(b,10),m,t[13],1548603684,8),d,p=s(p,10),b,t[5],1548603684,9),d=f(d=s(d,10),p=f(p,b=f(b,m,v,d,p,t[10],1548603684,11),m,v=s(v,10),d,t[14],1548603684,7),b,m=s(m,10),v,t[15],1548603684,7),b=f(b=s(b,10),m=f(m,v=f(v,d,p,b,m,t[8],1548603684,12),d,p=s(p,10),b,t[12],1548603684,7),v,d=s(d,10),p,t[4],1548603684,6),v=f(v=s(v,10),d=f(d,p=f(p,b,m,v,d,t[9],1548603684,15),b,m=s(m,10),v,t[1],1548603684,13),p,b=s(b,10),m,t[2],1548603684,11),p=u(p=s(p,10),b=u(b,m=u(m,v,d,p,b,t[15],1836072691,9),v,d=s(d,10),p,t[5],1836072691,7),m,v=s(v,10),d,t[1],1836072691,15),m=u(m=s(m,10),v=u(v,d=u(d,p,b,m,v,t[3],1836072691,11),p,b=s(b,10),m,t[7],1836072691,8),d,p=s(p,10),b,t[14],1836072691,6),d=u(d=s(d,10),p=u(p,b=u(b,m,v,d,p,t[6],1836072691,6),m,v=s(v,10),d,t[9],1836072691,14),b,m=s(m,10),v,t[11],1836072691,12),b=u(b=s(b,10),m=u(m,v=u(v,d,p,b,m,t[8],1836072691,13),d,p=s(p,10),b,t[12],1836072691,5),v,d=s(d,10),p,t[2],1836072691,14),v=u(v=s(v,10),d=u(d,p=u(p,b,m,v,d,t[10],1836072691,13),b,m=s(m,10),v,t[0],1836072691,13),p,b=s(b,10),m,t[4],1836072691,7),p=c(p=s(p,10),b=c(b,m=u(m,v,d,p,b,t[13],1836072691,5),v,d=s(d,10),p,t[8],2053994217,15),m,v=s(v,10),d,t[6],2053994217,5),m=c(m=s(m,10),v=c(v,d=c(d,p,b,m,v,t[4],2053994217,8),p,b=s(b,10),m,t[1],2053994217,11),d,p=s(p,10),b,t[3],2053994217,14),d=c(d=s(d,10),p=c(p,b=c(b,m,v,d,p,t[11],2053994217,14),m,v=s(v,10),d,t[15],2053994217,6),b,m=s(m,10),v,t[0],2053994217,14),b=c(b=s(b,10),m=c(m,v=c(v,d,p,b,m,t[5],2053994217,6),d,p=s(p,10),b,t[12],2053994217,9),v,d=s(d,10),p,t[2],2053994217,12),v=c(v=s(v,10),d=c(d,p=c(p,b,m,v,d,t[13],2053994217,9),b,m=s(m,10),v,t[9],2053994217,12),p,b=s(b,10),m,t[7],2053994217,5),p=a(p=s(p,10),b=c(b,m=c(m,v,d,p,b,t[10],2053994217,15),v,d=s(d,10),p,t[14],2053994217,8),m,v=s(v,10),d,t[12],0,8),m=a(m=s(m,10),v=a(v,d=a(d,p,b,m,v,t[15],0,5),p,b=s(b,10),m,t[10],0,12),d,p=s(p,10),b,t[4],0,9),d=a(d=s(d,10),p=a(p,b=a(b,m,v,d,p,t[1],0,12),m,v=s(v,10),d,t[5],0,5),b,m=s(m,10),v,t[8],0,14),b=a(b=s(b,10),m=a(m,v=a(v,d,p,b,m,t[7],0,6),d,p=s(p,10),b,t[6],0,8),v,d=s(d,10),p,t[2],0,13),v=a(v=s(v,10),d=a(d,p=a(p,b,m,v,d,t[13],0,6),b,m=s(m,10),v,t[14],0,5),p,b=s(b,10),m,t[0],0,15),p=a(p=s(p,10),b=a(b,m=a(m,v,d,p,b,t[3],0,13),v,d=s(d,10),p,t[9],0,11),m,v=s(v,10),d,t[11],0,11),m=s(m,10);var y=this._b+i+m|0;this._b=this._c+o+v|0,this._c=this._d+l+d|0,this._d=this._e+r+p|0,this._e=this._a+n+b|0,this._a=y},o.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=new r(20);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t.writeInt32LE(this._e,16),t},e.exports=o}).call(this,t("buffer").Buffer)},{buffer:48,"hash-base":86,inherits:102}],130:[function(t,e,r){var n=t("buffer"),i=n.Buffer;function o(t,e){for(var r in t)e[r]=t[r]}function s(t,e,r){return i(t,e,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(o(n,r),r.Buffer=s),o(i,s),s.from=function(t,e,r){if("number"==typeof t)throw new TypeError("Argument must not be a number");return i(t,e,r)},s.alloc=function(t,e,r){if("number"!=typeof t)throw new TypeError("Argument must be a number");var n=i(t);return void 0!==e?"string"==typeof r?n.fill(e,r):n.fill(e):n.fill(0),n},s.allocUnsafe=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return i(t)},s.allocUnsafeSlow=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return n.SlowBuffer(t)}},{buffer:48}],131:[function(t,e,r){var n=t("safe-buffer").Buffer;function i(t,e){this._block=n.alloc(t),this._finalSize=e,this._blockSize=t,this._len=0}i.prototype.update=function(t,e){"string"==typeof t&&(e=e||"utf8",t=n.from(t,e));for(var r=this._block,i=this._blockSize,o=t.length,s=this._len,a=0;a=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=8*this._len;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var n=(4294967295&r)>>>0,i=(r-n)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var o=this._hash();return t?o.toString(t):o},i.prototype._update=function(){throw new Error("_update must be implemented by subclass")},e.exports=i},{"safe-buffer":130}],132:[function(t,e,r){(r=e.exports=function(t){t=t.toLowerCase();var e=r[t];if(!e)throw new Error(t+" is not supported (we accept pull requests)");return new e}).sha=t("./sha"),r.sha1=t("./sha1"),r.sha224=t("./sha224"),r.sha256=t("./sha256"),r.sha384=t("./sha384"),r.sha512=t("./sha512")},{"./sha":133,"./sha1":134,"./sha224":135,"./sha256":136,"./sha384":137,"./sha512":138}],133:[function(t,e,r){var n=t("inherits"),i=t("./hash"),o=t("safe-buffer").Buffer,s=[1518500249,1859775393,-1894007588,-899497514],a=new Array(80);function c(){this.init(),this._w=a,i.call(this,64,56)}n(c,i),c.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},c.prototype._update=function(t){for(var e,r,n,i,o,a,c=this._w,u=0|this._a,f=0|this._b,h=0|this._c,l=0|this._d,d=0|this._e,p=0;p<16;++p)c[p]=t.readInt32BE(4*p);for(;p<80;++p)c[p]=c[p-3]^c[p-8]^c[p-14]^c[p-16];for(var b=0;b<80;++b){var m=~~(b/20),v=0|((a=u)<<5|a>>>27)+(n=f,i=h,o=l,0===(r=m)?n&i|~n&o:2===r?n&i|n&o|i&o:n^i^o)+d+c[b]+s[m];d=l,l=h,h=(e=f)<<30|e>>>2,f=u,u=v}this._a=u+this._a|0,this._b=f+this._b|0,this._c=h+this._c|0,this._d=l+this._d|0,this._e=d+this._e|0},c.prototype._hash=function(){var t=o.allocUnsafe(20);return t.writeInt32BE(0|this._a,0),t.writeInt32BE(0|this._b,4),t.writeInt32BE(0|this._c,8),t.writeInt32BE(0|this._d,12),t.writeInt32BE(0|this._e,16),t},e.exports=c},{"./hash":131,inherits:102,"safe-buffer":130}],134:[function(t,e,r){var n=t("inherits"),i=t("./hash"),o=t("safe-buffer").Buffer,s=[1518500249,1859775393,-1894007588,-899497514],a=new Array(80);function c(){this.init(),this._w=a,i.call(this,64,56)}n(c,i),c.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},c.prototype._update=function(t){for(var e,r,n,i,o,a,c,u=this._w,f=0|this._a,h=0|this._b,l=0|this._c,d=0|this._d,p=0|this._e,b=0;b<16;++b)u[b]=t.readInt32BE(4*b);for(;b<80;++b)u[b]=(e=u[b-3]^u[b-8]^u[b-14]^u[b-16])<<1|e>>>31;for(var m=0;m<80;++m){var v=~~(m/20),y=0|((c=f)<<5|c>>>27)+(i=h,o=l,a=d,0===(n=v)?i&o|~i&a:2===n?i&o|i&a|o&a:i^o^a)+p+u[m]+s[v];p=d,d=l,l=(r=h)<<30|r>>>2,h=f,f=y}this._a=f+this._a|0,this._b=h+this._b|0,this._c=l+this._c|0,this._d=d+this._d|0,this._e=p+this._e|0},c.prototype._hash=function(){var t=o.allocUnsafe(20);return t.writeInt32BE(0|this._a,0),t.writeInt32BE(0|this._b,4),t.writeInt32BE(0|this._c,8),t.writeInt32BE(0|this._d,12),t.writeInt32BE(0|this._e,16),t},e.exports=c},{"./hash":131,inherits:102,"safe-buffer":130}],135:[function(t,e,r){var n=t("inherits"),i=t("./sha256"),o=t("./hash"),s=t("safe-buffer").Buffer,a=new Array(64);function c(){this.init(),this._w=a,o.call(this,64,56)}n(c,i),c.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},c.prototype._hash=function(){var t=s.allocUnsafe(28);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t},e.exports=c},{"./hash":131,"./sha256":136,inherits:102,"safe-buffer":130}],136:[function(t,e,r){var n=t("inherits"),i=t("./hash"),o=t("safe-buffer").Buffer,s=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],a=new Array(64);function c(){this.init(),this._w=a,i.call(this,64,56)}n(c,i),c.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},c.prototype._update=function(t){for(var e,r,n,i,o,a,c,u=this._w,f=0|this._a,h=0|this._b,l=0|this._c,d=0|this._d,p=0|this._e,b=0|this._f,m=0|this._g,v=0|this._h,y=0;y<16;++y)u[y]=t.readInt32BE(4*y);for(;y<64;++y)u[y]=0|(((r=u[y-2])>>>17|r<<15)^(r>>>19|r<<13)^r>>>10)+u[y-7]+(((e=u[y-15])>>>7|e<<25)^(e>>>18|e<<14)^e>>>3)+u[y-16];for(var g=0;g<64;++g){var _=v+(((c=p)>>>6|c<<26)^(c>>>11|c<<21)^(c>>>25|c<<7))+((a=m)^p&(b^a))+s[g]+u[g]|0,w=0|(((o=f)>>>2|o<<30)^(o>>>13|o<<19)^(o>>>22|o<<10))+((n=f)&(i=h)|l&(n|i));v=m,m=b,b=p,p=d+_|0,d=l,l=h,h=f,f=_+w|0}this._a=f+this._a|0,this._b=h+this._b|0,this._c=l+this._c|0,this._d=d+this._d|0,this._e=p+this._e|0,this._f=b+this._f|0,this._g=m+this._g|0,this._h=v+this._h|0},c.prototype._hash=function(){var t=o.allocUnsafe(32);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t.writeInt32BE(this._h,28),t},e.exports=c},{"./hash":131,inherits:102,"safe-buffer":130}],137:[function(t,e,r){var n=t("inherits"),i=t("./sha512"),o=t("./hash"),s=t("safe-buffer").Buffer,a=new Array(160);function c(){this.init(),this._w=a,o.call(this,128,112)}n(c,i),c.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},c.prototype._hash=function(){var t=s.allocUnsafe(48);function e(e,r,n){t.writeInt32BE(e,n),t.writeInt32BE(r,n+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),t},e.exports=c},{"./hash":131,"./sha512":138,inherits:102,"safe-buffer":130}],138:[function(t,e,r){var n=t("inherits"),i=t("./hash"),o=t("safe-buffer").Buffer,s=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],a=new Array(160);function c(){this.init(),this._w=a,i.call(this,128,112)}function u(t,e,r){return r^t&(e^r)}function f(t,e,r){return t&e|r&(t|e)}function h(t,e){return(t>>>28|e<<4)^(e>>>2|t<<30)^(e>>>7|t<<25)}function l(t,e){return(t>>>14|e<<18)^(t>>>18|e<<14)^(e>>>9|t<<23)}function d(t,e){return t>>>0>>0?1:0}n(c,i),c.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},c.prototype._update=function(t){for(var e,r,n,i,o,a,c,p,b=this._w,m=0|this._ah,v=0|this._bh,y=0|this._ch,g=0|this._dh,_=0|this._eh,w=0|this._fh,k=0|this._gh,x=0|this._hh,E=0|this._al,S=0|this._bl,M=0|this._cl,j=0|this._dl,A=0|this._el,C=0|this._fl,T=0|this._gl,P=0|this._hl,I=0;I<32;I+=2)b[I]=t.readInt32BE(4*I),b[I+1]=t.readInt32BE(4*I+4);for(;I<160;I+=2){var B=b[I-30],F=b[I-30+1],R=((c=B)>>>1|(p=F)<<31)^(c>>>8|p<<24)^c>>>7,O=((o=F)>>>1|(a=B)<<31)^(o>>>8|a<<24)^(o>>>7|a<<25);B=b[I-4],F=b[I-4+1];var N=((n=B)>>>19|(i=F)<<13)^(i>>>29|n<<3)^n>>>6,L=((e=F)>>>19|(r=B)<<13)^(r>>>29|e<<3)^(e>>>6|r<<26),D=b[I-14],q=b[I-14+1],U=b[I-32],z=b[I-32+1],H=O+q|0,K=R+D+d(H,O)|0;K=(K=K+N+d(H=H+L|0,L)|0)+U+d(H=H+z|0,z)|0,b[I]=K,b[I+1]=H}for(var V=0;V<160;V+=2){K=b[V],H=b[V+1];var W=f(m,v,y),X=f(E,S,M),G=h(m,E),$=h(E,m),J=l(_,A),Z=l(A,_),Q=s[V],Y=s[V+1],tt=u(_,w,k),et=u(A,C,T),rt=P+Z|0,nt=x+J+d(rt,P)|0;nt=(nt=(nt=nt+tt+d(rt=rt+et|0,et)|0)+Q+d(rt=rt+Y|0,Y)|0)+K+d(rt=rt+H|0,H)|0;var it=$+X|0,ot=G+W+d(it,$)|0;x=k,P=T,k=w,T=C,w=_,C=A,_=g+nt+d(A=j+rt|0,j)|0,g=y,j=M,y=v,M=S,v=m,S=E,m=nt+ot+d(E=rt+it|0,rt)|0}this._al=this._al+E|0,this._bl=this._bl+S|0,this._cl=this._cl+M|0,this._dl=this._dl+j|0,this._el=this._el+A|0,this._fl=this._fl+C|0,this._gl=this._gl+T|0,this._hl=this._hl+P|0,this._ah=this._ah+m+d(this._al,E)|0,this._bh=this._bh+v+d(this._bl,S)|0,this._ch=this._ch+y+d(this._cl,M)|0,this._dh=this._dh+g+d(this._dl,j)|0,this._eh=this._eh+_+d(this._el,A)|0,this._fh=this._fh+w+d(this._fl,C)|0,this._gh=this._gh+k+d(this._gl,T)|0,this._hh=this._hh+x+d(this._hl,P)|0},c.prototype._hash=function(){var t=o.allocUnsafe(64);function e(e,r,n){t.writeInt32BE(e,n),t.writeInt32BE(r,n+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),e(this._gh,this._gl,48),e(this._hh,this._hl,56),t},e.exports=c},{"./hash":131,inherits:102,"safe-buffer":130}],139:[function(t,e,r){e.exports=i;var n=t("events").EventEmitter;function i(){n.call(this)}t("inherits")(i,n),i.Readable=t("readable-stream/readable.js"),i.Writable=t("readable-stream/writable.js"),i.Duplex=t("readable-stream/duplex.js"),i.Transform=t("readable-stream/transform.js"),i.PassThrough=t("readable-stream/passthrough.js"),i.Stream=i,i.prototype.pipe=function(t,e){var r=this;function i(e){t.writable&&!1===t.write(e)&&r.pause&&r.pause()}function o(){r.readable&&r.resume&&r.resume()}r.on("data",i),t.on("drain",o),t._isStdio||e&&!1===e.end||(r.on("end",a),r.on("close",c));var s=!1;function a(){s||(s=!0,t.end())}function c(){s||(s=!0,"function"==typeof t.destroy&&t.destroy())}function u(t){if(f(),0===n.listenerCount(this,"error"))throw t}function f(){r.removeListener("data",i),t.removeListener("drain",o),r.removeListener("end",a),r.removeListener("close",c),r.removeListener("error",u),t.removeListener("error",u),r.removeListener("end",f),r.removeListener("close",f),t.removeListener("close",f)}return r.on("error",u),t.on("error",u),r.on("end",f),r.on("close",f),t.on("close",f),t.emit("pipe",r),t}},{events:84,inherits:102,"readable-stream/duplex.js":141,"readable-stream/passthrough.js":150,"readable-stream/readable.js":151,"readable-stream/transform.js":152,"readable-stream/writable.js":153}],140:[function(t,e,r){var n={}.toString;e.exports=Array.isArray||function(t){return"[object Array]"==n.call(t)}},{}],141:[function(t,e,r){e.exports=t("./lib/_stream_duplex.js")},{"./lib/_stream_duplex.js":142}],142:[function(t,e,r){var n=t("process-nextick-args"),i=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};e.exports=h;var o=t("core-util-is");o.inherits=t("inherits");var s=t("./_stream_readable"),a=t("./_stream_writable");o.inherits(h,s);for(var c=i(a.prototype),u=0;u0?("string"==typeof e||c.objectMode||Object.getPrototypeOf(e)===u.prototype||(s=e,e=u.from(s)),n?c.endEmitted?t.emit("error",new Error("stream.unshift() after end event")):w(t,c,e,!0):c.ended?t.emit("error",new Error("stream.push() after EOF")):(c.reading=!1,c.decoder&&!r?(e=c.decoder.write(e),c.objectMode||0!==e.length?w(t,c,e,!1):M(t,c)):w(t,c,e,!1))):n||(c.reading=!1));return!(a=c).ended&&(a.needReadable||a.lengthe.highWaterMark&&(e.highWaterMark=((r=t)>=k?r=k:(r--,r|=r>>>1,r|=r>>>2,r|=r>>>4,r|=r>>>8,r|=r>>>16,r++),r)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0));var r}function E(t){var e=t._readableState;e.needReadable=!1,e.emittedReadable||(d("emitReadable",e.flowing),e.emittedReadable=!0,e.sync?i(S,t):S(t))}function S(t){d("emit readable"),t.emit("readable"),T(t)}function M(t,e){e.readingMore||(e.readingMore=!0,i(j,t,e))}function j(t,e){for(var r=e.length;!e.reading&&!e.flowing&&!e.ended&&e.length=e.length?(r=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.head.data:e.buffer.concat(e.length),e.buffer.clear()):r=function(t,e,r){var n;to.length?o.length:t;if(s===o.length?i+=o:i+=o.slice(0,t),0===(t-=s)){s===o.length?(++n,r.next?e.head=r.next:e.head=e.tail=null):(e.head=r,r.data=o.slice(s));break}++n}return e.length-=n,i}(t,e):function(t,e){var r=u.allocUnsafe(t),n=e.head,i=1;n.data.copy(r),t-=n.data.length;for(;n=n.next;){var o=n.data,s=t>o.length?o.length:t;if(o.copy(r,r.length-t,0,s),0===(t-=s)){s===o.length?(++i,n.next?e.head=n.next:e.head=e.tail=null):(e.head=n,n.data=o.slice(s));break}++i}return e.length-=i,r}(t,e);return n}(t,e.buffer,e.decoder),r);var r}function I(t){var e=t._readableState;if(e.length>0)throw new Error('"endReadable()" called on non-empty stream');e.endEmitted||(e.ended=!0,i(B,e,t))}function B(t,e){t.endEmitted||0!==t.length||(t.endEmitted=!0,e.readable=!1,e.emit("end"))}function F(t,e){for(var r=0,n=t.length;r=e.highWaterMark||e.ended))return d("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?I(this):E(this),null;if(0===(t=x(t,e))&&e.ended)return 0===e.length&&I(this),null;var n,i=e.needReadable;return d("need readable",i),(0===e.length||e.length-t0?P(t,e):null)?(e.needReadable=!0,t=0):e.length-=t,0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&I(this)),null!==n&&this.emit("data",n),n},g.prototype._read=function(t){this.emit("error",new Error("_read() is not implemented"))},g.prototype.pipe=function(t,e){var n=this,o=this._readableState;switch(o.pipesCount){case 0:o.pipes=t;break;case 1:o.pipes=[o.pipes,t];break;default:o.pipes.push(t)}o.pipesCount+=1,d("pipe count=%d opts=%j",o.pipesCount,e);var c=(!e||!1!==e.end)&&t!==r.stdout&&t!==r.stderr?f:_;function u(e,r){d("onunpipe"),e===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,d("cleanup"),t.removeListener("close",y),t.removeListener("finish",g),t.removeListener("drain",l),t.removeListener("error",v),t.removeListener("unpipe",u),n.removeListener("end",f),n.removeListener("end",_),n.removeListener("data",m),p=!0,!o.awaitDrain||t._writableState&&!t._writableState.needDrain||l())}function f(){d("onend"),t.end()}o.endEmitted?i(c):n.once("end",c),t.on("unpipe",u);var h,l=(h=n,function(){var t=h._readableState;d("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&a(h,"data")&&(t.flowing=!0,T(h))});t.on("drain",l);var p=!1;var b=!1;function m(e){d("ondata"),b=!1,!1!==t.write(e)||b||((1===o.pipesCount&&o.pipes===t||o.pipesCount>1&&-1!==F(o.pipes,t))&&!p&&(d("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,b=!0),n.pause())}function v(e){d("onerror",e),_(),t.removeListener("error",v),0===a(t,"error")&&t.emit("error",e)}function y(){t.removeListener("finish",g),_()}function g(){d("onfinish"),t.removeListener("close",y),_()}function _(){d("unpipe"),n.unpipe(t)}return n.on("data",m),function(t,e,r){if("function"==typeof t.prependListener)return t.prependListener(e,r);t._events&&t._events[e]?s(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]:t.on(e,r)}(t,"error",v),t.once("close",y),t.once("finish",g),t.emit("pipe",n),o.flowing||(d("pipe resume"),n.resume()),t},g.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes?this:(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r),this);if(!t){var n=e.pipes,i=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var o=0;o-1?setImmediate:i;v.WritableState=m;var c=t("core-util-is");c.inherits=t("inherits");var u={deprecate:t("util-deprecate")},f=t("./internal/streams/stream"),h=t("safe-buffer").Buffer,l=n.Uint8Array||function(){};var d,p=t("./internal/streams/destroy");function b(){}function m(e,r){s=s||t("./_stream_duplex"),e=e||{},this.objectMode=!!e.objectMode,r instanceof s&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var n=e.highWaterMark,c=this.objectMode?16:16384;this.highWaterMark=n||0===n?n:c,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var u=!1===e.decodeStrings;this.decodeStrings=!u,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){!function(t,e){var r=t._writableState,n=r.sync,o=r.writecb;if(d=r,d.writing=!1,d.writecb=null,d.length-=d.writelen,d.writelen=0,e)c=t,u=r,f=n,h=e,l=o,--u.pendingcb,f?(i(l,h),i(x,c,u),c._writableState.errorEmitted=!0,c.emit("error",h)):(l(h),c._writableState.errorEmitted=!0,c.emit("error",h),x(c,u));else{var s=w(r);s||r.corked||r.bufferProcessing||!r.bufferedRequest||_(t,r),n?a(g,t,r,s,o):g(t,r,s,o)}var c,u,f,h,l;var d}(r,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new o(this)}function v(e){if(s=s||t("./_stream_duplex"),!(d.call(v,this)||this instanceof s))return new v(e);this._writableState=new m(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),f.call(this)}function y(t,e,r,n,i,o,s){e.writelen=n,e.writecb=s,e.writing=!0,e.sync=!0,r?t._writev(i,e.onwrite):t._write(i,o,e.onwrite),e.sync=!1}function g(t,e,r,n){var i,o;r||(i=t,0===(o=e).length&&o.needDrain&&(o.needDrain=!1,i.emit("drain"))),e.pendingcb--,n(),x(t,e)}function _(t,e){e.bufferProcessing=!0;var r=e.bufferedRequest;if(t._writev&&r&&r.next){var n=e.bufferedRequestCount,i=new Array(n),s=e.corkedRequestsFree;s.entry=r;for(var a=0,c=!0;r;)i[a]=r,r.isBuf||(c=!1),r=r.next,a+=1;i.allBuffers=c,y(t,e,!0,e.length,i,"",s.finish),e.pendingcb++,e.lastBufferedRequest=null,s.next?(e.corkedRequestsFree=s.next,s.next=null):e.corkedRequestsFree=new o(e)}else{for(;r;){var u=r.chunk,f=r.encoding,h=r.callback;if(y(t,e,!1,e.objectMode?1:u.length,u,f,h),r=r.next,e.writing)break}null===r&&(e.lastBufferedRequest=null)}e.bufferedRequestCount=0,e.bufferedRequest=r,e.bufferProcessing=!1}function w(t){return t.ending&&0===t.length&&null===t.bufferedRequest&&!t.finished&&!t.writing}function k(t,e){t._final(function(r){e.pendingcb--,r&&t.emit("error",r),e.prefinished=!0,t.emit("prefinish"),x(t,e)})}function x(t,e){var r,n,o=w(e);return o&&(r=t,(n=e).prefinished||n.finalCalled||("function"==typeof r._final?(n.pendingcb++,n.finalCalled=!0,i(k,r,n)):(n.prefinished=!0,r.emit("prefinish"))),0===e.pendingcb&&(e.finished=!0,t.emit("finish"))),o}c.inherits(v,f),m.prototype.getBuffer=function(){for(var t=this.bufferedRequest,e=[];t;)e.push(t),t=t.next;return e},function(){try{Object.defineProperty(m.prototype,"buffer",{get:u.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(t){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(d=Function.prototype[Symbol.hasInstance],Object.defineProperty(v,Symbol.hasInstance,{value:function(t){return!!d.call(this,t)||t&&t._writableState instanceof m}})):d=function(t){return t instanceof this},v.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},v.prototype.write=function(t,e,r){var n,o,s,a,c,u,f,d,p,m,v,g=this._writableState,_=!1,w=(n=t,(h.isBuffer(n)||n instanceof l)&&!g.objectMode);return w&&!h.isBuffer(t)&&(o=t,t=h.from(o)),"function"==typeof e&&(r=e,e=null),w?e="buffer":e||(e=g.defaultEncoding),"function"!=typeof r&&(r=b),g.ended?(p=this,m=r,v=new Error("write after end"),p.emit("error",v),i(m,v)):(w||(s=this,a=g,u=r,f=!0,d=!1,null===(c=t)?d=new TypeError("May not write null values to stream"):"string"==typeof c||void 0===c||a.objectMode||(d=new TypeError("Invalid non-string/buffer chunk")),d&&(s.emit("error",d),i(u,d),f=!1),f))&&(g.pendingcb++,_=function(t,e,r,n,i,o){if(!r){var s=function(t,e,r){t.objectMode||!1===t.decodeStrings||"string"!=typeof e||(e=h.from(e,r));return e}(e,n,i);n!==s&&(r=!0,i="buffer",n=s)}var a=e.objectMode?1:n.length;e.length+=a;var c=e.length-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this},v.prototype._write=function(t,e,r){r(new Error("_write() is not implemented"))},v.prototype._writev=null,v.prototype.end=function(t,e,r){var n=this._writableState;"function"==typeof t?(r=t,t=null,e=null):"function"==typeof e&&(r=e,e=null),null!==t&&void 0!==t&&this.write(t,e),n.corked&&(n.corked=1,this.uncork()),n.ending||n.finished||function(t,e,r){e.ending=!0,x(t,e),r&&(e.finished?i(r):t.once("finish",r));e.ended=!0,t.writable=!1}(this,n,r)},Object.defineProperty(v.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),v.prototype.destroy=p.destroy,v.prototype._undestroy=p.undestroy,v.prototype._destroy=function(t,e){this.end(),e(t)}}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./_stream_duplex":142,"./internal/streams/destroy":148,"./internal/streams/stream":149,_process:120,"core-util-is":50,inherits:102,"process-nextick-args":119,"safe-buffer":130,"util-deprecate":155}],147:[function(t,e,r){var n=t("safe-buffer").Buffer;e.exports=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.head=null,this.tail=null,this.length=0}return t.prototype.push=function(t){var e={data:t,next:null};this.length>0?this.tail.next=e:this.head=e,this.tail=e,++this.length},t.prototype.unshift=function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length},t.prototype.shift=function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}},t.prototype.clear=function(){this.head=this.tail=null,this.length=0},t.prototype.join=function(t){if(0===this.length)return"";for(var e=this.head,r=""+e.data;e=e.next;)r+=t+e.data;return r},t.prototype.concat=function(t){if(0===this.length)return n.alloc(0);if(1===this.length)return this.head.data;for(var e,r,i,o=n.allocUnsafe(t>>>0),s=this.head,a=0;s;)e=s.data,r=o,i=a,e.copy(r,i),a+=s.data.length,s=s.next;return o},t}()},{"safe-buffer":130}],148:[function(t,e,r){var n=t("process-nextick-args");function i(t,e){t.emit("error",e)}e.exports={destroy:function(t,e){var r=this,o=this._readableState&&this._readableState.destroyed,s=this._writableState&&this._writableState.destroyed;o||s?e?e(t):!t||this._writableState&&this._writableState.errorEmitted||n(i,this,t):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,function(t){!e&&t?(n(i,r,t),r._writableState&&(r._writableState.errorEmitted=!0)):e&&e(t)}))},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},{"process-nextick-args":119}],149:[function(t,e,r){e.exports=t("events").EventEmitter},{events:84}],150:[function(t,e,r){e.exports=t("./readable").PassThrough},{"./readable":151}],151:[function(t,e,r){(r=e.exports=t("./lib/_stream_readable.js")).Stream=r,r.Readable=r,r.Writable=t("./lib/_stream_writable.js"),r.Duplex=t("./lib/_stream_duplex.js"),r.Transform=t("./lib/_stream_transform.js"),r.PassThrough=t("./lib/_stream_passthrough.js")},{"./lib/_stream_duplex.js":142,"./lib/_stream_passthrough.js":143,"./lib/_stream_readable.js":144,"./lib/_stream_transform.js":145,"./lib/_stream_writable.js":146}],152:[function(t,e,r){e.exports=t("./readable").Transform},{"./readable":151}],153:[function(t,e,r){e.exports=t("./lib/_stream_writable.js")},{"./lib/_stream_writable.js":146}],154:[function(t,e,r){arguments[4][46][0].apply(r,arguments)},{dup:46,"safe-buffer":130}],155:[function(t,e,r){(function(t){function r(e){try{if(!t.localStorage)return!1}catch(t){return!1}var r=t.localStorage[e];return null!=r&&"true"===String(r).toLowerCase()}e.exports=function(t,e){if(r("noDeprecation"))return t;var n=!1;return function(){if(!n){if(r("throwDeprecation"))throw new Error(e);r("traceDeprecation")?console.trace(e):console.warn(e),n=!0}return t.apply(this,arguments)}}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],156:[function(require,module,exports){var indexOf=require("indexof"),Object_keys=function(t){if(Object.keys)return Object.keys(t);var e=[];for(var r in t)e.push(r);return e},forEach=function(t,e){if(t.forEach)return t.forEach(e);for(var r=0;r>6|192);else{if(i>55295&&i<56320){if(++n==t.length)return null;var o=t.charCodeAt(n);if(o<56320||o>57343)return null;r+=e((i=65536+((1023&i)<<10)+(1023&o))>>18|240),r+=e(i>>12&63|128)}else r+=e(i>>12|224);r+=e(i>>6&63|128)}r+=e(63&i|128)}}return r},toString:function(t){for(var e="",r=0,o=i(t);r127){if(s>191&&s<224){if(r>=o)return null;s=(31&s)<<6|63&n(t,r)}else if(s>223&&s<240){if(r+1>=o)return null;s=(15&s)<<12|(63&n(t,r))<<6|63&n(t,++r)}else{if(!(s>239&&s<248))return null;if(r+2>=o)return null;s=(7&s)<<18|(63&n(t,r))<<12|(63&n(t,++r))<<6|63&n(t,++r)}++r}if(s<=65535)e+=String.fromCharCode(s);else{if(!(s<=1114111))return null;s-=65536,e+=String.fromCharCode(s>>10|55296),e+=String.fromCharCode(1023&s|56320)}}return e},fromNumber:function(t){var e=t.toString(16);return e.length%2==0?"0x"+e:"0x0"+e},toNumber:function(t){return parseInt(t.slice(2),16)},fromNat:function(t){return"0x0"===t?"0x":t.length%2==0?t:"0x0"+t.slice(2)},toNat:function(t){return"0"===t[2]?"0x"+t.slice(3):t},fromArray:s,toArray:o,fromUint8Array:function(t){return s([].slice.call(t,0))},toUint8Array:function(t){return new Uint8Array(o(t))}}},{"./array.js":157}],159:[function(t,e,r){var n="0123456789abcdef".split(""),i=[1,256,65536,16777216],o=[0,8,16,24],s=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],a=function(t){var e,r,n,i,o,a,c,u,f,h,l,d,p,b,m,v,y,g,_,w,k,x,E,S,M,j,A,C,T,P,I,B,F,R,O,N,L,D,q,U,z,H,K,V,W,X,G,$,J,Z,Q,Y,tt,et,rt,nt,it,ot,st,at,ct,ut,ft;for(n=0;n<48;n+=2)i=t[0]^t[10]^t[20]^t[30]^t[40],o=t[1]^t[11]^t[21]^t[31]^t[41],a=t[2]^t[12]^t[22]^t[32]^t[42],c=t[3]^t[13]^t[23]^t[33]^t[43],u=t[4]^t[14]^t[24]^t[34]^t[44],f=t[5]^t[15]^t[25]^t[35]^t[45],h=t[6]^t[16]^t[26]^t[36]^t[46],l=t[7]^t[17]^t[27]^t[37]^t[47],e=(d=t[8]^t[18]^t[28]^t[38]^t[48])^(a<<1|c>>>31),r=(p=t[9]^t[19]^t[29]^t[39]^t[49])^(c<<1|a>>>31),t[0]^=e,t[1]^=r,t[10]^=e,t[11]^=r,t[20]^=e,t[21]^=r,t[30]^=e,t[31]^=r,t[40]^=e,t[41]^=r,e=i^(u<<1|f>>>31),r=o^(f<<1|u>>>31),t[2]^=e,t[3]^=r,t[12]^=e,t[13]^=r,t[22]^=e,t[23]^=r,t[32]^=e,t[33]^=r,t[42]^=e,t[43]^=r,e=a^(h<<1|l>>>31),r=c^(l<<1|h>>>31),t[4]^=e,t[5]^=r,t[14]^=e,t[15]^=r,t[24]^=e,t[25]^=r,t[34]^=e,t[35]^=r,t[44]^=e,t[45]^=r,e=u^(d<<1|p>>>31),r=f^(p<<1|d>>>31),t[6]^=e,t[7]^=r,t[16]^=e,t[17]^=r,t[26]^=e,t[27]^=r,t[36]^=e,t[37]^=r,t[46]^=e,t[47]^=r,e=h^(i<<1|o>>>31),r=l^(o<<1|i>>>31),t[8]^=e,t[9]^=r,t[18]^=e,t[19]^=r,t[28]^=e,t[29]^=r,t[38]^=e,t[39]^=r,t[48]^=e,t[49]^=r,b=t[0],m=t[1],X=t[11]<<4|t[10]>>>28,G=t[10]<<4|t[11]>>>28,C=t[20]<<3|t[21]>>>29,T=t[21]<<3|t[20]>>>29,at=t[31]<<9|t[30]>>>23,ct=t[30]<<9|t[31]>>>23,H=t[40]<<18|t[41]>>>14,K=t[41]<<18|t[40]>>>14,R=t[2]<<1|t[3]>>>31,O=t[3]<<1|t[2]>>>31,v=t[13]<<12|t[12]>>>20,y=t[12]<<12|t[13]>>>20,$=t[22]<<10|t[23]>>>22,J=t[23]<<10|t[22]>>>22,P=t[33]<<13|t[32]>>>19,I=t[32]<<13|t[33]>>>19,ut=t[42]<<2|t[43]>>>30,ft=t[43]<<2|t[42]>>>30,et=t[5]<<30|t[4]>>>2,rt=t[4]<<30|t[5]>>>2,N=t[14]<<6|t[15]>>>26,L=t[15]<<6|t[14]>>>26,g=t[25]<<11|t[24]>>>21,_=t[24]<<11|t[25]>>>21,Z=t[34]<<15|t[35]>>>17,Q=t[35]<<15|t[34]>>>17,B=t[45]<<29|t[44]>>>3,F=t[44]<<29|t[45]>>>3,S=t[6]<<28|t[7]>>>4,M=t[7]<<28|t[6]>>>4,nt=t[17]<<23|t[16]>>>9,it=t[16]<<23|t[17]>>>9,D=t[26]<<25|t[27]>>>7,q=t[27]<<25|t[26]>>>7,w=t[36]<<21|t[37]>>>11,k=t[37]<<21|t[36]>>>11,Y=t[47]<<24|t[46]>>>8,tt=t[46]<<24|t[47]>>>8,V=t[8]<<27|t[9]>>>5,W=t[9]<<27|t[8]>>>5,j=t[18]<<20|t[19]>>>12,A=t[19]<<20|t[18]>>>12,ot=t[29]<<7|t[28]>>>25,st=t[28]<<7|t[29]>>>25,U=t[38]<<8|t[39]>>>24,z=t[39]<<8|t[38]>>>24,x=t[48]<<14|t[49]>>>18,E=t[49]<<14|t[48]>>>18,t[0]=b^~v&g,t[1]=m^~y&_,t[10]=S^~j&C,t[11]=M^~A&T,t[20]=R^~N&D,t[21]=O^~L&q,t[30]=V^~X&$,t[31]=W^~G&J,t[40]=et^~nt&ot,t[41]=rt^~it&st,t[2]=v^~g&w,t[3]=y^~_&k,t[12]=j^~C&P,t[13]=A^~T&I,t[22]=N^~D&U,t[23]=L^~q&z,t[32]=X^~$&Z,t[33]=G^~J&Q,t[42]=nt^~ot&at,t[43]=it^~st&ct,t[4]=g^~w&x,t[5]=_^~k&E,t[14]=C^~P&B,t[15]=T^~I&F,t[24]=D^~U&H,t[25]=q^~z&K,t[34]=$^~Z&Y,t[35]=J^~Q&tt,t[44]=ot^~at&ut,t[45]=st^~ct&ft,t[6]=w^~x&b,t[7]=k^~E&m,t[16]=P^~B&S,t[17]=I^~F&M,t[26]=U^~H&R,t[27]=z^~K&O,t[36]=Z^~Y&V,t[37]=Q^~tt&W,t[46]=at^~ut&et,t[47]=ct^~ft&rt,t[8]=x^~b&v,t[9]=E^~m&y,t[18]=B^~S&j,t[19]=F^~M&A,t[28]=H^~R&N,t[29]=K^~O&L,t[38]=Y^~V&X,t[39]=tt^~W&G,t[48]=ut^~et&nt,t[49]=ft^~rt&it,t[0]^=s[n],t[1]^=s[n+1]},c=function(t){return function(e){var r,s,c;if("0x"===e.slice(0,2)){r=[];for(var u=2,f=e.length;u>2]|=e[d]<>2]|=r<>2]|=(192|r>>6)<>2]|=(128|63&r)<=57344?(c[m>>2]|=(224|r>>12)<>2]|=(128|r>>6&63)<>2]|=(128|63&r)<>2]|=(240|r>>18)<>2]|=(128|r>>12&63)<>2]|=(128|r>>6&63)<>2]|=(128|63&r)<=u){for(t.start=m-u,t.block=c[f],m=0;m>2]|=i[3&m],t.lastByteIndex===u)for(c[0]=c[f],m=1;m>4&15]+n[15&p]+n[p>>12&15]+n[p>>8&15]+n[p>>20&15]+n[p>>16&15]+n[p>>28&15]+n[p>>24&15];v%f==0&&(a(l),m=0)}return"0x"+b}({blocks:[],reset:!0,block:0,start:0,blockCount:1600-((s=t)<<1)>>5,outputBlocks:s>>5,s:(c=[0,0,0,0,0,0,0,0,0,0],[].concat(c,c,c,c,c))},r)}};e.exports={keccak256:c(256),keccak512:c(512),keccak256s:c(256),keccak512s:c(512)}},{}],160:[function(t,e,r){var n=t("is-function");e.exports=function(t,e,r){if(!n(e))throw new TypeError("iterator must be a function");arguments.length<3&&(r=this);"[object Array]"===i.call(t)?function(t,e,r){for(var n=0,i=t.length;n0){var s=i.join(r,o);n.push(g(t)(e[o])(s))}return Promise.all(n).then(function(){return r})})}}},w=function(t){return function(e){return c(t+"/bzzr:/",{body:"string"==typeof e?N(e):e,method:"POST"})}},k=function(t){return function(e){return function(r){return function(n){return function i(o){var s="/"===r[0]?r:"/"+r,a=t+"/bzz:/"+e+s,u={method:"PUT",headers:{"Content-Type":n.type},body:n.data};return c(a,u).then(function(t){if(-1!==t.indexOf("error"))throw t;return t}).catch(function(t){return o>0&&i(o-1)})}(3)}}}},x=function(t){return function(e){return S(t)({"":e})}},E=function(t){return function(r){return e.readFile(r).then(function(e){return x(t)({type:s.lookup(r),data:e})})}},S=function(t){return function(e){return w(t)("{}").then(function(r){return Object.keys(e).reduce(function(r,n){return r.then((i=n,function(r){return k(t)(r)(i)(e[i])}));var i},Promise.resolve(r))})}},M=function(t){return function(r){return e.readFile(r).then(w(t))}},j=function(t){return function(n){return function(i){return r.directoryTree(i).then(function(t){return Promise.all(t.map(function(t){return e.readFile(t)})).then(function(e){var r=t.map(function(t){return t.slice(i.length)}),n=t.map(function(t){return s.lookup(t)||"text/plain"});return d(r)(e.map(function(t,e){return{type:n[e],data:t}}))})}).then(function(t){return(e=n?{"":t[n]}:{},function(t){var r={};for(var n in e)r[n]=e[n];for(var i in t)r[i]=t[i];return r})(t);var e}).then(S(t))}}},A=function(t){return function(e){if("data"===e.pick)return l.data().then(w(t));if("file"===e.pick)return l.file().then(x(t));if("directory"===e.pick)return l.directory().then(S(t));if(e.path)switch(e.kind){case"data":return M(t)(e.path);case"file":return E(t)(e.path);case"directory":return j(t)(e.defaultFile)(e.path)}else{if(e.length||"string"==typeof e)return w(t)(e);if(e instanceof Object)return S(t)(e)}return Promise.reject(new Error("Bad arguments"))}},C=function(t){return function(e){return function(r){return F(t)(e).then(function(n){return n?r?_(t)(e)(r):y(t)(e):r?g(t)(e)(r):b(t)(e)})}}},T=function(t,e){var i=n.platform().replace("win32","windows")+"-"+("x64"===n.arch()?"amd64":"386"),o=(e||a)[i],s=u+o.archive+".tar.gz",c=o.archiveMD5,f=o.binaryMD5;return r.safeDownloadArchived(s)(c)(f)(t)},P=function(t){return new Promise(function(e,r){var n=o.spawn,i=function(t){return function(e){return-1!==(""+e).indexOf(t)}},s=t.account,a=t.password,c=t.dataDir,u=t.ensApi,f=t.privateKey,h=0,l=n(t.binPath,["--bzzaccount",s||f,"--datadir",c,"--ens-api",u]),d=function(t){0===h&&i("Passphrase")(t)?setTimeout(function(){h=1,l.stdin.write(a+"\n")},500):i("Swarm http proxy started")(t)&&(h=2,clearTimeout(p),e(l))};l.stdout.on("data",d),l.stderr.on("data",d);var p=setTimeout(function(){return r(new Error("Couldn't start swarm process."))},2e4)})},I=function(t){return new Promise(function(e,r){t.stderr.removeAllListeners("data"),t.stdout.removeAllListeners("data"),t.stdin.removeAllListeners("error"),t.removeAllListeners("error"),t.removeAllListeners("exit"),t.kill("SIGINT");var n=setTimeout(function(){return t.kill("SIGKILL")},8e3);t.once("close",function(){clearTimeout(n),e()})})},B=function(t){return w(t)("test").then(function(t){return"c9a99c7d326dcc6316f32fe2625b311f6dc49a175e6877681ded93137d3569e7"===t}).catch(function(){return!1})},F=function(t){return function(e){return b(t)(e).then(function(t){try{return!!JSON.parse(O(t)).entries}catch(t){return!1}})}},R=function(t){return function(e,r,n,i,o){var s;return void 0!==e&&(s=t(e)),void 0!==r&&(s=t(r)),void 0!==n&&(s=t(n)),void 0!==i&&(s=t(i)),void 0!==o&&(s=t(o)),s}},O=function(t){return f.toString(f.fromUint8Array(t))},N=function(t){return f.toUint8Array(f.fromString(t))},L=function(t){return{download:function(e,r){return C(t)(e)(r)},downloadData:R(b(t)),downloadDataToDisk:R(g(t)),downloadDirectory:R(y(t)),downloadDirectoryToDisk:R(_(t)),downloadEntries:R(m(t)),downloadRoutes:R(v(t)),isAvailable:function(){return B(t)},upload:function(e){return A(t)(e)},uploadData:R(w(t)),uploadFile:R(x(t)),uploadFileFromDisk:R(x(t)),uploadDataFromDisk:R(M(t)),uploadDirectory:R(S(t)),uploadDirectoryFromDisk:R(j(t)),uploadToManifest:R(k(t)),pick:l,hash:h,fromString:N,toString:O}};return{at:L,local:function(t){return function(e){return B("http://localhost:8500").then(function(r){return r?e(L("http://localhost:8500")).then(function(){}):T(t.binPath,t.archives).onData(function(e){return(t.onProgress||function(){})(e.length)}).then(function(){return P(t)}).then(function(t){return e(L("http://localhost:8500")).then(function(){return t})}).then(I)})}},download:C,downloadBinary:T,downloadData:b,downloadDataToDisk:g,downloadDirectory:y,downloadDirectoryToDisk:_,downloadEntries:m,downloadRoutes:v,isAvailable:B,startProcess:P,stopProcess:I,upload:A,uploadData:w,uploadDataFromDisk:M,uploadFile:x,uploadFileFromDisk:E,uploadDirectory:S,uploadDirectoryFromDisk:j,uploadToManifest:k,pick:l,hash:h,fromString:N,toString:O}}},{}],170:[function(t,e,r){(r=e.exports=function(t){return t.replace(/^\s*|\s*$/g,"")}).left=function(t){return t.replace(/^\s*/,"")},r.right=function(t){return t.replace(/\s*$/,"")}},{}],171:[function(t,e,r){(function(){var t=this,n=t._,i=Array.prototype,o=Object.prototype,s=Function.prototype,a=i.push,c=i.slice,u=o.toString,f=o.hasOwnProperty,h=Array.isArray,l=Object.keys,d=s.bind,p=Object.create,b=function(){},m=function t(e){return e instanceof t?e:this instanceof t?void(this._wrapped=e):new t(e)};void 0!==r?(void 0!==e&&e.exports&&(r=e.exports=m),r._=m):t._=m,m.VERSION="1.8.3";var v=function(t,e,r){if(void 0===e)return t;switch(null==r?3:r){case 1:return function(r){return t.call(e,r)};case 2:return function(r,n){return t.call(e,r,n)};case 3:return function(r,n,i){return t.call(e,r,n,i)};case 4:return function(r,n,i,o){return t.call(e,r,n,i,o)}}return function(){return t.apply(e,arguments)}},y=function(t,e,r){return null==t?m.identity:m.isFunction(t)?v(t,e,r):m.isObject(t)?m.matcher(t):m.property(t)};m.iteratee=function(t,e){return y(t,e,1/0)};var g=function(t,e){return function(r){var n=arguments.length;if(n<2||null==r)return r;for(var i=1;i=0&&e<=k};function S(t){return function(e,r,n,i){r=v(r,i,4);var o=!E(e)&&m.keys(e),s=(o||e).length,a=t>0?0:s-1;return arguments.length<3&&(n=e[o?o[a]:a],a+=t),function(e,r,n,i,o,s){for(;o>=0&&o=0},m.invoke=function(t,e){var r=c.call(arguments,2),n=m.isFunction(e);return m.map(t,function(t){var i=n?e:t[e];return null==i?i:i.apply(t,r)})},m.pluck=function(t,e){return m.map(t,m.property(e))},m.where=function(t,e){return m.filter(t,m.matcher(e))},m.findWhere=function(t,e){return m.find(t,m.matcher(e))},m.max=function(t,e,r){var n,i,o=-1/0,s=-1/0;if(null==e&&null!=t)for(var a=0,c=(t=E(t)?t:m.values(t)).length;ao&&(o=n);else e=y(e,r),m.each(t,function(t,r,n){((i=e(t,r,n))>s||i===-1/0&&o===-1/0)&&(o=t,s=i)});return o},m.min=function(t,e,r){var n,i,o=1/0,s=1/0;if(null==e&&null!=t)for(var a=0,c=(t=E(t)?t:m.values(t)).length;an||void 0===r)return 1;if(r0?0:i-1;o>=0&&o0?s=o>=0?o:Math.max(o+a,s):a=o>=0?Math.min(o+1,a):o+a+1;else if(r&&o&&a)return n[o=r(n,i)]===i?o:-1;if(i!=i)return(o=e(c.call(n,s,a),m.isNaN))>=0?o+s:-1;for(o=t>0?s:a-1;o>=0&&oe?(s&&(clearTimeout(s),s=null),a=u,o=t.apply(n,i),s||(n=i=null)):s||!1===r.trailing||(s=setTimeout(c,f)),o}},m.debounce=function(t,e,r){var n,i,o,s,a,c=function c(){var u=m.now()-s;u=0?n=setTimeout(c,e-u):(n=null,r||(a=t.apply(o,i),n||(o=i=null)))};return function(){o=this,i=arguments,s=m.now();var u=r&&!n;return n||(n=setTimeout(c,e)),u&&(a=t.apply(o,i),o=i=null),a}},m.wrap=function(t,e){return m.partial(e,t)},m.negate=function(t){return function(){return!t.apply(this,arguments)}},m.compose=function(){var t=arguments,e=t.length-1;return function(){for(var r=e,n=t[e].apply(this,arguments);r--;)n=t[r].call(this,n);return n}},m.after=function(t,e){return function(){if(--t<1)return e.apply(this,arguments)}},m.before=function(t,e){var r;return function(){return--t>0&&(r=e.apply(this,arguments)),t<=1&&(e=null),r}},m.once=m.partial(m.before,2);var P=!{toString:null}.propertyIsEnumerable("toString"),I=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];function B(t,e){var r=I.length,n=t.constructor,i=m.isFunction(n)&&n.prototype||o,s="constructor";for(m.has(t,s)&&!m.contains(e,s)&&e.push(s);r--;)(s=I[r])in t&&t[s]!==i[s]&&!m.contains(e,s)&&e.push(s)}m.keys=function(t){if(!m.isObject(t))return[];if(l)return l(t);var e=[];for(var r in t)m.has(t,r)&&e.push(r);return P&&B(t,e),e},m.allKeys=function(t){if(!m.isObject(t))return[];var e=[];for(var r in t)e.push(r);return P&&B(t,e),e},m.values=function(t){for(var e=m.keys(t),r=e.length,n=Array(r),i=0;i":">",'"':""","'":"'","`":"`"},R=m.invert(F),O=function(t){var e=function(e){return t[e]},r="(?:"+m.keys(t).join("|")+")",n=RegExp(r),i=RegExp(r,"g");return function(t){return t=null==t?"":""+t,n.test(t)?t.replace(i,e):t}};m.escape=O(F),m.unescape=O(R),m.result=function(t,e,r){var n=null==t?void 0:t[e];return void 0===n&&(n=r),m.isFunction(n)?n.call(t):n};var N=0;m.uniqueId=function(t){var e=++N+"";return t?t+e:e},m.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var L=/(.)^/,D={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},q=/\\|'|\r|\n|\u2028|\u2029/g,U=function(t){return"\\"+D[t]};m.template=function(t,e,r){!e&&r&&(e=r),e=m.defaults({},e,m.templateSettings);var n=RegExp([(e.escape||L).source,(e.interpolate||L).source,(e.evaluate||L).source].join("|")+"|$","g"),i=0,o="__p+='";t.replace(n,function(e,r,n,s,a){return o+=t.slice(i,a).replace(q,U),i=a+e.length,r?o+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'":n?o+="'+\n((__t=("+n+"))==null?'':__t)+\n'":s&&(o+="';\n"+s+"\n__p+='"),e}),o+="';\n",e.variable||(o="with(obj||{}){\n"+o+"}\n"),o="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+o+"return __p;\n";try{var s=new Function(e.variable||"obj","_",o)}catch(t){throw t.source=o,t}var a=function(t){return s.call(this,t,m)},c=e.variable||"obj";return a.source="function("+c+"){\n"+o+"}",a},m.chain=function(t){var e=m(t);return e._chain=!0,e};var z=function(t,e){return t._chain?m(e).chain():e};m.mixin=function(t){m.each(m.functions(t),function(e){var r=m[e]=t[e];m.prototype[e]=function(){var t=[this._wrapped];return a.apply(t,arguments),z(this,r.apply(m,t))}})},m.mixin(m),m.each(["pop","push","reverse","shift","sort","splice","unshift"],function(t){var e=i[t];m.prototype[t]=function(){var r=this._wrapped;return e.apply(r,arguments),"shift"!==t&&"splice"!==t||0!==r.length||delete r[0],z(this,r)}}),m.each(["concat","join","slice"],function(t){var e=i[t];m.prototype[t]=function(){return z(this,e.apply(this._wrapped,arguments))}}),m.prototype.value=function(){return this._wrapped},m.prototype.valueOf=m.prototype.toJSON=m.prototype.value,m.prototype.toString=function(){return""+this._wrapped},"function"==typeof define&&define.amd&&define("underscore",[],function(){return m})}).call(this)},{}],172:[function(t,e,r){e.exports=function(t,e){if(e){e=(e=e.trim().replace(/^(\?|#|&)/,""))?"?"+e:e;var r=t.split(/[\?\#]/),n=r[0];e&&/\:\/\/[^\/]*$/.test(n)&&(n+="/");var i=t.match(/(\#.*)$/);t=n+e,i&&(t+=i[0])}return t}},{}],173:[function(t,e,r){var n=t("xhr-request");e.exports=function(t,e){return new Promise(function(r,i){n(t,e,function(t,e){t?i(t):r(e)})})}},{"xhr-request":174}],174:[function(t,e,r){var n=t("query-string"),i=t("url-set-query"),o=t("object-assign"),s=t("./lib/ensure-header.js"),a=t("./lib/request.js"),c="application/json",u=function(){};e.exports=function(t,e,r){if(!t||"string"!=typeof t)throw new TypeError("must specify a URL");"function"==typeof e&&(r=e,e={});if(r&&"function"!=typeof r)throw new TypeError("expected cb to be undefined or a function");r=r||u;var f=(e=e||{}).json?"json":"text",h=(e=o({responseType:f},e)).headers||{},l=(e.method||"GET").toUpperCase(),d=e.query;d&&("string"!=typeof d&&(d=n.stringify(d)),t=i(t,d));"json"===e.responseType&&s(h,"Accept",c);e.json&&"GET"!==l&&"HEAD"!==l&&(s(h,"Content-Type",c),e.body=JSON.stringify(e.body));return e.method=l,e.url=t,e.headers=h,delete e.query,delete e.json,a(e,r)}},{"./lib/ensure-header.js":175,"./lib/request.js":177,"object-assign":178,"query-string":164,"url-set-query":172}],175:[function(t,e,r){e.exports=function(t,e,r){var n=e.toLowerCase();t[e]||t[n]||(t[e]=r)}},{}],176:[function(t,e,r){e.exports=function(t,e){return e?{statusCode:e.statusCode,headers:e.headers,method:t.method,url:t.url,rawRequest:e.rawRequest?e.rawRequest:e}:null}},{}],177:[function(t,e,r){var n=t("xhr"),i=t("./normalize-response");e.exports=function(t,e){delete t.uri;var r=!1;"json"===t.responseType&&(t.responseType="text",r=!0);return n(t,function(n,o,s){if(r&&!n)try{var a=o.rawRequest.responseText;s=JSON.parse(a)}catch(t){n=t}o=i(t,o),e(n,n?null:s,o)})}},{"./normalize-response":176,xhr:179}],178:[function(t,e,r){var n=Object.prototype.propertyIsEnumerable;function i(t){var e=Object.getOwnPropertyNames(t);return Object.getOwnPropertySymbols&&(e=e.concat(Object.getOwnPropertySymbols(t))),e.filter(function(e){return n.call(t,e)})}e.exports=Object.assign||function(t,e){for(var r,n,o=function(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}(t),s=1;s0&&(f=setTimeout(function(){if(!a){a=!0,u.abort("timeout");var t=new Error("XMLHttpRequest timeout");t.code="ETIMEDOUT",n(t)}},t.timeout)),u.setRequestHeader)for(s in p)p.hasOwnProperty(s)&&u.setRequestHeader(s,p[s]);else if(t.headers&&!function(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0}(t.headers))throw new Error("Headers cannot be set on an XDomainRequest object");return"responseType"in t&&(u.responseType=t.responseType),"beforeSend"in t&&"function"==typeof t.beforeSend&&t.beforeSend(u),u.send(d||null),u}e.exports=c,c.XMLHttpRequest=n.XMLHttpRequest||function(){},c.XDomainRequest="withCredentials"in new c.XMLHttpRequest?c.XMLHttpRequest:n.XDomainRequest,function(t,e){for(var r=0;r1?(t[r[0]]=t[r[0]]||{},t[r[0]][r[1]]=e):t[r[0]]=e},u.prototype.getCall=function(t){return n.isFunction(this.call)?this.call(t):this.call},u.prototype.extractCallback=function(t){if(n.isFunction(t[t.length-1]))return t.pop()},u.prototype.validateArgs=function(t){if(t.length!==this.params)throw i.InvalidNumberOfParams(t.length,this.params,this.name)},u.prototype.formatInput=function(t){var e=this;return this.inputFormatter?this.inputFormatter.map(function(r,n){return r?r.call(e,t[n]):t[n]}):t},u.prototype.formatOutput=function(t){var e=this;return n.isArray(t)?t.map(function(t){return e.outputFormatter&&t?e.outputFormatter(t):t}):this.outputFormatter&&t?this.outputFormatter(t):t},u.prototype.toPayload=function(t){var e=this.getCall(t),r=this.extractCallback(t),n=this.formatInput(t);this.validateArgs(n);var i={method:e,params:n,callback:r};return this.transformPayload&&(i=this.transformPayload(i)),i},u.prototype._confirmTransaction=function(t,e,r){var i=this,f=!1,h=!0,l=0,d=0,p=null,b=n.isObject(r.params[0])&&r.params[0].gas?r.params[0].gas:null,m=n.isObject(r.params[0])&&r.params[0].data&&r.params[0].from&&!r.params[0].to,v=[new u({name:"getTransactionReceipt",call:"eth_getTransactionReceipt",params:1,inputFormatter:[null],outputFormatter:o.outputTransactionReceiptFormatter}),new u({name:"getCode",call:"eth_getCode",params:2,inputFormatter:[o.inputAddressFormatter,o.inputDefaultBlockNumberFormatter]}),new c({name:"subscribe",type:"eth",subscriptions:{newBlockHeaders:{subscriptionName:"newHeads",params:0,outputFormatter:o.outputBlockFormatter}}})],y={};n.each(v,function(t){t.attachToObject(y),t.requestManager=i.requestManager});var g=function(r,n,o,c){return r?(o.unsubscribe(),f=!0,s._fireError({message:"Failed to subscribe to new newBlockHeaders to confirm the transaction receipts.",data:r},t.eventEmitter,t.reject)):(o||(o={unsubscribe:function(){clearInterval(p)}}),(c?a.resolve(c):y.getTransactionReceipt(e)).catch(function(e){o.unsubscribe(),f=!0,s._fireError({message:"Failed to check for transaction receipt:",data:e},t.eventEmitter,t.reject)}).then(function(e){if(!e||!e.blockHash)throw new Error("Receipt missing or blockHash null");return i.extraFormatters&&i.extraFormatters.receiptFormatter&&(e=i.extraFormatters.receiptFormatter(e)),t.eventEmitter.listeners("confirmation").length>0&&(t.eventEmitter.emit("confirmation",d,e),h=!1,25===++d&&(o.unsubscribe(),t.eventEmitter.removeAllListeners())),e}).then(function(e){if(m&&!f){if(!e.contractAddress)return h&&(o.unsubscribe(),f=!0),s._fireError(new Error("The transaction receipt didn't contain a contract address."),t.eventEmitter,t.reject);y.getCode(e.contractAddress,function(r,n){n&&(n.length>2?(t.eventEmitter.emit("receipt",e),i.extraFormatters&&i.extraFormatters.contractDeployFormatter?t.resolve(i.extraFormatters.contractDeployFormatter(e)):t.resolve(e),h&&t.eventEmitter.removeAllListeners()):s._fireError(new Error("The contract code couldn't be stored, please check your gas limit."),t.eventEmitter,t.reject),h&&o.unsubscribe(),f=!0)})}return e}).then(function(e){m||f||(e.outOfGas||b&&b===e.gasUsed?(e&&(e=JSON.stringify(e,null,2)),s._fireError(new Error("Transaction ran out of gas. Please provide more gas:\n"+e),t.eventEmitter,t.reject)):(t.eventEmitter.emit("receipt",e),t.resolve(e),h&&t.eventEmitter.removeAllListeners()),h&&o.unsubscribe(),f=!0)}).catch(function(){if(++l-1>=50)return o.unsubscribe(),f=!0,s._fireError(new Error("Transaction was not mined within 50 blocks, please make sure your transaction was properly send. Be aware that it might still be mined!"),t.eventEmitter,t.reject)}))},_=function(){n.isFunction(this.requestManager.provider.on)?y.subscribe("newBlockHeaders",g):p=setInterval(g,1e3)}.bind(this);y.getTransactionReceipt(e).then(function(e){if(e&&e.blockHash)return t.eventEmitter.listeners("confirmation").length>0&&setTimeout(function(){f||_()},1e3),g(null,0,null,e);f||_()}).catch(function(){f||_()})};var f=function(t,e){return n.isNumber(t)?e.wallet[t]:n.isObject(t)&&t.address&&t.privateKey?t:e.wallet[t.toLowerCase()]};u.prototype.buildCall=function(){var t=this,e="eth_sendTransaction"===t.call||"eth_sendRawTransaction"===t.call,r=function(){var r=a(!e),i=t.toPayload(Array.prototype.slice.call(arguments)),o=function(n,o){try{o=t.formatOutput(o)}catch(t){n=t}if(o instanceof Error&&(n=o),n)return n.error&&(n=n.error),s._fireError(n,r.eventEmitter,r.reject,i.callback);i.callback&&i.callback(null,o),e?(r.eventEmitter.emit("transactionHash",o),t._confirmTransaction(r,o,i)):n||r.resolve(o)},c=function(e){var r=n.extend({},i,{method:"eth_sendRawTransaction",params:[e.rawTransaction]});t.requestManager.send(r,o)},h=function(t,e){var i;if(e&&e.accounts&&e.accounts.wallet&&e.accounts.wallet.length)if("eth_sendTransaction"===t.method){var s=t.params[0];if((i=f(n.isObject(s)?s.from:null,e.accounts))&&i.privateKey){var a=e.accounts.signTransaction(n.omit(s,"from"),i.privateKey);return n.isFunction(a.then)?a.then(c):c(a)}}else if("eth_sign"===t.method){var u=t.params[1];if((i=f(t.params[0],e.accounts))&&i.privateKey){var h=e.accounts.sign(u,i.privateKey);return t.callback&&t.callback(null,h.signature),void r.resolve(h.signature)}}return e.requestManager.send(t,o)};e&&n.isObject(i.params[0])&&!i.params[0].gasPrice?new u({name:"getGasPrice",call:"eth_gasPrice",params:0}).createFunction(t.requestManager)(function(e,r){r&&(i.params[0].gasPrice=r),h(i,t)}):h(i,t);return r.eventEmitter};return r.method=t,r.request=this.request.bind(this),r},u.prototype.request=function(){var t=this.toPayload(Array.prototype.slice.call(arguments));return t.format=this.formatOutput.bind(this),t},e.exports=u},{underscore:186,"web3-core-helpers":185,"web3-core-promievent":190,"web3-core-subscriptions":198,"web3-utils":383}],188:[function(t,e,r){(function(t,n){!function(t){if("object"==(void 0===r?"undefined":_typeof(r))&&void 0!==e)e.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var i;"undefined"!=typeof window?i=window:void 0!==n?i=n:"undefined"!=typeof self&&(i=self),i.Promise=t()}}(function(){var e,r,i;return function t(e,r,n){function i(s,a){if(!r[s]){if(!e[s]){var c="function"==typeof _dereq_&&_dereq_;if(!a&&c)return c(s,!0);if(o)return o(s,!0);var u=new Error("Cannot find module '"+s+"'");throw u.code="MODULE_NOT_FOUND",u}var f=r[s]={exports:{}};e[s][0].call(f.exports,function(t){var r=e[s][1][t];return i(r||t)},f,f.exports,t,e,r,n)}return r[s].exports}for(var o="function"==typeof _dereq_&&_dereq_,s=0;s0;){var e=t.shift();if("function"==typeof e){var r=t.shift(),n=t.shift();e.call(r,n)}else e._settlePromises()}},c.prototype._drainQueues=function(){this._drainQueue(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,this._drainQueue(this._lateQueue)},c.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},c.prototype._reset=function(){this._isTickUsed=!1},r.exports=c,r.exports.firstLineError=i},{"./queue":26,"./schedule":29,"./util":36}],3:[function(t,e,r){e.exports=function(t,e,r,n){var i=!1,o=function(t,e){this._reject(e)},s=function(t,e){e.promiseRejectionQueued=!0,e.bindingPromise._then(o,o,null,this,t)},a=function(t,e){0==(50397184&this._bitField)&&this._resolveCallback(e.target)},c=function(t,e){e.promiseRejectionQueued||this._reject(t)};t.prototype.bind=function(o){i||(i=!0,t.prototype._propagateFrom=n.propagateFromFunction(),t.prototype._boundValue=n.boundValueFunction());var u=r(o),f=new t(e);f._propagateFrom(this,1);var h=this._target();if(f._setBoundTo(u),u instanceof t){var l={promiseRejectionQueued:!1,promise:f,target:h,bindingPromise:u};h._then(e,s,void 0,f,l),u._then(a,c,void 0,f,l),f._setOnCancel(u)}else f._resolveCallback(h);return f},t.prototype._setBoundTo=function(t){void 0!==t?(this._bitField=2097152|this._bitField,this._boundTo=t):this._bitField=-2097153&this._bitField},t.prototype._isBound=function(){return 2097152==(2097152&this._bitField)},t.bind=function(e,r){return t.resolve(r).bind(e)}}},{}],4:[function(t,e,r){var n;"undefined"!=typeof Promise&&(n=Promise);var i=t("./promise")();i.noConflict=function(){try{Promise===i&&(Promise=n)}catch(t){}return i},e.exports=i},{"./promise":22}],5:[function(t,e,r){var n=Object.create;if(n){var i=n(null),o=n(null);i[" size"]=o[" size"]=0}e.exports=function(e){var r,n=t("./util"),i=n.canEvaluate;n.isIdentifier;function o(t,r){var i;if(null!=t&&(i=t[r]),"function"!=typeof i){var o="Object "+n.classString(t)+" has no method '"+n.toString(r)+"'";throw new e.TypeError(o)}return i}function s(t){return o(t,this.pop()).apply(t,this)}function a(t){return t[this]}function c(t){var e=+this;return e<0&&(e=Math.max(0,e+t.length)),t[e]}e.prototype.call=function(t){var e=[].slice.call(arguments,1);return e.push(t),this._then(s,void 0,void 0,e,void 0)},e.prototype.get=function(t){var e;if("number"==typeof t)e=c;else if(i){var n=r(t);e=null!==n?n:a}else e=a;return this._then(e,void 0,void 0,t,void 0)}}},{"./util":36}],6:[function(t,e,r){e.exports=function(e,r,n,i){var o=t("./util"),s=o.tryCatch,a=o.errorObj,c=e._async;e.prototype.break=e.prototype.cancel=function(){if(!i.cancellation())return this._warn("cancellation is disabled");for(var t=this,e=t;t.isCancellable();){if(!t._cancelBy(e)){e._isFollowing()?e._followee().cancel():e._cancelBranched();break}var r=t._cancellationParent;if(null==r||!r.isCancellable()){t._isFollowing()?t._followee().cancel():t._cancelBranched();break}t._isFollowing()&&t._followee().cancel(),e=t,t=r}},e.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--},e.prototype._enoughBranchesHaveCancelled=function(){return void 0===this._branchesRemainingToCancel||this._branchesRemainingToCancel<=0},e.prototype._cancelBy=function(t){return t===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),!!this._enoughBranchesHaveCancelled()&&(this._invokeOnCancel(),!0))},e.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()},e.prototype._cancel=function(){this.isCancellable()&&(this._setCancelled(),c.invoke(this._cancelPromises,this,void 0))},e.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()},e.prototype._unsetOnCancel=function(){this._onCancelField=void 0},e.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()},e.prototype._doInvokeOnCancel=function(t,e){if(o.isArray(t))for(var r=0;r=0)return r[t]}return t.prototype._promiseCreated=function(){},t.prototype._pushContext=function(){},t.prototype._popContext=function(){return null},t._peekContext=t.prototype._peekContext=function(){},n.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,r.push(this._trace))},n.prototype._popContext=function(){if(void 0!==this._trace){var t=r.pop(),e=t._promiseCreated;return t._promiseCreated=null,e}return null},n.CapturedTrace=null,n.create=function(){if(e)return new n},n.deactivateLongStackTraces=function(){},n.activateLongStackTraces=function(){var r=t.prototype._pushContext,o=t.prototype._popContext,s=t._peekContext,a=t.prototype._peekContext,c=t.prototype._promiseCreated;n.deactivateLongStackTraces=function(){t.prototype._pushContext=r,t.prototype._popContext=o,t._peekContext=s,t.prototype._peekContext=a,t.prototype._promiseCreated=c,e=!1},e=!0,t.prototype._pushContext=n.prototype._pushContext,t.prototype._popContext=n.prototype._popContext,t._peekContext=t.prototype._peekContext=i,t.prototype._promiseCreated=function(){var t=this._peekContext();t&&null==t._promiseCreated&&(t._promiseCreated=this)}},n}},{}],9:[function(e,r,n){r.exports=function(r,n){var i,o,s,a=r._getDomain,c=r._async,u=e("./errors").Warning,f=e("./util"),h=f.canAttachTrace,l=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,d=null,p=null,b=!1,m=!(0==f.env("BLUEBIRD_DEBUG")),v=!(0==f.env("BLUEBIRD_WARNINGS")||!m&&!f.env("BLUEBIRD_WARNINGS")),y=!(0==f.env("BLUEBIRD_LONG_STACK_TRACES")||!m&&!f.env("BLUEBIRD_LONG_STACK_TRACES")),g=0!=f.env("BLUEBIRD_W_FORGOTTEN_RETURN")&&(v||!!f.env("BLUEBIRD_W_FORGOTTEN_RETURN"));r.prototype.suppressUnhandledRejections=function(){var t=this._target();t._bitField=-1048577&t._bitField|524288},r.prototype._ensurePossibleRejectionHandled=function(){0==(524288&this._bitField)&&(this._setRejectionIsUnhandled(),c.invokeLater(this._notifyUnhandledRejection,this,void 0))},r.prototype._notifyUnhandledRejectionIsHandled=function(){U("rejectionHandled",i,void 0,this)},r.prototype._setReturnedNonUndefined=function(){this._bitField=268435456|this._bitField},r.prototype._returnedNonUndefined=function(){return 0!=(268435456&this._bitField)},r.prototype._notifyUnhandledRejection=function(){if(this._isRejectionUnhandled()){var t=this._settledValue();this._setUnhandledRejectionIsNotified(),U("unhandledRejection",o,t,this)}},r.prototype._setUnhandledRejectionIsNotified=function(){this._bitField=262144|this._bitField},r.prototype._unsetUnhandledRejectionIsNotified=function(){this._bitField=-262145&this._bitField},r.prototype._isUnhandledRejectionNotified=function(){return(262144&this._bitField)>0},r.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField},r.prototype._unsetRejectionIsUnhandled=function(){this._bitField=-1048577&this._bitField,this._isUnhandledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())},r.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0},r.prototype._warn=function(t,e,r){return N(t,e,r||this)},r.onPossiblyUnhandledRejection=function(t){var e=a();o="function"==typeof t?null===e?t:e.bind(t):void 0},r.onUnhandledRejectionHandled=function(t){var e=a();i="function"==typeof t?null===e?t:e.bind(t):void 0};var _=function(){};r.longStackTraces=function(){if(c.haveItemsQueued()&&!$.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");if(!$.longStackTraces&&H()){var t=r.prototype._captureStackTrace,e=r.prototype._attachExtraTrace;$.longStackTraces=!0,_=function(){if(c.haveItemsQueued()&&!$.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");r.prototype._captureStackTrace=t,r.prototype._attachExtraTrace=e,n.deactivateLongStackTraces(),c.enableTrampoline(),$.longStackTraces=!1},r.prototype._captureStackTrace=R,r.prototype._attachExtraTrace=O,n.activateLongStackTraces(),c.disableTrampolineIfNecessary()}},r.hasLongStackTraces=function(){return $.longStackTraces&&H()};var w=function(){try{var t=document.createEvent("CustomEvent");return t.initCustomEvent("testingtheevent",!1,!0,{}),f.global.dispatchEvent(t),function(t,e){var r=document.createEvent("CustomEvent");return r.initCustomEvent(t.toLowerCase(),!1,!0,e),!f.global.dispatchEvent(r)}}catch(t){}return function(){return!1}}(),k=f.isNode?function(){return t.emit.apply(t,arguments)}:f.global?function(t){var e="on"+t.toLowerCase(),r=f.global[e];return!!r&&(r.apply(f.global,[].slice.call(arguments,1)),!0)}:function(){return!1};function x(t,e){return{promise:e}}var E={promiseCreated:x,promiseFulfilled:x,promiseRejected:x,promiseResolved:x,promiseCancelled:x,promiseChained:function(t,e,r){return{promise:e,child:r}},warning:function(t,e){return{warning:e}},unhandledRejection:function(t,e,r){return{reason:e,promise:r}},rejectionHandled:x},S=function(t){var e=!1;try{e=k.apply(null,arguments)}catch(t){c.throwLater(t),e=!0}var r=!1;try{r=w(t,E[t].apply(null,arguments))}catch(t){c.throwLater(t),r=!0}return r||e};function M(){return!1}function j(t,e,r){var n=this;try{t(e,r,function(t){if("function"!=typeof t)throw new TypeError("onCancel must be a function, got: "+f.toString(t));n._attachCancellationCallback(t)})}catch(t){return t}}function A(t){if(!this.isCancellable())return this;var e=this._onCancel();void 0!==e?f.isArray(e)?e.push(t):this._setOnCancel([e,t]):this._setOnCancel(t)}function C(){return this._onCancelField}function T(t){this._onCancelField=t}function P(){this._cancellationParent=void 0,this._onCancelField=void 0}function I(t,e){if(0!=(1&e)){this._cancellationParent=t;var r=t._branchesRemainingToCancel;void 0===r&&(r=0),t._branchesRemainingToCancel=r+1}0!=(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}r.config=function(t){if("longStackTraces"in(t=Object(t))&&(t.longStackTraces?r.longStackTraces():!t.longStackTraces&&r.hasLongStackTraces()&&_()),"warnings"in t){var e=t.warnings;$.warnings=!!e,g=$.warnings,f.isObject(e)&&"wForgottenReturn"in e&&(g=!!e.wForgottenReturn)}if("cancellation"in t&&t.cancellation&&!$.cancellation){if(c.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");r.prototype._clearCancellationData=P,r.prototype._propagateFrom=I,r.prototype._onCancel=C,r.prototype._setOnCancel=T,r.prototype._attachCancellationCallback=A,r.prototype._execute=j,B=I,$.cancellation=!0}"monitoring"in t&&(t.monitoring&&!$.monitoring?($.monitoring=!0,r.prototype._fireEvent=S):!t.monitoring&&$.monitoring&&($.monitoring=!1,r.prototype._fireEvent=M))},r.prototype._fireEvent=M,r.prototype._execute=function(t,e,r){try{t(e,r)}catch(t){return t}},r.prototype._onCancel=function(){},r.prototype._setOnCancel=function(t){},r.prototype._attachCancellationCallback=function(t){},r.prototype._captureStackTrace=function(){},r.prototype._attachExtraTrace=function(){},r.prototype._clearCancellationData=function(){},r.prototype._propagateFrom=function(t,e){};var B=function(t,e){0!=(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)};function F(){var t=this._boundTo;return void 0!==t&&t instanceof r?t.isFulfilled()?t.value():void 0:t}function R(){this._trace=new X(this._peekContext())}function O(t,e){if(h(t)){var r=this._trace;if(void 0!==r&&e&&(r=r._parent),void 0!==r)r.attachExtraTrace(t);else if(!t.__stackCleaned__){var n=D(t);f.notEnumerableProp(t,"stack",n.message+"\n"+n.stack.join("\n")),f.notEnumerableProp(t,"__stackCleaned__",!0)}}}function N(t,e,n){if($.warnings){var i,o=new u(t);if(e)n._attachExtraTrace(o);else if($.longStackTraces&&(i=r._peekContext()))i.attachExtraTrace(o);else{var s=D(o);o.stack=s.message+"\n"+s.stack.join("\n")}S("warning",o)||q(o,"",!0)}}function L(t){for(var e=[],r=0;r0?function(t){for(var e=t.stack.replace(/\s+$/g,"").split("\n"),r=0;r0&&(e=e.slice(r)),e}(t):[" (No stack trace)"])}}function q(t,e,r){if("undefined"!=typeof console){var n;if(f.isObject(t)){var i=t.stack;n=e+p(i,t)}else n=e+String(t);"function"==typeof s?s(n,r):"function"!=typeof console.log&&"object"!==_typeof(console.log)||console.log(n)}}function U(t,e,r,n){var i=!1;try{"function"==typeof e&&(i=!0,"rejectionHandled"===t?e(n):e(r,n))}catch(t){c.throwLater(t)}"unhandledRejection"===t?S(t,r,n)||i||q(r,"Unhandled rejection "):S(t,n)}function z(t){var e;if("function"==typeof t)e="[function "+(t.name||"anonymous")+"]";else{e=t&&"function"==typeof t.toString?t.toString():f.toString(t);if(/\[object [a-zA-Z0-9$_]+\]/.test(e))try{e=JSON.stringify(t)}catch(t){}0===e.length&&(e="(empty array)")}return"(<"+function(t){if(t.length<41)return t;return t.substr(0,38)+"..."}(e)+">, no stack trace)"}function H(){return"function"==typeof G}var K=function(){return!1},V=/[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;function W(t){var e=t.match(V);if(e)return{fileName:e[1],line:parseInt(e[2],10)}}function X(t){this._parent=t,this._promisesCreated=0;var e=this._length=1+(void 0===t?0:t._length);G(this,X),e>32&&this.uncycle()}f.inherits(X,Error),n.CapturedTrace=X,X.prototype.uncycle=function(){var t=this._length;if(!(t<2)){for(var e=[],r={},n=0,i=this;void 0!==i;++n)e.push(i),i=i._parent;for(n=(t=this._length=n)-1;n>=0;--n){var o=e[n].stack;void 0===r[o]&&(r[o]=n)}for(n=0;n0&&(e[s-1]._parent=void 0,e[s-1]._length=1),e[n]._parent=void 0,e[n]._length=1;var a=n>0?e[n-1]:this;s=0;--u)e[u]._length=c,c++;return}}}},X.prototype.attachExtraTrace=function(t){if(!t.__stackCleaned__){this.uncycle();for(var e=D(t),r=e.message,n=[e.stack],i=this;void 0!==i;)n.push(L(i.stack.split("\n"))),i=i._parent;!function(t){for(var e=t[0],r=1;r=0;--a)if(n[a]===o){s=a;break}for(a=s;a>=0;--a){var c=n[a];if(e[i]!==c)break;e.pop(),i--}e=n}}(n),function(t){for(var e=0;e=0)return d=/@/,p=e,b=!0,function(t){t.stack=(new Error).stack};try{throw new Error}catch(t){n="stack"in t}return"stack"in i||!n||"number"!=typeof Error.stackTraceLimit?(p=function(t,e){return"string"==typeof t?t:"object"!==(void 0===e?"undefined":_typeof(e))&&"function"!=typeof e||void 0===e.name||void 0===e.message?z(e):e.toString()},null):(d=t,p=e,function(t){Error.stackTraceLimit+=6;try{throw new Error}catch(e){t.stack=e.stack}Error.stackTraceLimit-=6})}();"undefined"!=typeof console&&void 0!==console.warn&&(s=function(t){console.warn(t)},f.isNode&&t.stderr.isTTY?s=function(t,e){var r=e?"":"";console.warn(r+t+"\n")}:f.isNode||"string"!=typeof(new Error).stack||(s=function(t,e){console.warn("%c"+t,e?"color: darkorange":"color: red")}));var $={warnings:v,longStackTraces:!1,cancellation:!1,monitoring:!1};return y&&r.longStackTraces(),{longStackTraces:function(){return $.longStackTraces},warnings:function(){return $.warnings},cancellation:function(){return $.cancellation},monitoring:function(){return $.monitoring},propagateFromFunction:function(){return B},boundValueFunction:function(){return F},checkForgottenReturns:function(t,e,r,n,i){if(void 0===t&&null!==e&&g){if(void 0!==i&&i._returnedNonUndefined())return;r&&(r+=" ");var o="a promise was created in a "+r+"handler but was not returned from it";n._warn(o,!0,e)}},setBounds:function(t,e){if(H()){for(var r,n,i=t.stack.split("\n"),o=e.stack.split("\n"),s=-1,a=-1,c=0;c=a||(K=function(t){if(l.test(t))return!0;var e=W(t);return!!(e&&e.fileName===r&&s<=e.line&&e.line<=a)})}},warn:N,deprecated:function(t,e){var r=t+" is deprecated and will be removed in a future version.";return e&&(r+=" Use "+e+" instead."),N(r)},CapturedTrace:X,fireDomEvent:w,fireGlobalEvent:k}}},{"./errors":12,"./util":36}],10:[function(t,e,r){e.exports=function(t){function e(){return this.value}function r(){throw this.reason}t.prototype.return=t.prototype.thenReturn=function(r){return r instanceof t&&r.suppressUnhandledRejections(),this._then(e,void 0,void 0,{value:r},void 0)},t.prototype.throw=t.prototype.thenThrow=function(t){return this._then(r,void 0,void 0,{reason:t},void 0)},t.prototype.catchThrow=function(t){if(arguments.length<=1)return this._then(void 0,r,void 0,{reason:t},void 0);var e=arguments[1];return this.caught(t,function(){throw e})},t.prototype.catchReturn=function(r){if(arguments.length<=1)return r instanceof t&&r.suppressUnhandledRejections(),this._then(void 0,e,void 0,{value:r},void 0);var n=arguments[1];n instanceof t&&n.suppressUnhandledRejections();return this.caught(r,function(){return n})}}},{}],11:[function(t,e,r){e.exports=function(t,e){var r=t.reduce,n=t.all;function i(){return n(this)}function o(t,n){return r(t,n,e,e)}t.prototype.each=function(t){return this.mapSeries(t)._then(i,void 0,void 0,this,void 0)},t.prototype.mapSeries=function(t){return r(this,t,e,e)},t.each=function(t,e){return o(t,e)._then(i,void 0,void 0,t,void 0)},t.mapSeries=o}},{}],12:[function(t,e,r){var n,i,o=t("./es5"),s=o.freeze,a=t("./util"),c=a.inherits,u=a.notEnumerableProp;function f(t,e){function r(n){if(!(this instanceof r))return new r(n);u(this,"message","string"==typeof n?n:e),u(this,"name",t),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this)}return c(r,Error),r}var h=f("Warning","warning"),l=f("CancellationError","cancellation error"),d=f("TimeoutError","timeout error"),p=f("AggregateError","aggregate error");try{n=TypeError,i=RangeError}catch(t){n=f("TypeError","type error"),i=f("RangeError","range error")}for(var b="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),m=0;m1?t.cancelPromise._reject(e):t.cancelPromise._cancel(),t.cancelPromise=null,!0)}function u(){return h.call(this,this.promise._target()._settledValue())}function f(t){if(!c(this,t))return o.e=t,o}function h(t){var n=this.promise,s=this.handler;if(!this.called){this.called=!0;var h=this.isFinallyHandler()?s.call(n._boundValue()):s.call(n._boundValue(),t);if(void 0!==h){n._setReturnedNonUndefined();var l=r(h,n);if(l instanceof e){if(null!=this.cancelPromise){if(l.isCancelled()){var d=new i("late cancellation observer");return n._attachExtraTrace(d),o.e=d,o}l.isPending()&&l._attachCancellationCallback(new a(this))}return l._then(u,f,void 0,this,void 0)}}}return n.isRejected()?(c(this),o.e=t,o):(c(this),t)}return s.prototype.isFinallyHandler=function(){return 0===this.type},a.prototype._resultCancelled=function(){c(this.finallyHandler)},e.prototype._passThrough=function(t,e,r,n){return"function"!=typeof t?this.then():this._then(r,n,void 0,new s(this,e,t),void 0)},e.prototype.lastly=e.prototype.finally=function(t){return this._passThrough(t,0,h,h)},e.prototype.tap=function(t){return this._passThrough(t,1,h)},s}},{"./util":36}],16:[function(t,e,r){e.exports=function(e,r,n,i,o,s){var a=t("./errors").TypeError,c=t("./util"),u=c.errorObj,f=c.tryCatch,h=[];function l(t,r,i,o){var s=this._promise=new e(n);s._captureStackTrace(),s._setOnCancel(this),this._stack=o,this._generatorFunction=t,this._receiver=r,this._generator=void 0,this._yieldHandlers="function"==typeof i?[i].concat(h):h,this._yieldedPromise=null}c.inherits(l,o),l.prototype._isResolved=function(){return null===this._promise},l.prototype._cleanup=function(){this._promise=this._generator=null},l.prototype._promiseCancelled=function(){if(!this._isResolved()){var t;if(void 0!==this._generator.return)this._promise._pushContext(),t=f(this._generator.return).call(this._generator,void 0),this._promise._popContext();else{var r=new e.CancellationError("generator .return() sentinel");e.coroutine.returnSentinel=r,this._promise._attachExtraTrace(r),this._promise._pushContext(),t=f(this._generator.throw).call(this._generator,r),this._promise._popContext(),t===u&&t.e===r&&(t=null)}var n=this._promise;this._cleanup(),t===u?n._rejectCallback(t.e,!1):n.cancel()}},l.prototype._promiseFulfilled=function(t){this._yieldedPromise=null,this._promise._pushContext();var e=f(this._generator.next).call(this._generator,t);this._promise._popContext(),this._continue(e)},l.prototype._promiseRejected=function(t){this._yieldedPromise=null,this._promise._attachExtraTrace(t),this._promise._pushContext();var e=f(this._generator.throw).call(this._generator,t);this._promise._popContext(),this._continue(e)},l.prototype._resultCancelled=function(){if(this._yieldedPromise instanceof e){var t=this._yieldedPromise;this._yieldedPromise=null,t.cancel()}},l.prototype.promise=function(){return this._promise},l.prototype._run=function(){this._generator=this._generatorFunction.call(this._receiver),this._receiver=this._generatorFunction=void 0,this._promiseFulfilled(void 0)},l.prototype._continue=function(t){var r=this._promise;if(t===u)return this._cleanup(),r._rejectCallback(t.e,!1);var n=t.value;if(!0===t.done)return this._cleanup(),r._resolveCallback(n);var o=i(n,this._promise);if(o instanceof e||null!==(o=function(t,r,n){for(var o=0;o0&&"function"==typeof arguments[e]&&(t=arguments[e]);var n=[].slice.call(arguments);t&&n.pop();var i=new r(n).promise();return void 0!==t?i.spread(t):i}}},{"./util":36}],18:[function(t,e,r){e.exports=function(e,r,n,i,o,s){var a=e._getDomain,c=t("./util"),u=c.tryCatch,f=c.errorObj,h=[];function l(t,e,r,n){this.constructor$(t),this._promise._captureStackTrace();var i=a();this._callback=null===i?e:i.bind(e),this._preservedValues=n===o?new Array(this.length()):null,this._limit=r,this._inFlight=0,this._queue=r>=1?[]:h,this._init$(void 0,-2)}function d(t,e,r,i){if("function"!=typeof e)return n("expecting a function but got "+c.classString(e));var o="object"===(void 0===r?"undefined":_typeof(r))&&null!==r?r.concurrency:0;return new l(t,e,o="number"==typeof o&&isFinite(o)&&o>=1?o:0,i).promise()}c.inherits(l,r),l.prototype._init=function(){},l.prototype._promiseFulfilled=function(t,r){var n=this._values,o=this.length(),a=this._preservedValues,c=this._limit;if(r<0){if(n[r=-1*r-1]=t,c>=1&&(this._inFlight--,this._drainQueue(),this._isResolved()))return!0}else{if(c>=1&&this._inFlight>=c)return n[r]=t,this._queue.push(r),!1;null!==a&&(a[r]=t);var h=this._promise,l=this._callback,d=h._boundValue();h._pushContext();var p=u(l).call(d,t,r,o),b=h._popContext();if(s.checkForgottenReturns(p,b,null!==a?"Promise.filter":"Promise.map",h),p===f)return this._reject(p.e),!0;var m=i(p,this._promise);if(m instanceof e){var v=(m=m._target())._bitField;if(0==(50397184&v))return c>=1&&this._inFlight++,n[r]=m,m._proxy(this,-1*(r+1)),!1;if(0==(33554432&v))return 0!=(16777216&v)?(this._reject(m._reason()),!0):(this._cancel(),!0);p=m._value()}n[r]=p}return++this._totalResolved>=o&&(null!==a?this._filter(n,a):this._resolve(n),!0)},l.prototype._drainQueue=function(){for(var t=this._queue,e=this._limit,r=this._values;t.length>0&&this._inFlight1){o.deprecated("calling Promise.try with more than 1 argument");var u=arguments[1],f=arguments[2];n=s.isArray(u)?a(t).apply(f,u):a(t).call(f,u)}else n=a(t)();var h=c._popContext();return o.checkForgottenReturns(n,h,"Promise.try",c),c._resolveFromSyncValue(n),c},e.prototype._resolveFromSyncValue=function(t){t===s.errorObj?this._rejectCallback(t.e,!1):this._resolveCallback(t,!0)}}},{"./util":36}],20:[function(t,e,r){var n=t("./util"),i=n.maybeWrapAsError,o=t("./errors").OperationalError,s=t("./es5");var a=/^(?:name|message|stack|cause)$/;function c(t){var e,r;if((r=t)instanceof Error&&s.getPrototypeOf(r)===Error.prototype){(e=new o(t)).name=t.name,e.message=t.message,e.stack=t.stack;for(var i=s.keys(t),c=0;c1){var r,n=new Array(e-1),o=0;for(r=0;r0&&"function"!=typeof t&&"function"!=typeof e){var r=".then() only accepts functions but was passed: "+c.classString(t);arguments.length>1&&(r+=", "+c.classString(e)),this._warn(r)}return this._then(t,e,void 0,void 0,void 0)},A.prototype.done=function(t,e){this._then(t,e,void 0,void 0,void 0)._setIsFinal()},A.prototype.spread=function(t){return"function"!=typeof t?i("expecting a function but got "+c.classString(t)):this.all()._then(t,void 0,void 0,m,void 0)},A.prototype.toJSON=function(){var t={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(t.fulfillmentValue=this.value(),t.isFulfilled=!0):this.isRejected()&&(t.rejectionReason=this.reason(),t.isRejected=!0),t},A.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new g(this).promise()},A.prototype.error=function(t){return this.caught(c.originatesFromRejection,t)},A.is=function(t){return t instanceof A},A.fromNode=A.fromCallback=function(t){var e=new A(b);e._captureStackTrace();var r=arguments.length>1&&!!Object(arguments[1]).multiArgs,n=j(t)(S(e,r));return n===M&&e._rejectCallback(n.e,!0),e._isFateSealed()||e._setAsyncGuaranteed(),e},A.all=function(t){return new g(t).promise()},A.cast=function(t){var e=y(t);return e instanceof A||((e=new A(b))._captureStackTrace(),e._setFulfilled(),e._rejectionHandler0=t),e},A.resolve=A.fulfilled=A.cast,A.reject=A.rejected=function(t){var e=new A(b);return e._captureStackTrace(),e._rejectCallback(t,!0),e},A.setScheduler=function(t){if("function"!=typeof t)throw new d("expecting a function but got "+c.classString(t));var e=h._schedule;return h._schedule=t,e},A.prototype._then=function(t,e,r,n,i){var o=void 0!==i,a=o?i:new A(b),c=this._target(),u=c._bitField;o||(a._propagateFrom(this,3),a._captureStackTrace(),void 0===n&&0!=(2097152&this._bitField)&&(n=0!=(50397184&u)?this._boundValue():c===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,a));var f=s();if(0!=(50397184&u)){var l,d,m=c._settlePromiseCtx;0!=(33554432&u)?(d=c._rejectionHandler0,l=t):0!=(16777216&u)?(d=c._fulfillmentHandler0,l=e,c._unsetRejectionIsUnhandled()):(m=c._settlePromiseLateCancellationObserver,d=new p("late cancellation observer"),c._attachExtraTrace(d),l=e),h.invoke(m,c,{handler:null===f?l:"function"==typeof l&&f.bind(l),promise:a,receiver:n,value:d})}else c._addCallbacks(t,e,a,n,f);return a},A.prototype._length=function(){return 65535&this._bitField},A.prototype._isFateSealed=function(){return 0!=(117506048&this._bitField)},A.prototype._isFollowing=function(){return 67108864==(67108864&this._bitField)},A.prototype._setLength=function(t){this._bitField=-65536&this._bitField|65535&t},A.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent("promiseFulfilled",this)},A.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},A.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},A.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},A.prototype._isFinal=function(){return(4194304&this._bitField)>0},A.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},A.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},A.prototype._setAsyncGuaranteed=function(){this._bitField=134217728|this._bitField},A.prototype._receiverAt=function(t){var e=0===t?this._receiver0:this[4*t-4+3];if(e!==a)return void 0===e&&this._isBound()?this._boundValue():e},A.prototype._promiseAt=function(t){return this[4*t-4+2]},A.prototype._fulfillmentHandlerAt=function(t){return this[4*t-4+0]},A.prototype._rejectionHandlerAt=function(t){return this[4*t-4+1]},A.prototype._boundValue=function(){},A.prototype._migrateCallback0=function(t){t._bitField;var e=t._fulfillmentHandler0,r=t._rejectionHandler0,n=t._promise0,i=t._receiverAt(0);void 0===i&&(i=a),this._addCallbacks(e,r,n,i,null)},A.prototype._migrateCallbackAt=function(t,e){var r=t._fulfillmentHandlerAt(e),n=t._rejectionHandlerAt(e),i=t._promiseAt(e),o=t._receiverAt(e);void 0===o&&(o=a),this._addCallbacks(r,n,i,o,null)},A.prototype._addCallbacks=function(t,e,r,n,i){var o=this._length();if(o>=65531&&(o=0,this._setLength(0)),0===o)this._promise0=r,this._receiver0=n,"function"==typeof t&&(this._fulfillmentHandler0=null===i?t:i.bind(t)),"function"==typeof e&&(this._rejectionHandler0=null===i?e:i.bind(e));else{var s=4*o-4;this[s+2]=r,this[s+3]=n,"function"==typeof t&&(this[s+0]=null===i?t:i.bind(t)),"function"==typeof e&&(this[s+1]=null===i?e:i.bind(e))}return this._setLength(o+1),o},A.prototype._proxy=function(t,e){this._addCallbacks(void 0,void 0,e,t,null)},A.prototype._resolveCallback=function(t,e){if(0==(117506048&this._bitField)){if(t===this)return this._rejectCallback(r(),!1);var n=y(t,this);if(!(n instanceof A))return this._fulfill(t);e&&this._propagateFrom(n,2);var i=n._target(),o=i._bitField;if(0==(50397184&o)){var s=this._length();s>0&&i._migrateCallback0(this);for(var a=1;a>>16)){if(t===this){var n=r();return this._attachExtraTrace(n),this._reject(n)}this._setFulfilled(),this._rejectionHandler0=t,(65535&e)>0&&(0!=(134217728&e)?this._settlePromises():h.settlePromises(this))}},A.prototype._reject=function(t){var e=this._bitField;if(!((117506048&e)>>>16)){if(this._setRejected(),this._fulfillmentHandler0=t,this._isFinal())return h.fatalError(t,c.isNode);(65535&e)>0?0!=(134217728&e)?this._settlePromises():h.settlePromises(this):this._ensurePossibleRejectionHandled()}},A.prototype._fulfillPromises=function(t,e){for(var r=1;r0){if(0!=(16842752&t)){var r=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,r,t),this._rejectPromises(e,r)}else{var n=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,n,t),this._fulfillPromises(e,n)}this._setLength(0)}this._clearCancellationData()},A.prototype._settledValue=function(){var t=this._bitField;return 0!=(33554432&t)?this._rejectionHandler0:0!=(16777216&t)?this._fulfillmentHandler0:void 0},A.defer=A.pending=function(){return k.deprecated("Promise.defer","new Promise"),{promise:new A(b),resolve:C,reject:T}},c.notEnumerableProp(A,"_makeSelfResolutionError",r),e("./method")(A,b,y,i,k),e("./bind")(A,b,y,k),e("./cancel")(A,g,i,k),e("./direct_resolve")(A),e("./synchronous_inspection")(A),e("./join")(A,g,y,b,k),A.Promise=A,e("./map.js")(A,g,i,y,b,k),e("./using.js")(A,i,y,w,b,k),e("./timers.js")(A,b,k),e("./generators.js")(A,i,b,y,o,k),e("./nodeify.js")(A),e("./call_get.js")(A),e("./props.js")(A,g,y,i),e("./race.js")(A,b,y,i),e("./reduce.js")(A,g,i,y,b,k),e("./settle.js")(A,g,k),e("./some.js")(A,g,i),e("./promisify.js")(A,b),e("./any.js")(A),e("./each.js")(A,b),e("./filter.js")(A,b),c.toFastProperties(A),c.toFastProperties(A.prototype),P({a:1}),P({b:2}),P({c:3}),P(1),P(function(){}),P(void 0),P(!1),P(new A(b)),k.setBounds(f.firstLineError,c.lastLineError),A}},{"./any.js":1,"./async":2,"./bind":3,"./call_get.js":5,"./cancel":6,"./catch_filter":7,"./context":8,"./debuggability":9,"./direct_resolve":10,"./each.js":11,"./errors":12,"./es5":13,"./filter.js":14,"./finally":15,"./generators.js":16,"./join":17,"./map.js":18,"./method":19,"./nodeback":20,"./nodeify.js":21,"./promise_array":23,"./promisify.js":24,"./props.js":25,"./race.js":27,"./reduce.js":28,"./settle.js":30,"./some.js":31,"./synchronous_inspection":32,"./thenables":33,"./timers.js":34,"./using.js":35,"./util":36}],23:[function(t,e,r){e.exports=function(e,r,n,i,o){var s=t("./util");s.isArray;function a(t){var n=this._promise=new e(r);t instanceof e&&n._propagateFrom(t,3),n._setOnCancel(this),this._values=t,this._length=0,this._totalResolved=0,this._init(void 0,-2)}return s.inherits(a,o),a.prototype.length=function(){return this._length},a.prototype.promise=function(){return this._promise},a.prototype._init=function t(r,o){var a=n(this._values,this._promise);if(a instanceof e){var c=(a=a._target())._bitField;if(this._values=a,0==(50397184&c))return this._promise._setAsyncGuaranteed(),a._then(t,this._reject,void 0,this,o);if(0==(33554432&c))return 0!=(16777216&c)?this._reject(a._reason()):this._cancel();a=a._value()}if(null!==(a=s.asArray(a)))0!==a.length?this._iterate(a):-5===o?this._resolveEmptyArray():this._resolve(function(t){switch(t){case-2:return[];case-3:return{}}}(o));else{var u=i("expecting an array or an iterable object but got "+s.classString(a)).reason();this._promise._rejectCallback(u,!1)}},a.prototype._iterate=function(t){var r=this.getActualLength(t.length);this._length=r,this._values=this.shouldCopyValues()?new Array(r):this._values;for(var i=this._promise,o=!1,s=null,a=0;a=this._length&&(this._resolve(this._values),!0)},a.prototype._promiseCancelled=function(){return this._cancel(),!0},a.prototype._promiseRejected=function(t){return this._totalResolved++,this._reject(t),!0},a.prototype._resultCancelled=function(){if(!this._isResolved()){var t=this._values;if(this._cancel(),t instanceof e)t.cancel();else for(var r=0;r=this._length){var r;if(this._isMap)r=function(t){for(var e=new o,r=t.length/2|0,n=0;n>1},e.prototype.props=function(){return h(this)},e.props=function(t){return h(t)}}},{"./es5":13,"./util":36}],26:[function(t,e,r){function n(t){this._capacity=t,this._length=0,this._front=0}n.prototype._willBeOverCapacity=function(t){return this._capacity=this._length&&(this._resolve(this._values),!0)},o.prototype._promiseFulfilled=function(t,e){var r=new i;return r._bitField=33554432,r._settledValueField=t,this._promiseResolved(e,r)},o.prototype._promiseRejected=function(t,e){var r=new i;return r._bitField=16777216,r._settledValueField=t,this._promiseResolved(e,r)},e.settle=function(t){return n.deprecated(".settle()",".reflect()"),new o(t).promise()},e.prototype.settle=function(){return e.settle(this)}}},{"./util":36}],31:[function(t,e,r){e.exports=function(e,r,n){var i=t("./util"),o=t("./errors").RangeError,s=t("./errors").AggregateError,a=i.isArray,c={};function u(t){this.constructor$(t),this._howMany=0,this._unwrap=!1,this._initialized=!1}function f(t,e){if((0|e)!==e||e<0)return n("expecting a positive integer\n\n See http://goo.gl/MqrFmX\n");var r=new u(t),i=r.promise();return r.setHowMany(e),r.init(),i}i.inherits(u,r),u.prototype._init=function(){if(this._initialized)if(0!==this._howMany){this._init$(void 0,-5);var t=a(this._values);!this._isResolved()&&t&&this._howMany>this._canPossiblyFulfill()&&this._reject(this._getRangeError(this.length()))}else this._resolve([])},u.prototype.init=function(){this._initialized=!0,this._init()},u.prototype.setUnwrap=function(){this._unwrap=!0},u.prototype.howMany=function(){return this._howMany},u.prototype.setHowMany=function(t){this._howMany=t},u.prototype._promiseFulfilled=function(t){return this._addFulfilled(t),this._fulfilled()===this.howMany()&&(this._values.length=this.howMany(),1===this.howMany()&&this._unwrap?this._resolve(this._values[0]):this._resolve(this._values),!0)},u.prototype._promiseRejected=function(t){return this._addRejected(t),this._checkOutcome()},u.prototype._promiseCancelled=function(){return this._values instanceof e||null==this._values?this._cancel():(this._addRejected(c),this._checkOutcome())},u.prototype._checkOutcome=function(){if(this.howMany()>this._canPossiblyFulfill()){for(var t=new s,e=this.length();e0?this._reject(t):this._cancel(),!0}return!1},u.prototype._fulfilled=function(){return this._totalResolved},u.prototype._rejected=function(){return this._values.length-this.length()},u.prototype._addRejected=function(t){this._values.push(t)},u.prototype._addFulfilled=function(t){this._values[this._totalResolved++]=t},u.prototype._canPossiblyFulfill=function(){return this.length()-this._rejected()},u.prototype._getRangeError=function(t){var e="Input array must contain at least "+this._howMany+" items but contains only "+t+" items";return new o(e)},u.prototype._resolveEmptyArray=function(){this._reject(this._getRangeError(0))},e.some=function(t,e){return f(t,e)},e.prototype.some=function(t){return f(this,t)},e._SomePromiseArray=u}},{"./errors":12,"./util":36}],32:[function(t,e,r){e.exports=function(t){function e(t){void 0!==t?(t=t._target(),this._bitField=t._bitField,this._settledValueField=t._isFateSealed()?t._settledValue():void 0):(this._bitField=0,this._settledValueField=void 0)}e.prototype._settledValue=function(){return this._settledValueField};var r=e.prototype.value=function(){if(!this.isFulfilled())throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},n=e.prototype.error=e.prototype.reason=function(){if(!this.isRejected())throw new TypeError("cannot get rejection reason of a non-rejected promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},i=e.prototype.isFulfilled=function(){return 0!=(33554432&this._bitField)},o=e.prototype.isRejected=function(){return 0!=(16777216&this._bitField)},s=e.prototype.isPending=function(){return 0==(50397184&this._bitField)},a=e.prototype.isResolved=function(){return 0!=(50331648&this._bitField)};e.prototype.isCancelled=t.prototype._isCancelled=function(){return 65536==(65536&this._bitField)},t.prototype.isCancelled=function(){return this._target()._isCancelled()},t.prototype.isPending=function(){return s.call(this._target())},t.prototype.isRejected=function(){return o.call(this._target())},t.prototype.isFulfilled=function(){return i.call(this._target())},t.prototype.isResolved=function(){return a.call(this._target())},t.prototype.value=function(){return r.call(this._target())},t.prototype.reason=function(){var t=this._target();return t._unsetRejectionIsUnhandled(),n.call(t)},t.prototype._value=function(){return this._settledValue()},t.prototype._reason=function(){return this._unsetRejectionIsUnhandled(),this._settledValue()},t.PromiseInspection=e}},{}],33:[function(t,e,r){e.exports=function(e,r){var n=t("./util"),i=n.errorObj,o=n.isObject;var s={}.hasOwnProperty;return function(t,a){if(o(t)){if(t instanceof e)return t;var c=function(t){try{return t.then}catch(t){return i.e=t,i}}(t);if(c===i){a&&a._pushContext();var u=e.reject(c.e);return a&&a._popContext(),u}if("function"==typeof c)return f=t,s.call(f,"_promise0")?(u=new e(r),t._then(u._fulfill,u._reject,void 0,u,null),u):function(t,o,s){var a=new e(r),c=a;s&&s._pushContext(),a._captureStackTrace(),s&&s._popContext();var u=!0,f=n.tryCatch(o).call(t,function(t){a&&(a._resolveCallback(t),a=null)},function(t){a&&(a._rejectCallback(t,u,!0),a=null)});return u=!1,a&&f===i&&(a._rejectCallback(f.e,!0,!0),a=null),c}(t,c,a)}var f;return t}}},{"./util":36}],34:[function(t,e,r){e.exports=function(e,r,n){var i=t("./util"),o=e.TimeoutError;function s(t){this.handle=t}s.prototype._resultCancelled=function(){clearTimeout(this.handle)};var a=function(t){return c(+this).thenReturn(t)},c=e.delay=function(t,i){var o,c;return void 0!==i?(o=e.resolve(i)._then(a,null,null,t,void 0),n.cancellation()&&i instanceof e&&o._setOnCancel(i)):(o=new e(r),c=setTimeout(function(){o._fulfill()},+t),n.cancellation()&&o._setOnCancel(new s(c))),o._setAsyncGuaranteed(),o};e.prototype.delay=function(t){return c(t,this)};function u(t){return clearTimeout(this.handle),t}function f(t){throw clearTimeout(this.handle),t}e.prototype.timeout=function(t,e){var r,a;t=+t;var c=new s(setTimeout(function(){var t,n,s,c;r.isPending()&&(t=r,s=a,c="string"!=typeof(n=e)?n instanceof Error?n:new o("operation timed out"):new o(n),i.markAsOriginatingFromRejection(c),t._attachExtraTrace(c),t._reject(c),null!=s&&s.cancel())},t));return n.cancellation()?(a=this.then(),(r=a._then(u,f,void 0,c,void 0))._setOnCancel(c)):r=this._then(u,f,void 0,c,void 0),r}}},{"./util":36}],35:[function(t,e,r){e.exports=function(e,r,n,i,o,s){var a=t("./util"),c=t("./errors").TypeError,u=t("./util").inherits,f=a.errorObj,h=a.tryCatch;function l(t){setTimeout(function(){throw t},0)}function d(t,r){var i=0,s=t.length,a=new e(o);return function o(){if(i>=s)return a._fulfill();var c,u,f=(c=t[i++],(u=n(c))!==c&&"function"==typeof c._isDisposable&&"function"==typeof c._getDisposer&&c._isDisposable()&&u._setDisposable(c._getDisposer()),u);if(f instanceof e&&f._isDisposable()){try{f=n(f._getDisposer().tryDispose(r),t.promise)}catch(t){return l(t)}if(f instanceof e)return f._then(o,l,null,null,null)}o()}(),a}function p(t,e,r){this._data=t,this._promise=e,this._context=r}function b(t,e,r){this.constructor$(t,e,r)}function m(t){return p.isDisposer(t)?(this.resources[this.index]._setDisposable(t),t.promise()):t}function v(t){this.length=t,this.promise=null,this[t-1]=null}p.prototype.data=function(){return this._data},p.prototype.promise=function(){return this._promise},p.prototype.resource=function(){return this.promise().isFulfilled()?this.promise().value():null},p.prototype.tryDispose=function(t){var e=this.resource(),r=this._context;void 0!==r&&r._pushContext();var n=null!==e?this.doDispose(e,t):null;return void 0!==r&&r._popContext(),this._promise._unsetDisposable(),this._data=null,n},p.isDisposer=function(t){return null!=t&&"function"==typeof t.resource&&"function"==typeof t.tryDispose},u(b,p),b.prototype.doDispose=function(t,e){return this.data().call(t,t,e)},v.prototype._resultCancelled=function(){for(var t=this.length,r=0;r0},e.prototype._getDisposer=function(){return this._disposer},e.prototype._unsetDisposable=function(){this._bitField=-131073&this._bitField,this._disposer=void 0},e.prototype.disposer=function(t){if("function"==typeof t)return new b(t,this,i());throw new c}}},{"./errors":12,"./util":36}],36:[function(e,r,i){var o=e("./es5"),s="undefined"==typeof navigator,a={e:{}},c,u="undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==n?n:void 0!==this?this:null;function f(){try{var t=c;return c=null,t.apply(this,arguments)}catch(t){return a.e=t,a}}function h(t){return c=t,f}var l=function(t,e){var r={}.hasOwnProperty;function n(){for(var n in this.constructor=t,this.constructor$=e,e.prototype)r.call(e.prototype,n)&&"$"!==n.charAt(n.length-1)&&(this[n+"$"]=e.prototype[n])}return n.prototype=e.prototype,t.prototype=new n,t.prototype};function d(t){return null==t||!0===t||!1===t||"string"==typeof t||"number"==typeof t}function p(t){return"function"==typeof t||"object"===(void 0===t?"undefined":_typeof(t))&&null!==t}function b(t){return d(t)?new Error(j(t)):t}function m(t,e){var r,n=t.length,i=new Array(n+1);for(r=0;r1,n=e.length>0&&!(1===e.length&&"constructor"===e[0]),i=w.test(t+"")&&o.names(t).length>0;if(r||n||i)return!0}return!1}catch(t){return!1}}function x(t){function e(){}e.prototype=t;for(var r=8;r--;)new e;return t}var E=/^[a-z$_][a-z$_0-9]*$/i;function S(t){return E.test(t)}function M(t,e,r){for(var n=new Array(t),i=0;i10||q[0]>0),D.isNode&&D.toFastProperties(t);try{throw new Error}catch(t){D.lastLineError=t}r.exports=D},{"./es5":13}]},{},[4])(4)}),"undefined"!=typeof window&&null!==window?window.P=window.Promise:"undefined"!=typeof self&&null!==self&&(self.P=self.Promise)}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:120}],189:[function(t,e,r){var n="function"!=typeof Object.create&&"~";function i(t,e,r){this.fn=t,this.context=e,this.once=r||!1}function o(){}o.prototype._events=void 0,o.prototype.listeners=function(t,e){var r=n?n+t:t,i=this._events&&this._events[r];if(e)return!!i;if(!i)return[];if(i.fn)return[i.fn];for(var o=0,s=i.length,a=new Array(s);o1?(t[r[0]]=t[r[0]]||{},t[r[0]][r[1]]=e):t[r[0]]=e},i.prototype.buildCall=function(){var t=this;return function(){t.subscriptions[arguments[0]]||console.warn("Subscription "+JSON.stringify(arguments[0])+" doesn't exist. Subscribing anyway.");var e=new n({subscription:t.subscriptions[arguments[0]],requestManager:t.requestManager,type:t.type});return e.subscribe.apply(e,arguments)}},e.exports={subscriptions:i,subscription:n}},{"./subscription.js":199}],199:[function(t,e,r){var n=t("underscore"),i=t("web3-core-helpers").errors,o=t("eventemitter3");function s(t){o.call(this),this.id=null,this.callback=null,this.arguments=null,this._reconnectIntervalId=null,this.options={subscription:t.subscription,type:t.type,requestManager:t.requestManager}}s.prototype=Object.create(o.prototype),s.prototype.constructor=s,s.prototype._extractCallback=function(t){if(n.isFunction(t[t.length-1]))return t.pop()},s.prototype._validateArgs=function(t){var e=this.options.subscription;if(e||(e={}),e.params||(e.params=0),t.length!==e.params)throw i.InvalidNumberOfParams(t.length,e.params+1,t[0])},s.prototype._formatInput=function(t){var e=this.options.subscription;return e&&e.inputFormatter?e.inputFormatter.map(function(e,r){return e?e(t[r]):t[r]}):t},s.prototype._formatOutput=function(t){var e=this.options.subscription;return e&&e.outputFormatter&&t?e.outputFormatter(t):t},s.prototype._toPayload=function(t){var e=[];if(this.callback=this._extractCallback(t),this.subscriptionMethod||(this.subscriptionMethod=t.shift(),this.options.subscription.subscriptionName&&(this.subscriptionMethod=this.options.subscription.subscriptionName)),this.arguments||(this.arguments=this._formatInput(t),this._validateArgs(this.arguments),t=[]),e.push(this.subscriptionMethod),e=e.concat(this.arguments),t.length)throw new Error("Only a callback is allowed as parameter on an already instantiated subscription.");return{method:this.options.type+"_subscribe",params:e}},s.prototype.unsubscribe=function(t){this.options.requestManager.removeSubscription(this.id,t),this.id=null,this.removeAllListeners(),clearInterval(this._reconnectIntervalId)},s.prototype.subscribe=function(){var t=this,e=Array.prototype.slice.call(arguments),r=this._toPayload(e);if(!r)return this;if(!this.options.requestManager.provider){var i=new Error("No provider set.");return this.callback(i,null,this),this.emit("error",i),this}if(!this.options.requestManager.provider.on){var o=new Error("The current provider doesn't support subscriptions: "+this.options.requestManager.provider.constructor.name);return this.callback(o,null,this),this.emit("error",o),this}return this.id&&this.unsubscribe(),this.options.params=r.params[1],"logs"===r.params[0]&&n.isObject(r.params[1])&&r.params[1].hasOwnProperty("fromBlock")&&isFinite(r.params[1].fromBlock)&&this.options.requestManager.send({method:"eth_getLogs",params:[r.params[1]]},function(e,r){e?(t.callback(e,null,t),t.emit("error",e)):r.forEach(function(e){var r=t._formatOutput(e);t.callback(null,r,t),t.emit("data",r)})}),"object"===_typeof(r.params[1])&&delete r.params[1].fromBlock,this.options.requestManager.send(r,function(e,i){!e&&i?(t.id=i,t.options.requestManager.addSubscription(t.id,r.params[0],t.options.type,function(e,r){n.isArray(r)&&(r=r[0]);var i=t._formatOutput(r);if(e)t.options.requestManager.removeSubscription(t.id),t.options.requestManager.provider.once&&(t._reconnectIntervalId=setInterval(function(){t.options.requestManager.provider.reconnect()},500),t.options.requestManager.provider.once("connect",function(){clearInterval(t._reconnectIntervalId),t.subscribe(t.callback)})),t.emit("error",e);else{if(n.isFunction(t.options.subscription.subscriptionHandler))return t.options.subscription.subscriptionHandler.call(t,i);t.emit("data",i)}n.isFunction(t.callback)&&t.callback(e,i,t)})):n.isFunction(t.callback)&&(t.callback(e,null,t),t.emit("error",e))}),this},e.exports=s},{eventemitter3:196,underscore:197,"web3-core-helpers":185}],200:[function(t,e,r){var n=t("web3-core-helpers").formatters,i=t("web3-core-method"),o=t("web3-utils");e.exports=function(t){var e=function(e){var r;return e.property?(t[e.property]||(t[e.property]={}),r=t[e.property]):r=t,e.methods&&e.methods.forEach(function(e){e instanceof i||(e=new i(e)),e.attachToObject(r),e.setRequestManager(t._requestManager)}),t};return e.formatters=n,e.utils=o,e.Method=i,e}},{"web3-core-helpers":185,"web3-core-method":187,"web3-utils":383}],201:[function(t,e,r){var n=t("web3-core-requestmanager"),i=t("./extend.js");e.exports={packageInit:function(t,e){if(e=Array.prototype.slice.call(e),!t)throw new Error('You need to instantiate using the "new" keyword.');Object.defineProperty(t,"currentProvider",{get:function(){return t._provider},set:function(e){return t.setProvider(e)},enumerable:!0,configurable:!0}),e[0]&&e[0]._requestManager?t._requestManager=new n.Manager(e[0].currentProvider):(t._requestManager=new n.Manager,t._requestManager.setProvider(e[0],e[1])),t.givenProvider=n.Manager.givenProvider,t.providers=n.Manager.providers,t._provider=t._requestManager.provider,t.setProvider||(t.setProvider=function(e,r){return t._requestManager.setProvider(e,r),t._provider=t._requestManager.provider,!0}),t.BatchRequest=n.BatchManager.bind(null,t._requestManager),t.extend=i(t)},addProviders:function(t){t.givenProvider=n.Manager.givenProvider,t.providers=n.Manager.providers}}},{"./extend.js":200,"web3-core-requestmanager":194}],202:[function(t,e,r){!function(e,r){function n(t,e){if(!t)throw new Error(e||"Assertion failed")}function i(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function o(t,e,r){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}var s;"object"===(void 0===e?"undefined":_typeof(e))?e.exports=o:r.BN=o,o.BN=o,o.wordSize=26;try{s=t("buffer").Buffer}catch(t){}function a(t,e,r){for(var n=0,i=Math.min(t.length,r),o=e;o=49&&s<=54?s-49+10:s>=17&&s<=22?s-17+10:15&s}return n}function c(t,e,r,n){for(var i=0,o=Math.min(t.length,r),s=e;s=49?a-49+10:a>=17?a-17+10:a}return i}o.isBN=function(t){return t instanceof o||null!==t&&"object"===(void 0===t?"undefined":_typeof(t))&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"==typeof t)return this._initNumber(t,e,r);if("object"===(void 0===t?"undefined":_typeof(t)))return this._initArray(t,e,r);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36);var i=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&i++,16===e?this._parseHex(t,i):this._parseBase(t,e,i),"-"===t[0]&&(this.negative=1),this.strip(),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(n("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i=0;i-=3)s=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[o]|=s<>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);else if("le"===r)for(i=0,o=0;i>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)i=a(t,r,r+6),this.words[n]|=i<>>26-o&4194303,(o+=24)>=26&&(o-=26,n++);r+6!==e&&(i=a(t,e,r+6),this.words[n]|=i<>>26-o&4194303),this.strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,s=o%n,a=Math.min(o,o-s)+r,u=0,f=r;f1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var u=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],h=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function l(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],s=i*o,a=67108863&s,c=s/67108864|0;r.words[0]=a;for(var u=1;u>>26,h=67108863&c,l=Math.min(u,e.length-1),d=Math.max(0,u-t.length+1);d<=l;d++){var p=u-d|0;f+=(s=(i=0|t.words[p])*(o=0|e.words[d])+h)/67108864|0,h=67108863&s}r.words[u]=0|h,c=0|f}return 0!==c?r.words[u]=0|c:r.length--,r.strip()}o.prototype.toString=function(t,e){var r;if(t=t||10,e=0|e||1,16===t||"hex"===t){r="";for(var i=0,o=0,s=0;s>>24-i&16777215)||s!==this.length-1?u[6-c.length]+c+r:c+r,(i+=2)>=26&&(i-=26,s--)}for(0!==o&&(r=o.toString(16)+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var l=f[t],d=h[t];r="";var p=this.clone();for(p.negative=0;!p.isZero();){var b=p.modn(d).toString(t);r=(p=p.idivn(d)).isZero()?b+r:u[l-b.length]+b+r}for(this.isZero()&&(r="0"+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return n(void 0!==s),this.toArrayLike(s,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,r){var i=this.byteLength(),o=r||Math.max(1,i);n(i<=o,"byte array longer than desired length"),n(o>0,"Requested array length <= 0"),this.strip();var s,a,c="le"===e,u=new t(o),f=this.clone();if(c){for(a=0;!f.isZero();a++)s=f.andln(255),f.iushrn(8),u[a]=s;for(;a=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0==(8191&e)&&(r+=13,e>>>=13),0==(127&e)&&(r+=7,e>>>=7),0==(15&e)&&(r+=4,e>>>=4),0==(3&e)&&(r+=2,e>>>=2),0==(1&e)&&r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){n("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){n("number"==typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o>>26;for(;0!==i&&o>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,s=0;s>26,this.words[s]=67108863&e;for(;0!==o&&s>26,this.words[s]=67108863&e;if(0===o&&s>>13,d=0|s[1],p=8191&d,b=d>>>13,m=0|s[2],v=8191&m,y=m>>>13,g=0|s[3],_=8191&g,w=g>>>13,k=0|s[4],x=8191&k,E=k>>>13,S=0|s[5],M=8191&S,j=S>>>13,A=0|s[6],C=8191&A,T=A>>>13,P=0|s[7],I=8191&P,B=P>>>13,F=0|s[8],R=8191&F,O=F>>>13,N=0|s[9],L=8191&N,D=N>>>13,q=0|a[0],U=8191&q,z=q>>>13,H=0|a[1],K=8191&H,V=H>>>13,W=0|a[2],X=8191&W,G=W>>>13,$=0|a[3],J=8191&$,Z=$>>>13,Q=0|a[4],Y=8191&Q,tt=Q>>>13,et=0|a[5],rt=8191&et,nt=et>>>13,it=0|a[6],ot=8191&it,st=it>>>13,at=0|a[7],ct=8191&at,ut=at>>>13,ft=0|a[8],ht=8191&ft,lt=ft>>>13,dt=0|a[9],pt=8191&dt,bt=dt>>>13;r.negative=t.negative^e.negative,r.length=19;var mt=(u+(n=Math.imul(h,U))|0)+((8191&(i=(i=Math.imul(h,z))+Math.imul(l,U)|0))<<13)|0;u=((o=Math.imul(l,z))+(i>>>13)|0)+(mt>>>26)|0,mt&=67108863,n=Math.imul(p,U),i=(i=Math.imul(p,z))+Math.imul(b,U)|0,o=Math.imul(b,z);var vt=(u+(n=n+Math.imul(h,K)|0)|0)+((8191&(i=(i=i+Math.imul(h,V)|0)+Math.imul(l,K)|0))<<13)|0;u=((o=o+Math.imul(l,V)|0)+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(v,U),i=(i=Math.imul(v,z))+Math.imul(y,U)|0,o=Math.imul(y,z),n=n+Math.imul(p,K)|0,i=(i=i+Math.imul(p,V)|0)+Math.imul(b,K)|0,o=o+Math.imul(b,V)|0;var yt=(u+(n=n+Math.imul(h,X)|0)|0)+((8191&(i=(i=i+Math.imul(h,G)|0)+Math.imul(l,X)|0))<<13)|0;u=((o=o+Math.imul(l,G)|0)+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(_,U),i=(i=Math.imul(_,z))+Math.imul(w,U)|0,o=Math.imul(w,z),n=n+Math.imul(v,K)|0,i=(i=i+Math.imul(v,V)|0)+Math.imul(y,K)|0,o=o+Math.imul(y,V)|0,n=n+Math.imul(p,X)|0,i=(i=i+Math.imul(p,G)|0)+Math.imul(b,X)|0,o=o+Math.imul(b,G)|0;var gt=(u+(n=n+Math.imul(h,J)|0)|0)+((8191&(i=(i=i+Math.imul(h,Z)|0)+Math.imul(l,J)|0))<<13)|0;u=((o=o+Math.imul(l,Z)|0)+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(x,U),i=(i=Math.imul(x,z))+Math.imul(E,U)|0,o=Math.imul(E,z),n=n+Math.imul(_,K)|0,i=(i=i+Math.imul(_,V)|0)+Math.imul(w,K)|0,o=o+Math.imul(w,V)|0,n=n+Math.imul(v,X)|0,i=(i=i+Math.imul(v,G)|0)+Math.imul(y,X)|0,o=o+Math.imul(y,G)|0,n=n+Math.imul(p,J)|0,i=(i=i+Math.imul(p,Z)|0)+Math.imul(b,J)|0,o=o+Math.imul(b,Z)|0;var _t=(u+(n=n+Math.imul(h,Y)|0)|0)+((8191&(i=(i=i+Math.imul(h,tt)|0)+Math.imul(l,Y)|0))<<13)|0;u=((o=o+Math.imul(l,tt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(M,U),i=(i=Math.imul(M,z))+Math.imul(j,U)|0,o=Math.imul(j,z),n=n+Math.imul(x,K)|0,i=(i=i+Math.imul(x,V)|0)+Math.imul(E,K)|0,o=o+Math.imul(E,V)|0,n=n+Math.imul(_,X)|0,i=(i=i+Math.imul(_,G)|0)+Math.imul(w,X)|0,o=o+Math.imul(w,G)|0,n=n+Math.imul(v,J)|0,i=(i=i+Math.imul(v,Z)|0)+Math.imul(y,J)|0,o=o+Math.imul(y,Z)|0,n=n+Math.imul(p,Y)|0,i=(i=i+Math.imul(p,tt)|0)+Math.imul(b,Y)|0,o=o+Math.imul(b,tt)|0;var wt=(u+(n=n+Math.imul(h,rt)|0)|0)+((8191&(i=(i=i+Math.imul(h,nt)|0)+Math.imul(l,rt)|0))<<13)|0;u=((o=o+Math.imul(l,nt)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(C,U),i=(i=Math.imul(C,z))+Math.imul(T,U)|0,o=Math.imul(T,z),n=n+Math.imul(M,K)|0,i=(i=i+Math.imul(M,V)|0)+Math.imul(j,K)|0,o=o+Math.imul(j,V)|0,n=n+Math.imul(x,X)|0,i=(i=i+Math.imul(x,G)|0)+Math.imul(E,X)|0,o=o+Math.imul(E,G)|0,n=n+Math.imul(_,J)|0,i=(i=i+Math.imul(_,Z)|0)+Math.imul(w,J)|0,o=o+Math.imul(w,Z)|0,n=n+Math.imul(v,Y)|0,i=(i=i+Math.imul(v,tt)|0)+Math.imul(y,Y)|0,o=o+Math.imul(y,tt)|0,n=n+Math.imul(p,rt)|0,i=(i=i+Math.imul(p,nt)|0)+Math.imul(b,rt)|0,o=o+Math.imul(b,nt)|0;var kt=(u+(n=n+Math.imul(h,ot)|0)|0)+((8191&(i=(i=i+Math.imul(h,st)|0)+Math.imul(l,ot)|0))<<13)|0;u=((o=o+Math.imul(l,st)|0)+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(I,U),i=(i=Math.imul(I,z))+Math.imul(B,U)|0,o=Math.imul(B,z),n=n+Math.imul(C,K)|0,i=(i=i+Math.imul(C,V)|0)+Math.imul(T,K)|0,o=o+Math.imul(T,V)|0,n=n+Math.imul(M,X)|0,i=(i=i+Math.imul(M,G)|0)+Math.imul(j,X)|0,o=o+Math.imul(j,G)|0,n=n+Math.imul(x,J)|0,i=(i=i+Math.imul(x,Z)|0)+Math.imul(E,J)|0,o=o+Math.imul(E,Z)|0,n=n+Math.imul(_,Y)|0,i=(i=i+Math.imul(_,tt)|0)+Math.imul(w,Y)|0,o=o+Math.imul(w,tt)|0,n=n+Math.imul(v,rt)|0,i=(i=i+Math.imul(v,nt)|0)+Math.imul(y,rt)|0,o=o+Math.imul(y,nt)|0,n=n+Math.imul(p,ot)|0,i=(i=i+Math.imul(p,st)|0)+Math.imul(b,ot)|0,o=o+Math.imul(b,st)|0;var xt=(u+(n=n+Math.imul(h,ct)|0)|0)+((8191&(i=(i=i+Math.imul(h,ut)|0)+Math.imul(l,ct)|0))<<13)|0;u=((o=o+Math.imul(l,ut)|0)+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(R,U),i=(i=Math.imul(R,z))+Math.imul(O,U)|0,o=Math.imul(O,z),n=n+Math.imul(I,K)|0,i=(i=i+Math.imul(I,V)|0)+Math.imul(B,K)|0,o=o+Math.imul(B,V)|0,n=n+Math.imul(C,X)|0,i=(i=i+Math.imul(C,G)|0)+Math.imul(T,X)|0,o=o+Math.imul(T,G)|0,n=n+Math.imul(M,J)|0,i=(i=i+Math.imul(M,Z)|0)+Math.imul(j,J)|0,o=o+Math.imul(j,Z)|0,n=n+Math.imul(x,Y)|0,i=(i=i+Math.imul(x,tt)|0)+Math.imul(E,Y)|0,o=o+Math.imul(E,tt)|0,n=n+Math.imul(_,rt)|0,i=(i=i+Math.imul(_,nt)|0)+Math.imul(w,rt)|0,o=o+Math.imul(w,nt)|0,n=n+Math.imul(v,ot)|0,i=(i=i+Math.imul(v,st)|0)+Math.imul(y,ot)|0,o=o+Math.imul(y,st)|0,n=n+Math.imul(p,ct)|0,i=(i=i+Math.imul(p,ut)|0)+Math.imul(b,ct)|0,o=o+Math.imul(b,ut)|0;var Et=(u+(n=n+Math.imul(h,ht)|0)|0)+((8191&(i=(i=i+Math.imul(h,lt)|0)+Math.imul(l,ht)|0))<<13)|0;u=((o=o+Math.imul(l,lt)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(L,U),i=(i=Math.imul(L,z))+Math.imul(D,U)|0,o=Math.imul(D,z),n=n+Math.imul(R,K)|0,i=(i=i+Math.imul(R,V)|0)+Math.imul(O,K)|0,o=o+Math.imul(O,V)|0,n=n+Math.imul(I,X)|0,i=(i=i+Math.imul(I,G)|0)+Math.imul(B,X)|0,o=o+Math.imul(B,G)|0,n=n+Math.imul(C,J)|0,i=(i=i+Math.imul(C,Z)|0)+Math.imul(T,J)|0,o=o+Math.imul(T,Z)|0,n=n+Math.imul(M,Y)|0,i=(i=i+Math.imul(M,tt)|0)+Math.imul(j,Y)|0,o=o+Math.imul(j,tt)|0,n=n+Math.imul(x,rt)|0,i=(i=i+Math.imul(x,nt)|0)+Math.imul(E,rt)|0,o=o+Math.imul(E,nt)|0,n=n+Math.imul(_,ot)|0,i=(i=i+Math.imul(_,st)|0)+Math.imul(w,ot)|0,o=o+Math.imul(w,st)|0,n=n+Math.imul(v,ct)|0,i=(i=i+Math.imul(v,ut)|0)+Math.imul(y,ct)|0,o=o+Math.imul(y,ut)|0,n=n+Math.imul(p,ht)|0,i=(i=i+Math.imul(p,lt)|0)+Math.imul(b,ht)|0,o=o+Math.imul(b,lt)|0;var St=(u+(n=n+Math.imul(h,pt)|0)|0)+((8191&(i=(i=i+Math.imul(h,bt)|0)+Math.imul(l,pt)|0))<<13)|0;u=((o=o+Math.imul(l,bt)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(L,K),i=(i=Math.imul(L,V))+Math.imul(D,K)|0,o=Math.imul(D,V),n=n+Math.imul(R,X)|0,i=(i=i+Math.imul(R,G)|0)+Math.imul(O,X)|0,o=o+Math.imul(O,G)|0,n=n+Math.imul(I,J)|0,i=(i=i+Math.imul(I,Z)|0)+Math.imul(B,J)|0,o=o+Math.imul(B,Z)|0,n=n+Math.imul(C,Y)|0,i=(i=i+Math.imul(C,tt)|0)+Math.imul(T,Y)|0,o=o+Math.imul(T,tt)|0,n=n+Math.imul(M,rt)|0,i=(i=i+Math.imul(M,nt)|0)+Math.imul(j,rt)|0,o=o+Math.imul(j,nt)|0,n=n+Math.imul(x,ot)|0,i=(i=i+Math.imul(x,st)|0)+Math.imul(E,ot)|0,o=o+Math.imul(E,st)|0,n=n+Math.imul(_,ct)|0,i=(i=i+Math.imul(_,ut)|0)+Math.imul(w,ct)|0,o=o+Math.imul(w,ut)|0,n=n+Math.imul(v,ht)|0,i=(i=i+Math.imul(v,lt)|0)+Math.imul(y,ht)|0,o=o+Math.imul(y,lt)|0;var Mt=(u+(n=n+Math.imul(p,pt)|0)|0)+((8191&(i=(i=i+Math.imul(p,bt)|0)+Math.imul(b,pt)|0))<<13)|0;u=((o=o+Math.imul(b,bt)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(L,X),i=(i=Math.imul(L,G))+Math.imul(D,X)|0,o=Math.imul(D,G),n=n+Math.imul(R,J)|0,i=(i=i+Math.imul(R,Z)|0)+Math.imul(O,J)|0,o=o+Math.imul(O,Z)|0,n=n+Math.imul(I,Y)|0,i=(i=i+Math.imul(I,tt)|0)+Math.imul(B,Y)|0,o=o+Math.imul(B,tt)|0,n=n+Math.imul(C,rt)|0,i=(i=i+Math.imul(C,nt)|0)+Math.imul(T,rt)|0,o=o+Math.imul(T,nt)|0,n=n+Math.imul(M,ot)|0,i=(i=i+Math.imul(M,st)|0)+Math.imul(j,ot)|0,o=o+Math.imul(j,st)|0,n=n+Math.imul(x,ct)|0,i=(i=i+Math.imul(x,ut)|0)+Math.imul(E,ct)|0,o=o+Math.imul(E,ut)|0,n=n+Math.imul(_,ht)|0,i=(i=i+Math.imul(_,lt)|0)+Math.imul(w,ht)|0,o=o+Math.imul(w,lt)|0;var jt=(u+(n=n+Math.imul(v,pt)|0)|0)+((8191&(i=(i=i+Math.imul(v,bt)|0)+Math.imul(y,pt)|0))<<13)|0;u=((o=o+Math.imul(y,bt)|0)+(i>>>13)|0)+(jt>>>26)|0,jt&=67108863,n=Math.imul(L,J),i=(i=Math.imul(L,Z))+Math.imul(D,J)|0,o=Math.imul(D,Z),n=n+Math.imul(R,Y)|0,i=(i=i+Math.imul(R,tt)|0)+Math.imul(O,Y)|0,o=o+Math.imul(O,tt)|0,n=n+Math.imul(I,rt)|0,i=(i=i+Math.imul(I,nt)|0)+Math.imul(B,rt)|0,o=o+Math.imul(B,nt)|0,n=n+Math.imul(C,ot)|0,i=(i=i+Math.imul(C,st)|0)+Math.imul(T,ot)|0,o=o+Math.imul(T,st)|0,n=n+Math.imul(M,ct)|0,i=(i=i+Math.imul(M,ut)|0)+Math.imul(j,ct)|0,o=o+Math.imul(j,ut)|0,n=n+Math.imul(x,ht)|0,i=(i=i+Math.imul(x,lt)|0)+Math.imul(E,ht)|0,o=o+Math.imul(E,lt)|0;var At=(u+(n=n+Math.imul(_,pt)|0)|0)+((8191&(i=(i=i+Math.imul(_,bt)|0)+Math.imul(w,pt)|0))<<13)|0;u=((o=o+Math.imul(w,bt)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(L,Y),i=(i=Math.imul(L,tt))+Math.imul(D,Y)|0,o=Math.imul(D,tt),n=n+Math.imul(R,rt)|0,i=(i=i+Math.imul(R,nt)|0)+Math.imul(O,rt)|0,o=o+Math.imul(O,nt)|0,n=n+Math.imul(I,ot)|0,i=(i=i+Math.imul(I,st)|0)+Math.imul(B,ot)|0,o=o+Math.imul(B,st)|0,n=n+Math.imul(C,ct)|0,i=(i=i+Math.imul(C,ut)|0)+Math.imul(T,ct)|0,o=o+Math.imul(T,ut)|0,n=n+Math.imul(M,ht)|0,i=(i=i+Math.imul(M,lt)|0)+Math.imul(j,ht)|0,o=o+Math.imul(j,lt)|0;var Ct=(u+(n=n+Math.imul(x,pt)|0)|0)+((8191&(i=(i=i+Math.imul(x,bt)|0)+Math.imul(E,pt)|0))<<13)|0;u=((o=o+Math.imul(E,bt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(L,rt),i=(i=Math.imul(L,nt))+Math.imul(D,rt)|0,o=Math.imul(D,nt),n=n+Math.imul(R,ot)|0,i=(i=i+Math.imul(R,st)|0)+Math.imul(O,ot)|0,o=o+Math.imul(O,st)|0,n=n+Math.imul(I,ct)|0,i=(i=i+Math.imul(I,ut)|0)+Math.imul(B,ct)|0,o=o+Math.imul(B,ut)|0,n=n+Math.imul(C,ht)|0,i=(i=i+Math.imul(C,lt)|0)+Math.imul(T,ht)|0,o=o+Math.imul(T,lt)|0;var Tt=(u+(n=n+Math.imul(M,pt)|0)|0)+((8191&(i=(i=i+Math.imul(M,bt)|0)+Math.imul(j,pt)|0))<<13)|0;u=((o=o+Math.imul(j,bt)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(L,ot),i=(i=Math.imul(L,st))+Math.imul(D,ot)|0,o=Math.imul(D,st),n=n+Math.imul(R,ct)|0,i=(i=i+Math.imul(R,ut)|0)+Math.imul(O,ct)|0,o=o+Math.imul(O,ut)|0,n=n+Math.imul(I,ht)|0,i=(i=i+Math.imul(I,lt)|0)+Math.imul(B,ht)|0,o=o+Math.imul(B,lt)|0;var Pt=(u+(n=n+Math.imul(C,pt)|0)|0)+((8191&(i=(i=i+Math.imul(C,bt)|0)+Math.imul(T,pt)|0))<<13)|0;u=((o=o+Math.imul(T,bt)|0)+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,n=Math.imul(L,ct),i=(i=Math.imul(L,ut))+Math.imul(D,ct)|0,o=Math.imul(D,ut),n=n+Math.imul(R,ht)|0,i=(i=i+Math.imul(R,lt)|0)+Math.imul(O,ht)|0,o=o+Math.imul(O,lt)|0;var It=(u+(n=n+Math.imul(I,pt)|0)|0)+((8191&(i=(i=i+Math.imul(I,bt)|0)+Math.imul(B,pt)|0))<<13)|0;u=((o=o+Math.imul(B,bt)|0)+(i>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(L,ht),i=(i=Math.imul(L,lt))+Math.imul(D,ht)|0,o=Math.imul(D,lt);var Bt=(u+(n=n+Math.imul(R,pt)|0)|0)+((8191&(i=(i=i+Math.imul(R,bt)|0)+Math.imul(O,pt)|0))<<13)|0;u=((o=o+Math.imul(O,bt)|0)+(i>>>13)|0)+(Bt>>>26)|0,Bt&=67108863;var Ft=(u+(n=Math.imul(L,pt))|0)+((8191&(i=(i=Math.imul(L,bt))+Math.imul(D,pt)|0))<<13)|0;return u=((o=Math.imul(D,bt))+(i>>>13)|0)+(Ft>>>26)|0,Ft&=67108863,c[0]=mt,c[1]=vt,c[2]=yt,c[3]=gt,c[4]=_t,c[5]=wt,c[6]=kt,c[7]=xt,c[8]=Et,c[9]=St,c[10]=Mt,c[11]=jt,c[12]=At,c[13]=Ct,c[14]=Tt,c[15]=Pt,c[16]=It,c[17]=Bt,c[18]=Ft,0!==u&&(c[19]=u,r.length++),r};function p(t,e,r){return(new b).mulp(t,e,r)}function b(t,e){this.x=t,this.y=e}Math.imul||(d=l),o.prototype.mulTo=function(t,e){var r=this.length+t.length;return 10===this.length&&10===t.length?d(this,t,e):r<63?l(this,t,e):r<1024?function(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o>>26)|0)>>>26,s&=67108863}r.words[o]=a,n=s,s=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}(this,t,e):p(this,t,e)},b.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,n=0;n>=1;return n},b.prototype.permute=function(t,e,r,n,i,o){for(var s=0;s>>=1)i++;return 1<>>=13,r[2*s+1]=8191&o,o>>>=13;for(s=2*e;s>=26,e+=i/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r>>i}return e}(t);if(0===e.length)return new o(1);for(var r=this,n=0;n=0);var e,r=t%26,i=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var s=0;for(e=0;e>>26-r}s&&(this.words[e]=s,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e=0),i=e?(e-e%26)/26:0;var o=t%26,s=Math.min((t-o)/26,this.length),a=67108863^67108863>>>o<s)for(this.length-=s,u=0;u=0&&(0!==f||u>=i);u--){var h=0|this.words[u];this.words[u]=f<<26-o|h>>>o,f=h&a}return c&&0!==f&&(c.words[c.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){n("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(n("number"==typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(c/67108864|0),this.words[i+r]=67108863&o}for(;i>26,this.words[i+r]=67108863&o;if(0===a)return this.strip();for(n(-1===a),a=0,i=0;i>26,this.words[i]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var r=(this.length,t.length),n=this.clone(),i=t,s=0|i.words[i.length-1];0!==(r=26-this._countBits(s))&&(i=i.ushln(r),n.iushln(r),s=0|i.words[i.length-1]);var a,c=n.length-i.length;if("mod"!==e){(a=new o(null)).length=c+1,a.words=new Array(a.length);for(var u=0;u=0;h--){var l=67108864*(0|n.words[i.length+h])+(0|n.words[i.length+h-1]);for(l=Math.min(l/s|0,67108863),n._ishlnsubmul(i,l,h);0!==n.negative;)l--,n.negative=0,n._ishlnsubmul(i,1,h),n.isZero()||(n.negative^=1);a&&(a.words[h]=l)}return a&&a.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},o.prototype.divmod=function(t,e,r){return n(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(a=this.neg().divmod(t,e),"mod"!==e&&(i=a.div.neg()),"div"!==e&&(s=a.mod.neg(),r&&0!==s.negative&&s.iadd(t)),{div:i,mod:s}):0===this.negative&&0!==t.negative?(a=this.divmod(t.neg(),e),"mod"!==e&&(i=a.div.neg()),{div:i,mod:a.mod}):0!=(this.negative&t.negative)?(a=this.neg().divmod(t.neg(),e),"div"!==e&&(s=a.mod.neg(),r&&0!==s.negative&&s.isub(t)),{div:a.div,mod:s}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var i,s,a},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,r=0,i=this.length-1;i>=0;i--)r=(e*r+(0|this.words[i]))%t;return r},o.prototype.idivn=function(t){n(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*e;this.words[r]=i/t|0,e=i%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i=new o(1),s=new o(0),a=new o(0),c=new o(1),u=0;e.isEven()&&r.isEven();)e.iushrn(1),r.iushrn(1),++u;for(var f=r.clone(),h=e.clone();!e.isZero();){for(var l=0,d=1;0==(e.words[0]&d)&&l<26;++l,d<<=1);if(l>0)for(e.iushrn(l);l-- >0;)(i.isOdd()||s.isOdd())&&(i.iadd(f),s.isub(h)),i.iushrn(1),s.iushrn(1);for(var p=0,b=1;0==(r.words[0]&b)&&p<26;++p,b<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(a.isOdd()||c.isOdd())&&(a.iadd(f),c.isub(h)),a.iushrn(1),c.iushrn(1);e.cmp(r)>=0?(e.isub(r),i.isub(a),s.isub(c)):(r.isub(e),a.isub(i),c.isub(s))}return{a:a,b:c,gcd:r.iushln(u)}},o.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i,s=new o(1),a=new o(0),c=r.clone();e.cmpn(1)>0&&r.cmpn(1)>0;){for(var u=0,f=1;0==(e.words[0]&f)&&u<26;++u,f<<=1);if(u>0)for(e.iushrn(u);u-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);for(var h=0,l=1;0==(r.words[0]&l)&&h<26;++h,l<<=1);if(h>0)for(r.iushrn(h);h-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);e.cmp(r)>=0?(e.isub(r),s.isub(a)):(r.isub(e),a.isub(s))}return(i=0===e.cmpn(1)?s:a).cmpn(0)<0&&i.iadd(t),i},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0==(1&this.words[0])},o.prototype.isOdd=function(){return 1==(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){n("number"==typeof t);var e=t%26,r=(t-e)/26,i=1<>>26,a&=67108863,this.words[s]=a}return 0!==o&&(this.words[s]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),n(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:it.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){ni&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new k(t)},o.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var m={k256:null,p224:null,p192:null,p25519:null};function v(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function y(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function g(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function w(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function k(t){if("string"==typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function x(t){k.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},v.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e0?r.isub(this.p):r.strip(),r},v.prototype.split=function(t,e){t.iushrn(this.n,0,e)},v.prototype.imulK=function(t){return t.imul(this.k)},i(y,v),y.prototype.split=function(t,e){for(var r=Math.min(t.length,9),n=0;n>>22,i=o}i>>>=22,t.words[n-10]=i,0===i&&t.length>10?t.length-=10:t.length-=9},y.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(m[t])return m[t];var e;if("k256"===t)e=new y;else if("p224"===t)e=new g;else if("p192"===t)e=new _;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new w}return m[t]=e,e},k.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},k.prototype._verify2=function(t,e){n(0==(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},k.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},k.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},k.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},k.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},k.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},k.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},k.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},k.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},k.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},k.prototype.isqr=function(t){return this.imul(t,t.clone())},k.prototype.sqr=function(t){return this.mul(t,t)},k.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2==1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);n(!i.isZero());var a=new o(1).toRed(this),c=a.redNeg(),u=this.m.subn(1).iushrn(1),f=this.m.bitLength();for(f=new o(2*f*f).toRed(this);0!==this.pow(f,u).cmp(c);)f.redIAdd(c);for(var h=this.pow(f,i),l=this.pow(t,i.addn(1).iushrn(1)),d=this.pow(t,i),p=s;0!==d.cmp(a);){for(var b=d,m=0;0!==b.cmp(a);m++)b=b.redSqr();n(m=0;n--){for(var u=e.words[n],f=c-1;f>=0;f--){var h=u>>f&1;i!==r[0]&&(i=this.sqr(i)),0!==h||0!==s?(s<<=1,s|=h,(4===++a||0===n&&0===f)&&(i=this.mul(i,r[s]),a=0,s=0)):a=0}c=26}return i},k.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},k.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new x(t)},i(x,k),x.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},x.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},x.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},x.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},x.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(void 0===e||e,this)},{}],203:[function(t,e,r){arguments[4][171][0].apply(r,arguments)},{dup:171}],204:[function(t,e,r){var n=t("underscore"),i=t("web3-utils"),o=t("bn.js"),s=t("./param"),a=function(t){return n.isNumber(t)&&(t=Math.trunc(t)),new s(i.toTwosComplement(t).replace("0x",""))};e.exports={formatInputInt:a,formatInputBytes:function(t){if(!i.isHexStrict(t))throw new Error('Given parameter is not bytes: "'+t+'"');var e=t.replace(/^0x/i,"");if(e.length%2!=0)throw new Error('Given parameter bytes has an invalid length: "'+t+'"');if(e.length>64)throw new Error('Given parameter bytes is too long: "'+t+'"');var r=Math.floor((e.length+63)/64);return e=i.padRight(e,64*r),new s(e)},formatInputDynamicBytes:function(t){if(!i.isHexStrict(t))throw new Error('Given parameter is not bytes: "'+t+'"');var e=t.replace(/^0x/i,"");if(e.length%2!=0)throw new Error('Given parameter bytes has an invalid length: "'+t+'"');var r=e.length/2,n=Math.floor((e.length+63)/64);return e=i.padRight(e,64*n),new s(a(r).value+e)},formatInputString:function(t){if(!n.isString(t))throw new Error("Given parameter is not a valid string: "+t);var e=i.utf8ToHex(t).replace(/^0x/i,""),r=e.length/2,o=Math.floor((e.length+63)/64);return e=i.padRight(e,64*o),new s(a(r).value+e)},formatInputBool:function(t){return new s("000000000000000000000000000000000000000000000000000000000000000"+(t?"1":"0"))},formatOutputInt:function(t){var e=t.staticPart();if(!e&&!t.rawValue)throw new Error("Couldn't decode "+name+" from ABI: 0x"+t.rawValue);return"1"===new o(e.substr(0,1),16).toString(2).substr(0,1)?new o(e,16).fromTwos(256).toString(10):new o(e,16).toString(10)},formatOutputUInt:function(t,e){var r=t.staticPart();if(!r&&!t.rawValue)throw new Error("Couldn't decode "+e+" from ABI: 0x"+t.rawValue);return new o(r,16).toString(10)},formatOutputBool:function(t,e){var r=t.staticPart();if(!r&&!t.rawValue)throw new Error("Couldn't decode "+e+" from ABI: 0x"+t.rawValue);return"0000000000000000000000000000000000000000000000000000000000000001"===r},formatOutputBytes:function(t,e){var r=e.match(/^bytes([0-9]*)/),n=parseInt(r[1]);if(t.staticPart().slice(0,2*n).length!==2*n)throw new Error("Couldn't decode "+e+" from ABI: 0x"+t.rawValue+" The size doesn't match.");return"0x"+t.staticPart().slice(0,2*n)},formatOutputDynamicBytes:function(t,e){var r=t.dynamicPart().slice(0,64);if(!r)throw new Error("Couldn't decode "+e+" from ABI: 0x"+t.rawValue);var n=2*new o(r,16).toNumber();return"0x"+t.dynamicPart().substr(64,n)},formatOutputString:function(t){var e=t.dynamicPart().slice(0,64);if(!e)throw new Error("ERROR: The returned value is not a convertible string:"+e);var r=2*new o(e,16).toNumber();return r?i.hexToUtf8("0x"+t.dynamicPart().substr(64,r).replace(/^0x/i,"")):""},formatOutputAddress:function(t,e){var r=t.staticPart();if(!r)throw new Error("Couldn't decode "+e+" from ABI: 0x"+t.rawValue);return i.toChecksumAddress("0x"+r.slice(r.length-40,r.length))},toTwosComplement:i.toTwosComplement}},{"./param":206,"bn.js":202,underscore:203,"web3-utils":383}],205:[function(t,e,r){var n=t("underscore"),i=t("web3-utils"),o=t("./formatters"),s=t("./types/address"),a=t("./types/bool"),c=t("./types/int"),u=t("./types/uint"),f=t("./types/dynamicbytes"),h=t("./types/string"),l=t("./types/bytes"),d=function(t,e){return t.isDynamicType(e)||t.isDynamicArray(e)};function p(){}var b=function(t){this._types=t};b.prototype._requireType=function(t){var e=this._types.filter(function(e){return e.isType(t)})[0];if(!e)throw Error("Invalid solidity type: "+t);return e},b.prototype._getOffsets=function(t,e){for(var r=e.map(function(e,r){return e.staticPartLength(t[r])}),n=1;n0;){var e=t.shift();if("function"==typeof e){var r=t.shift(),n=t.shift();e.call(r,n)}else e._settlePromises()}},c.prototype._drainQueues=function(){this._drainQueue(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,this._drainQueue(this._lateQueue)},c.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},c.prototype._reset=function(){this._isTickUsed=!1},r.exports=c,r.exports.firstLineError=i},{"./queue":26,"./schedule":29,"./util":36}],3:[function(t,e,r){e.exports=function(t,e,r,n){var i=!1,o=function(t,e){this._reject(e)},s=function(t,e){e.promiseRejectionQueued=!0,e.bindingPromise._then(o,o,null,this,t)},a=function(t,e){0==(50397184&this._bitField)&&this._resolveCallback(e.target)},c=function(t,e){e.promiseRejectionQueued||this._reject(t)};t.prototype.bind=function(o){i||(i=!0,t.prototype._propagateFrom=n.propagateFromFunction(),t.prototype._boundValue=n.boundValueFunction());var u=r(o),f=new t(e);f._propagateFrom(this,1);var h=this._target();if(f._setBoundTo(u),u instanceof t){var l={promiseRejectionQueued:!1,promise:f,target:h,bindingPromise:u};h._then(e,s,void 0,f,l),u._then(a,c,void 0,f,l),f._setOnCancel(u)}else f._resolveCallback(h);return f},t.prototype._setBoundTo=function(t){void 0!==t?(this._bitField=2097152|this._bitField,this._boundTo=t):this._bitField=-2097153&this._bitField},t.prototype._isBound=function(){return 2097152==(2097152&this._bitField)},t.bind=function(e,r){return t.resolve(r).bind(e)}}},{}],4:[function(t,e,r){var n;"undefined"!=typeof Promise&&(n=Promise);var i=t("./promise")();i.noConflict=function(){try{Promise===i&&(Promise=n)}catch(t){}return i},e.exports=i},{"./promise":22}],5:[function(t,e,r){var n=Object.create;if(n){var i=n(null),o=n(null);i[" size"]=o[" size"]=0}e.exports=function(e){var r,n=t("./util"),i=n.canEvaluate;n.isIdentifier;function o(t,r){var i;if(null!=t&&(i=t[r]),"function"!=typeof i){var o="Object "+n.classString(t)+" has no method '"+n.toString(r)+"'";throw new e.TypeError(o)}return i}function s(t){return o(t,this.pop()).apply(t,this)}function a(t){return t[this]}function c(t){var e=+this;return e<0&&(e=Math.max(0,e+t.length)),t[e]}e.prototype.call=function(t){var e=[].slice.call(arguments,1);return e.push(t),this._then(s,void 0,void 0,e,void 0)},e.prototype.get=function(t){var e;if("number"==typeof t)e=c;else if(i){var n=r(t);e=null!==n?n:a}else e=a;return this._then(e,void 0,void 0,t,void 0)}}},{"./util":36}],6:[function(t,e,r){e.exports=function(e,r,n,i){var o=t("./util"),s=o.tryCatch,a=o.errorObj,c=e._async;e.prototype.break=e.prototype.cancel=function(){if(!i.cancellation())return this._warn("cancellation is disabled");for(var t=this,e=t;t.isCancellable();){if(!t._cancelBy(e)){e._isFollowing()?e._followee().cancel():e._cancelBranched();break}var r=t._cancellationParent;if(null==r||!r.isCancellable()){t._isFollowing()?t._followee().cancel():t._cancelBranched();break}t._isFollowing()&&t._followee().cancel(),e=t,t=r}},e.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--},e.prototype._enoughBranchesHaveCancelled=function(){return void 0===this._branchesRemainingToCancel||this._branchesRemainingToCancel<=0},e.prototype._cancelBy=function(t){return t===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),!!this._enoughBranchesHaveCancelled()&&(this._invokeOnCancel(),!0))},e.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()},e.prototype._cancel=function(){this.isCancellable()&&(this._setCancelled(),c.invoke(this._cancelPromises,this,void 0))},e.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()},e.prototype._unsetOnCancel=function(){this._onCancelField=void 0},e.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()},e.prototype._doInvokeOnCancel=function(t,e){if(o.isArray(t))for(var r=0;r=0)return r[t]}return t.prototype._promiseCreated=function(){},t.prototype._pushContext=function(){},t.prototype._popContext=function(){return null},t._peekContext=t.prototype._peekContext=function(){},n.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,r.push(this._trace))},n.prototype._popContext=function(){if(void 0!==this._trace){var t=r.pop(),e=t._promiseCreated;return t._promiseCreated=null,e}return null},n.CapturedTrace=null,n.create=function(){if(e)return new n},n.deactivateLongStackTraces=function(){},n.activateLongStackTraces=function(){var r=t.prototype._pushContext,o=t.prototype._popContext,s=t._peekContext,a=t.prototype._peekContext,c=t.prototype._promiseCreated;n.deactivateLongStackTraces=function(){t.prototype._pushContext=r,t.prototype._popContext=o,t._peekContext=s,t.prototype._peekContext=a,t.prototype._promiseCreated=c,e=!1},e=!0,t.prototype._pushContext=n.prototype._pushContext,t.prototype._popContext=n.prototype._popContext,t._peekContext=t.prototype._peekContext=i,t.prototype._promiseCreated=function(){var t=this._peekContext();t&&null==t._promiseCreated&&(t._promiseCreated=this)}},n}},{}],9:[function(e,r,n){r.exports=function(r,n){var i,o,s,a=r._getDomain,c=r._async,u=e("./errors").Warning,f=e("./util"),h=f.canAttachTrace,l=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,d=null,p=null,b=!1,m=!(0==f.env("BLUEBIRD_DEBUG")),v=!(0==f.env("BLUEBIRD_WARNINGS")||!m&&!f.env("BLUEBIRD_WARNINGS")),y=!(0==f.env("BLUEBIRD_LONG_STACK_TRACES")||!m&&!f.env("BLUEBIRD_LONG_STACK_TRACES")),g=0!=f.env("BLUEBIRD_W_FORGOTTEN_RETURN")&&(v||!!f.env("BLUEBIRD_W_FORGOTTEN_RETURN"));r.prototype.suppressUnhandledRejections=function(){var t=this._target();t._bitField=-1048577&t._bitField|524288},r.prototype._ensurePossibleRejectionHandled=function(){0==(524288&this._bitField)&&(this._setRejectionIsUnhandled(),c.invokeLater(this._notifyUnhandledRejection,this,void 0))},r.prototype._notifyUnhandledRejectionIsHandled=function(){U("rejectionHandled",i,void 0,this)},r.prototype._setReturnedNonUndefined=function(){this._bitField=268435456|this._bitField},r.prototype._returnedNonUndefined=function(){return 0!=(268435456&this._bitField)},r.prototype._notifyUnhandledRejection=function(){if(this._isRejectionUnhandled()){var t=this._settledValue();this._setUnhandledRejectionIsNotified(),U("unhandledRejection",o,t,this)}},r.prototype._setUnhandledRejectionIsNotified=function(){this._bitField=262144|this._bitField},r.prototype._unsetUnhandledRejectionIsNotified=function(){this._bitField=-262145&this._bitField},r.prototype._isUnhandledRejectionNotified=function(){return(262144&this._bitField)>0},r.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField},r.prototype._unsetRejectionIsUnhandled=function(){this._bitField=-1048577&this._bitField,this._isUnhandledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())},r.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0},r.prototype._warn=function(t,e,r){return N(t,e,r||this)},r.onPossiblyUnhandledRejection=function(t){var e=a();o="function"==typeof t?null===e?t:e.bind(t):void 0},r.onUnhandledRejectionHandled=function(t){var e=a();i="function"==typeof t?null===e?t:e.bind(t):void 0};var _=function(){};r.longStackTraces=function(){if(c.haveItemsQueued()&&!$.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");if(!$.longStackTraces&&H()){var t=r.prototype._captureStackTrace,e=r.prototype._attachExtraTrace;$.longStackTraces=!0,_=function(){if(c.haveItemsQueued()&&!$.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");r.prototype._captureStackTrace=t,r.prototype._attachExtraTrace=e,n.deactivateLongStackTraces(),c.enableTrampoline(),$.longStackTraces=!1},r.prototype._captureStackTrace=R,r.prototype._attachExtraTrace=O,n.activateLongStackTraces(),c.disableTrampolineIfNecessary()}},r.hasLongStackTraces=function(){return $.longStackTraces&&H()};var w=function(){try{var t=document.createEvent("CustomEvent");return t.initCustomEvent("testingtheevent",!1,!0,{}),f.global.dispatchEvent(t),function(t,e){var r=document.createEvent("CustomEvent");return r.initCustomEvent(t.toLowerCase(),!1,!0,e),!f.global.dispatchEvent(r)}}catch(t){}return function(){return!1}}(),k=f.isNode?function(){return t.emit.apply(t,arguments)}:f.global?function(t){var e="on"+t.toLowerCase(),r=f.global[e];return!!r&&(r.apply(f.global,[].slice.call(arguments,1)),!0)}:function(){return!1};function x(t,e){return{promise:e}}var E={promiseCreated:x,promiseFulfilled:x,promiseRejected:x,promiseResolved:x,promiseCancelled:x,promiseChained:function(t,e,r){return{promise:e,child:r}},warning:function(t,e){return{warning:e}},unhandledRejection:function(t,e,r){return{reason:e,promise:r}},rejectionHandled:x},S=function(t){var e=!1;try{e=k.apply(null,arguments)}catch(t){c.throwLater(t),e=!0}var r=!1;try{r=w(t,E[t].apply(null,arguments))}catch(t){c.throwLater(t),r=!0}return r||e};function M(){return!1}function j(t,e,r){var n=this;try{t(e,r,function(t){if("function"!=typeof t)throw new TypeError("onCancel must be a function, got: "+f.toString(t));n._attachCancellationCallback(t)})}catch(t){return t}}function A(t){if(!this.isCancellable())return this;var e=this._onCancel();void 0!==e?f.isArray(e)?e.push(t):this._setOnCancel([e,t]):this._setOnCancel(t)}function C(){return this._onCancelField}function T(t){this._onCancelField=t}function P(){this._cancellationParent=void 0,this._onCancelField=void 0}function I(t,e){if(0!=(1&e)){this._cancellationParent=t;var r=t._branchesRemainingToCancel;void 0===r&&(r=0),t._branchesRemainingToCancel=r+1}0!=(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}r.config=function(t){if("longStackTraces"in(t=Object(t))&&(t.longStackTraces?r.longStackTraces():!t.longStackTraces&&r.hasLongStackTraces()&&_()),"warnings"in t){var e=t.warnings;$.warnings=!!e,g=$.warnings,f.isObject(e)&&"wForgottenReturn"in e&&(g=!!e.wForgottenReturn)}if("cancellation"in t&&t.cancellation&&!$.cancellation){if(c.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");r.prototype._clearCancellationData=P,r.prototype._propagateFrom=I,r.prototype._onCancel=C,r.prototype._setOnCancel=T,r.prototype._attachCancellationCallback=A,r.prototype._execute=j,B=I,$.cancellation=!0}"monitoring"in t&&(t.monitoring&&!$.monitoring?($.monitoring=!0,r.prototype._fireEvent=S):!t.monitoring&&$.monitoring&&($.monitoring=!1,r.prototype._fireEvent=M))},r.prototype._fireEvent=M,r.prototype._execute=function(t,e,r){try{t(e,r)}catch(t){return t}},r.prototype._onCancel=function(){},r.prototype._setOnCancel=function(t){},r.prototype._attachCancellationCallback=function(t){},r.prototype._captureStackTrace=function(){},r.prototype._attachExtraTrace=function(){},r.prototype._clearCancellationData=function(){},r.prototype._propagateFrom=function(t,e){};var B=function(t,e){0!=(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)};function F(){var t=this._boundTo;return void 0!==t&&t instanceof r?t.isFulfilled()?t.value():void 0:t}function R(){this._trace=new X(this._peekContext())}function O(t,e){if(h(t)){var r=this._trace;if(void 0!==r&&e&&(r=r._parent),void 0!==r)r.attachExtraTrace(t);else if(!t.__stackCleaned__){var n=D(t);f.notEnumerableProp(t,"stack",n.message+"\n"+n.stack.join("\n")),f.notEnumerableProp(t,"__stackCleaned__",!0)}}}function N(t,e,n){if($.warnings){var i,o=new u(t);if(e)n._attachExtraTrace(o);else if($.longStackTraces&&(i=r._peekContext()))i.attachExtraTrace(o);else{var s=D(o);o.stack=s.message+"\n"+s.stack.join("\n")}S("warning",o)||q(o,"",!0)}}function L(t){for(var e=[],r=0;r0?function(t){for(var e=t.stack.replace(/\s+$/g,"").split("\n"),r=0;r0&&(e=e.slice(r)),e}(t):[" (No stack trace)"])}}function q(t,e,r){if("undefined"!=typeof console){var n;if(f.isObject(t)){var i=t.stack;n=e+p(i,t)}else n=e+String(t);"function"==typeof s?s(n,r):"function"!=typeof console.log&&"object"!==_typeof(console.log)||console.log(n)}}function U(t,e,r,n){var i=!1;try{"function"==typeof e&&(i=!0,"rejectionHandled"===t?e(n):e(r,n))}catch(t){c.throwLater(t)}"unhandledRejection"===t?S(t,r,n)||i||q(r,"Unhandled rejection "):S(t,n)}function z(t){var e;if("function"==typeof t)e="[function "+(t.name||"anonymous")+"]";else{e=t&&"function"==typeof t.toString?t.toString():f.toString(t);if(/\[object [a-zA-Z0-9$_]+\]/.test(e))try{e=JSON.stringify(t)}catch(t){}0===e.length&&(e="(empty array)")}return"(<"+function(t){if(t.length<41)return t;return t.substr(0,38)+"..."}(e)+">, no stack trace)"}function H(){return"function"==typeof G}var K=function(){return!1},V=/[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;function W(t){var e=t.match(V);if(e)return{fileName:e[1],line:parseInt(e[2],10)}}function X(t){this._parent=t,this._promisesCreated=0;var e=this._length=1+(void 0===t?0:t._length);G(this,X),e>32&&this.uncycle()}f.inherits(X,Error),n.CapturedTrace=X,X.prototype.uncycle=function(){var t=this._length;if(!(t<2)){for(var e=[],r={},n=0,i=this;void 0!==i;++n)e.push(i),i=i._parent;for(n=(t=this._length=n)-1;n>=0;--n){var o=e[n].stack;void 0===r[o]&&(r[o]=n)}for(n=0;n0&&(e[s-1]._parent=void 0,e[s-1]._length=1),e[n]._parent=void 0,e[n]._length=1;var a=n>0?e[n-1]:this;s=0;--u)e[u]._length=c,c++;return}}}},X.prototype.attachExtraTrace=function(t){if(!t.__stackCleaned__){this.uncycle();for(var e=D(t),r=e.message,n=[e.stack],i=this;void 0!==i;)n.push(L(i.stack.split("\n"))),i=i._parent;!function(t){for(var e=t[0],r=1;r=0;--a)if(n[a]===o){s=a;break}for(a=s;a>=0;--a){var c=n[a];if(e[i]!==c)break;e.pop(),i--}e=n}}(n),function(t){for(var e=0;e=0)return d=/@/,p=e,b=!0,function(t){t.stack=(new Error).stack};try{throw new Error}catch(t){n="stack"in t}return"stack"in i||!n||"number"!=typeof Error.stackTraceLimit?(p=function(t,e){return"string"==typeof t?t:"object"!==(void 0===e?"undefined":_typeof(e))&&"function"!=typeof e||void 0===e.name||void 0===e.message?z(e):e.toString()},null):(d=t,p=e,function(t){Error.stackTraceLimit+=6;try{throw new Error}catch(e){t.stack=e.stack}Error.stackTraceLimit-=6})}();"undefined"!=typeof console&&void 0!==console.warn&&(s=function(t){console.warn(t)},f.isNode&&t.stderr.isTTY?s=function(t,e){var r=e?"":"";console.warn(r+t+"\n")}:f.isNode||"string"!=typeof(new Error).stack||(s=function(t,e){console.warn("%c"+t,e?"color: darkorange":"color: red")}));var $={warnings:v,longStackTraces:!1,cancellation:!1,monitoring:!1};return y&&r.longStackTraces(),{longStackTraces:function(){return $.longStackTraces},warnings:function(){return $.warnings},cancellation:function(){return $.cancellation},monitoring:function(){return $.monitoring},propagateFromFunction:function(){return B},boundValueFunction:function(){return F},checkForgottenReturns:function(t,e,r,n,i){if(void 0===t&&null!==e&&g){if(void 0!==i&&i._returnedNonUndefined())return;r&&(r+=" ");var o="a promise was created in a "+r+"handler but was not returned from it";n._warn(o,!0,e)}},setBounds:function(t,e){if(H()){for(var r,n,i=t.stack.split("\n"),o=e.stack.split("\n"),s=-1,a=-1,c=0;c=a||(K=function(t){if(l.test(t))return!0;var e=W(t);return!!(e&&e.fileName===r&&s<=e.line&&e.line<=a)})}},warn:N,deprecated:function(t,e){var r=t+" is deprecated and will be removed in a future version.";return e&&(r+=" Use "+e+" instead."),N(r)},CapturedTrace:X,fireDomEvent:w,fireGlobalEvent:k}}},{"./errors":12,"./util":36}],10:[function(t,e,r){e.exports=function(t){function e(){return this.value}function r(){throw this.reason}t.prototype.return=t.prototype.thenReturn=function(r){return r instanceof t&&r.suppressUnhandledRejections(),this._then(e,void 0,void 0,{value:r},void 0)},t.prototype.throw=t.prototype.thenThrow=function(t){return this._then(r,void 0,void 0,{reason:t},void 0)},t.prototype.catchThrow=function(t){if(arguments.length<=1)return this._then(void 0,r,void 0,{reason:t},void 0);var e=arguments[1];return this.caught(t,function(){throw e})},t.prototype.catchReturn=function(r){if(arguments.length<=1)return r instanceof t&&r.suppressUnhandledRejections(),this._then(void 0,e,void 0,{value:r},void 0);var n=arguments[1];n instanceof t&&n.suppressUnhandledRejections();return this.caught(r,function(){return n})}}},{}],11:[function(t,e,r){e.exports=function(t,e){var r=t.reduce,n=t.all;function i(){return n(this)}function o(t,n){return r(t,n,e,e)}t.prototype.each=function(t){return this.mapSeries(t)._then(i,void 0,void 0,this,void 0)},t.prototype.mapSeries=function(t){return r(this,t,e,e)},t.each=function(t,e){return o(t,e)._then(i,void 0,void 0,t,void 0)},t.mapSeries=o}},{}],12:[function(t,e,r){var n,i,o=t("./es5"),s=o.freeze,a=t("./util"),c=a.inherits,u=a.notEnumerableProp;function f(t,e){function r(n){if(!(this instanceof r))return new r(n);u(this,"message","string"==typeof n?n:e),u(this,"name",t),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this)}return c(r,Error),r}var h=f("Warning","warning"),l=f("CancellationError","cancellation error"),d=f("TimeoutError","timeout error"),p=f("AggregateError","aggregate error");try{n=TypeError,i=RangeError}catch(t){n=f("TypeError","type error"),i=f("RangeError","range error")}for(var b="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),m=0;m1?t.cancelPromise._reject(e):t.cancelPromise._cancel(),t.cancelPromise=null,!0)}function u(){return h.call(this,this.promise._target()._settledValue())}function f(t){if(!c(this,t))return o.e=t,o}function h(t){var n=this.promise,s=this.handler;if(!this.called){this.called=!0;var h=this.isFinallyHandler()?s.call(n._boundValue()):s.call(n._boundValue(),t);if(void 0!==h){n._setReturnedNonUndefined();var l=r(h,n);if(l instanceof e){if(null!=this.cancelPromise){if(l.isCancelled()){var d=new i("late cancellation observer");return n._attachExtraTrace(d),o.e=d,o}l.isPending()&&l._attachCancellationCallback(new a(this))}return l._then(u,f,void 0,this,void 0)}}}return n.isRejected()?(c(this),o.e=t,o):(c(this),t)}return s.prototype.isFinallyHandler=function(){return 0===this.type},a.prototype._resultCancelled=function(){c(this.finallyHandler)},e.prototype._passThrough=function(t,e,r,n){return"function"!=typeof t?this.then():this._then(r,n,void 0,new s(this,e,t),void 0)},e.prototype.lastly=e.prototype.finally=function(t){return this._passThrough(t,0,h,h)},e.prototype.tap=function(t){return this._passThrough(t,1,h)},s}},{"./util":36}],16:[function(t,e,r){e.exports=function(e,r,n,i,o,s){var a=t("./errors").TypeError,c=t("./util"),u=c.errorObj,f=c.tryCatch,h=[];function l(t,r,i,o){var s=this._promise=new e(n);s._captureStackTrace(),s._setOnCancel(this),this._stack=o,this._generatorFunction=t,this._receiver=r,this._generator=void 0,this._yieldHandlers="function"==typeof i?[i].concat(h):h,this._yieldedPromise=null}c.inherits(l,o),l.prototype._isResolved=function(){return null===this._promise},l.prototype._cleanup=function(){this._promise=this._generator=null},l.prototype._promiseCancelled=function(){if(!this._isResolved()){var t;if(void 0!==this._generator.return)this._promise._pushContext(),t=f(this._generator.return).call(this._generator,void 0),this._promise._popContext();else{var r=new e.CancellationError("generator .return() sentinel");e.coroutine.returnSentinel=r,this._promise._attachExtraTrace(r),this._promise._pushContext(),t=f(this._generator.throw).call(this._generator,r),this._promise._popContext(),t===u&&t.e===r&&(t=null)}var n=this._promise;this._cleanup(),t===u?n._rejectCallback(t.e,!1):n.cancel()}},l.prototype._promiseFulfilled=function(t){this._yieldedPromise=null,this._promise._pushContext();var e=f(this._generator.next).call(this._generator,t);this._promise._popContext(),this._continue(e)},l.prototype._promiseRejected=function(t){this._yieldedPromise=null,this._promise._attachExtraTrace(t),this._promise._pushContext();var e=f(this._generator.throw).call(this._generator,t);this._promise._popContext(),this._continue(e)},l.prototype._resultCancelled=function(){if(this._yieldedPromise instanceof e){var t=this._yieldedPromise;this._yieldedPromise=null,t.cancel()}},l.prototype.promise=function(){return this._promise},l.prototype._run=function(){this._generator=this._generatorFunction.call(this._receiver),this._receiver=this._generatorFunction=void 0,this._promiseFulfilled(void 0)},l.prototype._continue=function(t){var r=this._promise;if(t===u)return this._cleanup(),r._rejectCallback(t.e,!1);var n=t.value;if(!0===t.done)return this._cleanup(),r._resolveCallback(n);var o=i(n,this._promise);if(o instanceof e||null!==(o=function(t,r,n){for(var o=0;o0&&"function"==typeof arguments[e]&&(t=arguments[e]);var n=[].slice.call(arguments);t&&n.pop();var i=new r(n).promise();return void 0!==t?i.spread(t):i}}},{"./util":36}],18:[function(t,e,r){e.exports=function(e,r,n,i,o,s){var a=e._getDomain,c=t("./util"),u=c.tryCatch,f=c.errorObj,h=[];function l(t,e,r,n){this.constructor$(t),this._promise._captureStackTrace();var i=a();this._callback=null===i?e:i.bind(e),this._preservedValues=n===o?new Array(this.length()):null,this._limit=r,this._inFlight=0,this._queue=r>=1?[]:h,this._init$(void 0,-2)}function d(t,e,r,i){if("function"!=typeof e)return n("expecting a function but got "+c.classString(e));var o="object"===(void 0===r?"undefined":_typeof(r))&&null!==r?r.concurrency:0;return new l(t,e,o="number"==typeof o&&isFinite(o)&&o>=1?o:0,i).promise()}c.inherits(l,r),l.prototype._init=function(){},l.prototype._promiseFulfilled=function(t,r){var n=this._values,o=this.length(),a=this._preservedValues,c=this._limit;if(r<0){if(n[r=-1*r-1]=t,c>=1&&(this._inFlight--,this._drainQueue(),this._isResolved()))return!0}else{if(c>=1&&this._inFlight>=c)return n[r]=t,this._queue.push(r),!1;null!==a&&(a[r]=t);var h=this._promise,l=this._callback,d=h._boundValue();h._pushContext();var p=u(l).call(d,t,r,o),b=h._popContext();if(s.checkForgottenReturns(p,b,null!==a?"Promise.filter":"Promise.map",h),p===f)return this._reject(p.e),!0;var m=i(p,this._promise);if(m instanceof e){var v=(m=m._target())._bitField;if(0==(50397184&v))return c>=1&&this._inFlight++,n[r]=m,m._proxy(this,-1*(r+1)),!1;if(0==(33554432&v))return 0!=(16777216&v)?(this._reject(m._reason()),!0):(this._cancel(),!0);p=m._value()}n[r]=p}return++this._totalResolved>=o&&(null!==a?this._filter(n,a):this._resolve(n),!0)},l.prototype._drainQueue=function(){for(var t=this._queue,e=this._limit,r=this._values;t.length>0&&this._inFlight1){o.deprecated("calling Promise.try with more than 1 argument");var u=arguments[1],f=arguments[2];n=s.isArray(u)?a(t).apply(f,u):a(t).call(f,u)}else n=a(t)();var h=c._popContext();return o.checkForgottenReturns(n,h,"Promise.try",c),c._resolveFromSyncValue(n),c},e.prototype._resolveFromSyncValue=function(t){t===s.errorObj?this._rejectCallback(t.e,!1):this._resolveCallback(t,!0)}}},{"./util":36}],20:[function(t,e,r){var n=t("./util"),i=n.maybeWrapAsError,o=t("./errors").OperationalError,s=t("./es5");var a=/^(?:name|message|stack|cause)$/;function c(t){var e,r;if((r=t)instanceof Error&&s.getPrototypeOf(r)===Error.prototype){(e=new o(t)).name=t.name,e.message=t.message,e.stack=t.stack;for(var i=s.keys(t),c=0;c1){var r,n=new Array(e-1),o=0;for(r=0;r0&&"function"!=typeof t&&"function"!=typeof e){var r=".then() only accepts functions but was passed: "+c.classString(t);arguments.length>1&&(r+=", "+c.classString(e)),this._warn(r)}return this._then(t,e,void 0,void 0,void 0)},A.prototype.done=function(t,e){this._then(t,e,void 0,void 0,void 0)._setIsFinal()},A.prototype.spread=function(t){return"function"!=typeof t?i("expecting a function but got "+c.classString(t)):this.all()._then(t,void 0,void 0,m,void 0)},A.prototype.toJSON=function(){var t={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(t.fulfillmentValue=this.value(),t.isFulfilled=!0):this.isRejected()&&(t.rejectionReason=this.reason(),t.isRejected=!0),t},A.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new g(this).promise()},A.prototype.error=function(t){return this.caught(c.originatesFromRejection,t)},A.is=function(t){return t instanceof A},A.fromNode=A.fromCallback=function(t){var e=new A(b);e._captureStackTrace();var r=arguments.length>1&&!!Object(arguments[1]).multiArgs,n=j(t)(S(e,r));return n===M&&e._rejectCallback(n.e,!0),e._isFateSealed()||e._setAsyncGuaranteed(),e},A.all=function(t){return new g(t).promise()},A.cast=function(t){var e=y(t);return e instanceof A||((e=new A(b))._captureStackTrace(),e._setFulfilled(),e._rejectionHandler0=t),e},A.resolve=A.fulfilled=A.cast,A.reject=A.rejected=function(t){var e=new A(b);return e._captureStackTrace(),e._rejectCallback(t,!0),e},A.setScheduler=function(t){if("function"!=typeof t)throw new d("expecting a function but got "+c.classString(t));var e=h._schedule;return h._schedule=t,e},A.prototype._then=function(t,e,r,n,i){var o=void 0!==i,a=o?i:new A(b),c=this._target(),u=c._bitField;o||(a._propagateFrom(this,3),a._captureStackTrace(),void 0===n&&0!=(2097152&this._bitField)&&(n=0!=(50397184&u)?this._boundValue():c===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,a));var f=s();if(0!=(50397184&u)){var l,d,m=c._settlePromiseCtx;0!=(33554432&u)?(d=c._rejectionHandler0,l=t):0!=(16777216&u)?(d=c._fulfillmentHandler0,l=e,c._unsetRejectionIsUnhandled()):(m=c._settlePromiseLateCancellationObserver,d=new p("late cancellation observer"),c._attachExtraTrace(d),l=e),h.invoke(m,c,{handler:null===f?l:"function"==typeof l&&f.bind(l),promise:a,receiver:n,value:d})}else c._addCallbacks(t,e,a,n,f);return a},A.prototype._length=function(){return 65535&this._bitField},A.prototype._isFateSealed=function(){return 0!=(117506048&this._bitField)},A.prototype._isFollowing=function(){return 67108864==(67108864&this._bitField)},A.prototype._setLength=function(t){this._bitField=-65536&this._bitField|65535&t},A.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent("promiseFulfilled",this)},A.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},A.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},A.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},A.prototype._isFinal=function(){return(4194304&this._bitField)>0},A.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},A.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},A.prototype._setAsyncGuaranteed=function(){this._bitField=134217728|this._bitField},A.prototype._receiverAt=function(t){var e=0===t?this._receiver0:this[4*t-4+3];if(e!==a)return void 0===e&&this._isBound()?this._boundValue():e},A.prototype._promiseAt=function(t){return this[4*t-4+2]},A.prototype._fulfillmentHandlerAt=function(t){return this[4*t-4+0]},A.prototype._rejectionHandlerAt=function(t){return this[4*t-4+1]},A.prototype._boundValue=function(){},A.prototype._migrateCallback0=function(t){t._bitField;var e=t._fulfillmentHandler0,r=t._rejectionHandler0,n=t._promise0,i=t._receiverAt(0);void 0===i&&(i=a),this._addCallbacks(e,r,n,i,null)},A.prototype._migrateCallbackAt=function(t,e){var r=t._fulfillmentHandlerAt(e),n=t._rejectionHandlerAt(e),i=t._promiseAt(e),o=t._receiverAt(e);void 0===o&&(o=a),this._addCallbacks(r,n,i,o,null)},A.prototype._addCallbacks=function(t,e,r,n,i){var o=this._length();if(o>=65531&&(o=0,this._setLength(0)),0===o)this._promise0=r,this._receiver0=n,"function"==typeof t&&(this._fulfillmentHandler0=null===i?t:i.bind(t)),"function"==typeof e&&(this._rejectionHandler0=null===i?e:i.bind(e));else{var s=4*o-4;this[s+2]=r,this[s+3]=n,"function"==typeof t&&(this[s+0]=null===i?t:i.bind(t)),"function"==typeof e&&(this[s+1]=null===i?e:i.bind(e))}return this._setLength(o+1),o},A.prototype._proxy=function(t,e){this._addCallbacks(void 0,void 0,e,t,null)},A.prototype._resolveCallback=function(t,e){if(0==(117506048&this._bitField)){if(t===this)return this._rejectCallback(r(),!1);var n=y(t,this);if(!(n instanceof A))return this._fulfill(t);e&&this._propagateFrom(n,2);var i=n._target(),o=i._bitField;if(0==(50397184&o)){var s=this._length();s>0&&i._migrateCallback0(this);for(var a=1;a>>16)){if(t===this){var n=r();return this._attachExtraTrace(n),this._reject(n)}this._setFulfilled(),this._rejectionHandler0=t,(65535&e)>0&&(0!=(134217728&e)?this._settlePromises():h.settlePromises(this))}},A.prototype._reject=function(t){var e=this._bitField;if(!((117506048&e)>>>16)){if(this._setRejected(),this._fulfillmentHandler0=t,this._isFinal())return h.fatalError(t,c.isNode);(65535&e)>0?0!=(134217728&e)?this._settlePromises():h.settlePromises(this):this._ensurePossibleRejectionHandled()}},A.prototype._fulfillPromises=function(t,e){for(var r=1;r0){if(0!=(16842752&t)){var r=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,r,t),this._rejectPromises(e,r)}else{var n=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,n,t),this._fulfillPromises(e,n)}this._setLength(0)}this._clearCancellationData()},A.prototype._settledValue=function(){var t=this._bitField;return 0!=(33554432&t)?this._rejectionHandler0:0!=(16777216&t)?this._fulfillmentHandler0:void 0},A.defer=A.pending=function(){return k.deprecated("Promise.defer","new Promise"),{promise:new A(b),resolve:C,reject:T}},c.notEnumerableProp(A,"_makeSelfResolutionError",r),e("./method")(A,b,y,i,k),e("./bind")(A,b,y,k),e("./cancel")(A,g,i,k),e("./direct_resolve")(A),e("./synchronous_inspection")(A),e("./join")(A,g,y,b,k),A.Promise=A,e("./map.js")(A,g,i,y,b,k),e("./using.js")(A,i,y,w,b,k),e("./timers.js")(A,b,k),e("./generators.js")(A,i,b,y,o,k),e("./nodeify.js")(A),e("./call_get.js")(A),e("./props.js")(A,g,y,i),e("./race.js")(A,b,y,i),e("./reduce.js")(A,g,i,y,b,k),e("./settle.js")(A,g,k),e("./some.js")(A,g,i),e("./promisify.js")(A,b),e("./any.js")(A),e("./each.js")(A,b),e("./filter.js")(A,b),c.toFastProperties(A),c.toFastProperties(A.prototype),P({a:1}),P({b:2}),P({c:3}),P(1),P(function(){}),P(void 0),P(!1),P(new A(b)),k.setBounds(f.firstLineError,c.lastLineError),A}},{"./any.js":1,"./async":2,"./bind":3,"./call_get.js":5,"./cancel":6,"./catch_filter":7,"./context":8,"./debuggability":9,"./direct_resolve":10,"./each.js":11,"./errors":12,"./es5":13,"./filter.js":14,"./finally":15,"./generators.js":16,"./join":17,"./map.js":18,"./method":19,"./nodeback":20,"./nodeify.js":21,"./promise_array":23,"./promisify.js":24,"./props.js":25,"./race.js":27,"./reduce.js":28,"./settle.js":30,"./some.js":31,"./synchronous_inspection":32,"./thenables":33,"./timers.js":34,"./using.js":35,"./util":36}],23:[function(t,e,r){e.exports=function(e,r,n,i,o){var s=t("./util");s.isArray;function a(t){var n=this._promise=new e(r);t instanceof e&&n._propagateFrom(t,3),n._setOnCancel(this),this._values=t,this._length=0,this._totalResolved=0,this._init(void 0,-2)}return s.inherits(a,o),a.prototype.length=function(){return this._length},a.prototype.promise=function(){return this._promise},a.prototype._init=function t(r,o){var a=n(this._values,this._promise);if(a instanceof e){var c=(a=a._target())._bitField;if(this._values=a,0==(50397184&c))return this._promise._setAsyncGuaranteed(),a._then(t,this._reject,void 0,this,o);if(0==(33554432&c))return 0!=(16777216&c)?this._reject(a._reason()):this._cancel();a=a._value()}if(null!==(a=s.asArray(a)))0!==a.length?this._iterate(a):-5===o?this._resolveEmptyArray():this._resolve(function(t){switch(t){case-2:return[];case-3:return{}}}(o));else{var u=i("expecting an array or an iterable object but got "+s.classString(a)).reason();this._promise._rejectCallback(u,!1)}},a.prototype._iterate=function(t){var r=this.getActualLength(t.length);this._length=r,this._values=this.shouldCopyValues()?new Array(r):this._values;for(var i=this._promise,o=!1,s=null,a=0;a=this._length&&(this._resolve(this._values),!0)},a.prototype._promiseCancelled=function(){return this._cancel(),!0},a.prototype._promiseRejected=function(t){return this._totalResolved++,this._reject(t),!0},a.prototype._resultCancelled=function(){if(!this._isResolved()){var t=this._values;if(this._cancel(),t instanceof e)t.cancel();else for(var r=0;r=this._length){var r;if(this._isMap)r=function(t){for(var e=new o,r=t.length/2|0,n=0;n>1},e.prototype.props=function(){return h(this)},e.props=function(t){return h(t)}}},{"./es5":13,"./util":36}],26:[function(t,e,r){function n(t){this._capacity=t,this._length=0,this._front=0}n.prototype._willBeOverCapacity=function(t){return this._capacity=this._length&&(this._resolve(this._values),!0)},o.prototype._promiseFulfilled=function(t,e){var r=new i;return r._bitField=33554432,r._settledValueField=t,this._promiseResolved(e,r)},o.prototype._promiseRejected=function(t,e){var r=new i;return r._bitField=16777216,r._settledValueField=t,this._promiseResolved(e,r)},e.settle=function(t){return n.deprecated(".settle()",".reflect()"),new o(t).promise()},e.prototype.settle=function(){return e.settle(this)}}},{"./util":36}],31:[function(t,e,r){e.exports=function(e,r,n){var i=t("./util"),o=t("./errors").RangeError,s=t("./errors").AggregateError,a=i.isArray,c={};function u(t){this.constructor$(t),this._howMany=0,this._unwrap=!1,this._initialized=!1}function f(t,e){if((0|e)!==e||e<0)return n("expecting a positive integer\n\n See http://goo.gl/MqrFmX\n");var r=new u(t),i=r.promise();return r.setHowMany(e),r.init(),i}i.inherits(u,r),u.prototype._init=function(){if(this._initialized)if(0!==this._howMany){this._init$(void 0,-5);var t=a(this._values);!this._isResolved()&&t&&this._howMany>this._canPossiblyFulfill()&&this._reject(this._getRangeError(this.length()))}else this._resolve([])},u.prototype.init=function(){this._initialized=!0,this._init()},u.prototype.setUnwrap=function(){this._unwrap=!0},u.prototype.howMany=function(){return this._howMany},u.prototype.setHowMany=function(t){this._howMany=t},u.prototype._promiseFulfilled=function(t){return this._addFulfilled(t),this._fulfilled()===this.howMany()&&(this._values.length=this.howMany(),1===this.howMany()&&this._unwrap?this._resolve(this._values[0]):this._resolve(this._values),!0)},u.prototype._promiseRejected=function(t){return this._addRejected(t),this._checkOutcome()},u.prototype._promiseCancelled=function(){return this._values instanceof e||null==this._values?this._cancel():(this._addRejected(c),this._checkOutcome())},u.prototype._checkOutcome=function(){if(this.howMany()>this._canPossiblyFulfill()){for(var t=new s,e=this.length();e0?this._reject(t):this._cancel(),!0}return!1},u.prototype._fulfilled=function(){return this._totalResolved},u.prototype._rejected=function(){return this._values.length-this.length()},u.prototype._addRejected=function(t){this._values.push(t)},u.prototype._addFulfilled=function(t){this._values[this._totalResolved++]=t},u.prototype._canPossiblyFulfill=function(){return this.length()-this._rejected()},u.prototype._getRangeError=function(t){var e="Input array must contain at least "+this._howMany+" items but contains only "+t+" items";return new o(e)},u.prototype._resolveEmptyArray=function(){this._reject(this._getRangeError(0))},e.some=function(t,e){return f(t,e)},e.prototype.some=function(t){return f(this,t)},e._SomePromiseArray=u}},{"./errors":12,"./util":36}],32:[function(t,e,r){e.exports=function(t){function e(t){void 0!==t?(t=t._target(),this._bitField=t._bitField,this._settledValueField=t._isFateSealed()?t._settledValue():void 0):(this._bitField=0,this._settledValueField=void 0)}e.prototype._settledValue=function(){return this._settledValueField};var r=e.prototype.value=function(){if(!this.isFulfilled())throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},n=e.prototype.error=e.prototype.reason=function(){if(!this.isRejected())throw new TypeError("cannot get rejection reason of a non-rejected promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},i=e.prototype.isFulfilled=function(){return 0!=(33554432&this._bitField)},o=e.prototype.isRejected=function(){return 0!=(16777216&this._bitField)},s=e.prototype.isPending=function(){return 0==(50397184&this._bitField)},a=e.prototype.isResolved=function(){return 0!=(50331648&this._bitField)};e.prototype.isCancelled=t.prototype._isCancelled=function(){return 65536==(65536&this._bitField)},t.prototype.isCancelled=function(){return this._target()._isCancelled()},t.prototype.isPending=function(){return s.call(this._target())},t.prototype.isRejected=function(){return o.call(this._target())},t.prototype.isFulfilled=function(){return i.call(this._target())},t.prototype.isResolved=function(){return a.call(this._target())},t.prototype.value=function(){return r.call(this._target())},t.prototype.reason=function(){var t=this._target();return t._unsetRejectionIsUnhandled(),n.call(t)},t.prototype._value=function(){return this._settledValue()},t.prototype._reason=function(){return this._unsetRejectionIsUnhandled(),this._settledValue()},t.PromiseInspection=e}},{}],33:[function(t,e,r){e.exports=function(e,r){var n=t("./util"),i=n.errorObj,o=n.isObject;var s={}.hasOwnProperty;return function(t,a){if(o(t)){if(t instanceof e)return t;var c=function(t){try{return t.then}catch(t){return i.e=t,i}}(t);if(c===i){a&&a._pushContext();var u=e.reject(c.e);return a&&a._popContext(),u}if("function"==typeof c)return f=t,s.call(f,"_promise0")?(u=new e(r),t._then(u._fulfill,u._reject,void 0,u,null),u):function(t,o,s){var a=new e(r),c=a;s&&s._pushContext(),a._captureStackTrace(),s&&s._popContext();var u=!0,f=n.tryCatch(o).call(t,function(t){a&&(a._resolveCallback(t),a=null)},function(t){a&&(a._rejectCallback(t,u,!0),a=null)});return u=!1,a&&f===i&&(a._rejectCallback(f.e,!0,!0),a=null),c}(t,c,a)}var f;return t}}},{"./util":36}],34:[function(t,e,r){e.exports=function(e,r,n){var i=t("./util"),o=e.TimeoutError;function s(t){this.handle=t}s.prototype._resultCancelled=function(){clearTimeout(this.handle)};var a=function(t){return c(+this).thenReturn(t)},c=e.delay=function(t,i){var o,c;return void 0!==i?(o=e.resolve(i)._then(a,null,null,t,void 0),n.cancellation()&&i instanceof e&&o._setOnCancel(i)):(o=new e(r),c=setTimeout(function(){o._fulfill()},+t),n.cancellation()&&o._setOnCancel(new s(c))),o._setAsyncGuaranteed(),o};e.prototype.delay=function(t){return c(t,this)};function u(t){return clearTimeout(this.handle),t}function f(t){throw clearTimeout(this.handle),t}e.prototype.timeout=function(t,e){var r,a;t=+t;var c=new s(setTimeout(function(){var t,n,s,c;r.isPending()&&(t=r,s=a,c="string"!=typeof(n=e)?n instanceof Error?n:new o("operation timed out"):new o(n),i.markAsOriginatingFromRejection(c),t._attachExtraTrace(c),t._reject(c),null!=s&&s.cancel())},t));return n.cancellation()?(a=this.then(),(r=a._then(u,f,void 0,c,void 0))._setOnCancel(c)):r=this._then(u,f,void 0,c,void 0),r}}},{"./util":36}],35:[function(t,e,r){e.exports=function(e,r,n,i,o,s){var a=t("./util"),c=t("./errors").TypeError,u=t("./util").inherits,f=a.errorObj,h=a.tryCatch;function l(t){setTimeout(function(){throw t},0)}function d(t,r){var i=0,s=t.length,a=new e(o);return function o(){if(i>=s)return a._fulfill();var c,u,f=(c=t[i++],(u=n(c))!==c&&"function"==typeof c._isDisposable&&"function"==typeof c._getDisposer&&c._isDisposable()&&u._setDisposable(c._getDisposer()),u);if(f instanceof e&&f._isDisposable()){try{f=n(f._getDisposer().tryDispose(r),t.promise)}catch(t){return l(t)}if(f instanceof e)return f._then(o,l,null,null,null)}o()}(),a}function p(t,e,r){this._data=t,this._promise=e,this._context=r}function b(t,e,r){this.constructor$(t,e,r)}function m(t){return p.isDisposer(t)?(this.resources[this.index]._setDisposable(t),t.promise()):t}function v(t){this.length=t,this.promise=null,this[t-1]=null}p.prototype.data=function(){return this._data},p.prototype.promise=function(){return this._promise},p.prototype.resource=function(){return this.promise().isFulfilled()?this.promise().value():null},p.prototype.tryDispose=function(t){var e=this.resource(),r=this._context;void 0!==r&&r._pushContext();var n=null!==e?this.doDispose(e,t):null;return void 0!==r&&r._popContext(),this._promise._unsetDisposable(),this._data=null,n},p.isDisposer=function(t){return null!=t&&"function"==typeof t.resource&&"function"==typeof t.tryDispose},u(b,p),b.prototype.doDispose=function(t,e){return this.data().call(t,t,e)},v.prototype._resultCancelled=function(){for(var t=this.length,r=0;r0},e.prototype._getDisposer=function(){return this._disposer},e.prototype._unsetDisposable=function(){this._bitField=-131073&this._bitField,this._disposer=void 0},e.prototype.disposer=function(t){if("function"==typeof t)return new b(t,this,i());throw new c}}},{"./errors":12,"./util":36}],36:[function(e,r,i){var o=e("./es5"),s="undefined"==typeof navigator,a={e:{}},c,u="undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==n?n:void 0!==this?this:null;function f(){try{var t=c;return c=null,t.apply(this,arguments)}catch(t){return a.e=t,a}}function h(t){return c=t,f}var l=function(t,e){var r={}.hasOwnProperty;function n(){for(var n in this.constructor=t,this.constructor$=e,e.prototype)r.call(e.prototype,n)&&"$"!==n.charAt(n.length-1)&&(this[n+"$"]=e.prototype[n])}return n.prototype=e.prototype,t.prototype=new n,t.prototype};function d(t){return null==t||!0===t||!1===t||"string"==typeof t||"number"==typeof t}function p(t){return"function"==typeof t||"object"===(void 0===t?"undefined":_typeof(t))&&null!==t}function b(t){return d(t)?new Error(j(t)):t}function m(t,e){var r,n=t.length,i=new Array(n+1);for(r=0;r1,n=e.length>0&&!(1===e.length&&"constructor"===e[0]),i=w.test(t+"")&&o.names(t).length>0;if(r||n||i)return!0}return!1}catch(t){return!1}}function x(t){function e(){}e.prototype=t;for(var r=8;r--;)new e;return t}var E=/^[a-z$_][a-z$_0-9]*$/i;function S(t){return E.test(t)}function M(t,e,r){for(var n=new Array(t),i=0;i10||q[0]>0),D.isNode&&D.toFastProperties(t);try{throw new Error}catch(t){D.lastLineError=t}r.exports=D},{"./es5":13}]},{},[4])(4)}),"undefined"!=typeof window&&null!==window?window.P=window.Promise:"undefined"!=typeof self&&null!==self&&(self.P=self.Promise)}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:120}],230:[function(t,e,r){!function(e,r){function n(t,e){if(!t)throw new Error(e||"Assertion failed")}function i(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function o(t,e,r){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}var s;"object"===(void 0===e?"undefined":_typeof(e))?e.exports=o:r.BN=o,o.BN=o,o.wordSize=26;try{s=t("buffer").Buffer}catch(t){}function a(t,e,r){for(var n=0,i=Math.min(t.length,r),o=e;o=49&&s<=54?s-49+10:s>=17&&s<=22?s-17+10:15&s}return n}function c(t,e,r,n){for(var i=0,o=Math.min(t.length,r),s=e;s=49?a-49+10:a>=17?a-17+10:a}return i}o.isBN=function(t){return t instanceof o||null!==t&&"object"===(void 0===t?"undefined":_typeof(t))&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"==typeof t)return this._initNumber(t,e,r);if("object"===(void 0===t?"undefined":_typeof(t)))return this._initArray(t,e,r);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36);var i=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&i++,16===e?this._parseHex(t,i):this._parseBase(t,e,i),"-"===t[0]&&(this.negative=1),this.strip(),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(n("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i=0;i-=3)s=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[o]|=s<>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);else if("le"===r)for(i=0,o=0;i>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)i=a(t,r,r+6),this.words[n]|=i<>>26-o&4194303,(o+=24)>=26&&(o-=26,n++);r+6!==e&&(i=a(t,e,r+6),this.words[n]|=i<>>26-o&4194303),this.strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,s=o%n,a=Math.min(o,o-s)+r,u=0,f=r;f1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var u=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],h=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function l(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],s=i*o,a=67108863&s,c=s/67108864|0;r.words[0]=a;for(var u=1;u>>26,h=67108863&c,l=Math.min(u,e.length-1),d=Math.max(0,u-t.length+1);d<=l;d++){var p=u-d|0;f+=(s=(i=0|t.words[p])*(o=0|e.words[d])+h)/67108864|0,h=67108863&s}r.words[u]=0|h,c=0|f}return 0!==c?r.words[u]=0|c:r.length--,r.strip()}o.prototype.toString=function(t,e){var r;if(t=t||10,e=0|e||1,16===t||"hex"===t){r="";for(var i=0,o=0,s=0;s>>24-i&16777215)||s!==this.length-1?u[6-c.length]+c+r:c+r,(i+=2)>=26&&(i-=26,s--)}for(0!==o&&(r=o.toString(16)+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var l=f[t],d=h[t];r="";var p=this.clone();for(p.negative=0;!p.isZero();){var b=p.modn(d).toString(t);r=(p=p.idivn(d)).isZero()?b+r:u[l-b.length]+b+r}for(this.isZero()&&(r="0"+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return n(void 0!==s),this.toArrayLike(s,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,r){var i=this.byteLength(),o=r||Math.max(1,i);n(i<=o,"byte array longer than desired length"),n(o>0,"Requested array length <= 0"),this.strip();var s,a,c="le"===e,u=new t(o),f=this.clone();if(c){for(a=0;!f.isZero();a++)s=f.andln(255),f.iushrn(8),u[a]=s;for(;a=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0==(8191&e)&&(r+=13,e>>>=13),0==(127&e)&&(r+=7,e>>>=7),0==(15&e)&&(r+=4,e>>>=4),0==(3&e)&&(r+=2,e>>>=2),0==(1&e)&&r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){n("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){n("number"==typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o>>26;for(;0!==i&&o>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,s=0;s>26,this.words[s]=67108863&e;for(;0!==o&&s>26,this.words[s]=67108863&e;if(0===o&&s>>13,d=0|s[1],p=8191&d,b=d>>>13,m=0|s[2],v=8191&m,y=m>>>13,g=0|s[3],_=8191&g,w=g>>>13,k=0|s[4],x=8191&k,E=k>>>13,S=0|s[5],M=8191&S,j=S>>>13,A=0|s[6],C=8191&A,T=A>>>13,P=0|s[7],I=8191&P,B=P>>>13,F=0|s[8],R=8191&F,O=F>>>13,N=0|s[9],L=8191&N,D=N>>>13,q=0|a[0],U=8191&q,z=q>>>13,H=0|a[1],K=8191&H,V=H>>>13,W=0|a[2],X=8191&W,G=W>>>13,$=0|a[3],J=8191&$,Z=$>>>13,Q=0|a[4],Y=8191&Q,tt=Q>>>13,et=0|a[5],rt=8191&et,nt=et>>>13,it=0|a[6],ot=8191&it,st=it>>>13,at=0|a[7],ct=8191&at,ut=at>>>13,ft=0|a[8],ht=8191&ft,lt=ft>>>13,dt=0|a[9],pt=8191&dt,bt=dt>>>13;r.negative=t.negative^e.negative,r.length=19;var mt=(u+(n=Math.imul(h,U))|0)+((8191&(i=(i=Math.imul(h,z))+Math.imul(l,U)|0))<<13)|0;u=((o=Math.imul(l,z))+(i>>>13)|0)+(mt>>>26)|0,mt&=67108863,n=Math.imul(p,U),i=(i=Math.imul(p,z))+Math.imul(b,U)|0,o=Math.imul(b,z);var vt=(u+(n=n+Math.imul(h,K)|0)|0)+((8191&(i=(i=i+Math.imul(h,V)|0)+Math.imul(l,K)|0))<<13)|0;u=((o=o+Math.imul(l,V)|0)+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(v,U),i=(i=Math.imul(v,z))+Math.imul(y,U)|0,o=Math.imul(y,z),n=n+Math.imul(p,K)|0,i=(i=i+Math.imul(p,V)|0)+Math.imul(b,K)|0,o=o+Math.imul(b,V)|0;var yt=(u+(n=n+Math.imul(h,X)|0)|0)+((8191&(i=(i=i+Math.imul(h,G)|0)+Math.imul(l,X)|0))<<13)|0;u=((o=o+Math.imul(l,G)|0)+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(_,U),i=(i=Math.imul(_,z))+Math.imul(w,U)|0,o=Math.imul(w,z),n=n+Math.imul(v,K)|0,i=(i=i+Math.imul(v,V)|0)+Math.imul(y,K)|0,o=o+Math.imul(y,V)|0,n=n+Math.imul(p,X)|0,i=(i=i+Math.imul(p,G)|0)+Math.imul(b,X)|0,o=o+Math.imul(b,G)|0;var gt=(u+(n=n+Math.imul(h,J)|0)|0)+((8191&(i=(i=i+Math.imul(h,Z)|0)+Math.imul(l,J)|0))<<13)|0;u=((o=o+Math.imul(l,Z)|0)+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(x,U),i=(i=Math.imul(x,z))+Math.imul(E,U)|0,o=Math.imul(E,z),n=n+Math.imul(_,K)|0,i=(i=i+Math.imul(_,V)|0)+Math.imul(w,K)|0,o=o+Math.imul(w,V)|0,n=n+Math.imul(v,X)|0,i=(i=i+Math.imul(v,G)|0)+Math.imul(y,X)|0,o=o+Math.imul(y,G)|0,n=n+Math.imul(p,J)|0,i=(i=i+Math.imul(p,Z)|0)+Math.imul(b,J)|0,o=o+Math.imul(b,Z)|0;var _t=(u+(n=n+Math.imul(h,Y)|0)|0)+((8191&(i=(i=i+Math.imul(h,tt)|0)+Math.imul(l,Y)|0))<<13)|0;u=((o=o+Math.imul(l,tt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(M,U),i=(i=Math.imul(M,z))+Math.imul(j,U)|0,o=Math.imul(j,z),n=n+Math.imul(x,K)|0,i=(i=i+Math.imul(x,V)|0)+Math.imul(E,K)|0,o=o+Math.imul(E,V)|0,n=n+Math.imul(_,X)|0,i=(i=i+Math.imul(_,G)|0)+Math.imul(w,X)|0,o=o+Math.imul(w,G)|0,n=n+Math.imul(v,J)|0,i=(i=i+Math.imul(v,Z)|0)+Math.imul(y,J)|0,o=o+Math.imul(y,Z)|0,n=n+Math.imul(p,Y)|0,i=(i=i+Math.imul(p,tt)|0)+Math.imul(b,Y)|0,o=o+Math.imul(b,tt)|0;var wt=(u+(n=n+Math.imul(h,rt)|0)|0)+((8191&(i=(i=i+Math.imul(h,nt)|0)+Math.imul(l,rt)|0))<<13)|0;u=((o=o+Math.imul(l,nt)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(C,U),i=(i=Math.imul(C,z))+Math.imul(T,U)|0,o=Math.imul(T,z),n=n+Math.imul(M,K)|0,i=(i=i+Math.imul(M,V)|0)+Math.imul(j,K)|0,o=o+Math.imul(j,V)|0,n=n+Math.imul(x,X)|0,i=(i=i+Math.imul(x,G)|0)+Math.imul(E,X)|0,o=o+Math.imul(E,G)|0,n=n+Math.imul(_,J)|0,i=(i=i+Math.imul(_,Z)|0)+Math.imul(w,J)|0,o=o+Math.imul(w,Z)|0,n=n+Math.imul(v,Y)|0,i=(i=i+Math.imul(v,tt)|0)+Math.imul(y,Y)|0,o=o+Math.imul(y,tt)|0,n=n+Math.imul(p,rt)|0,i=(i=i+Math.imul(p,nt)|0)+Math.imul(b,rt)|0,o=o+Math.imul(b,nt)|0;var kt=(u+(n=n+Math.imul(h,ot)|0)|0)+((8191&(i=(i=i+Math.imul(h,st)|0)+Math.imul(l,ot)|0))<<13)|0;u=((o=o+Math.imul(l,st)|0)+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(I,U),i=(i=Math.imul(I,z))+Math.imul(B,U)|0,o=Math.imul(B,z),n=n+Math.imul(C,K)|0,i=(i=i+Math.imul(C,V)|0)+Math.imul(T,K)|0,o=o+Math.imul(T,V)|0,n=n+Math.imul(M,X)|0,i=(i=i+Math.imul(M,G)|0)+Math.imul(j,X)|0,o=o+Math.imul(j,G)|0,n=n+Math.imul(x,J)|0,i=(i=i+Math.imul(x,Z)|0)+Math.imul(E,J)|0,o=o+Math.imul(E,Z)|0,n=n+Math.imul(_,Y)|0,i=(i=i+Math.imul(_,tt)|0)+Math.imul(w,Y)|0,o=o+Math.imul(w,tt)|0,n=n+Math.imul(v,rt)|0,i=(i=i+Math.imul(v,nt)|0)+Math.imul(y,rt)|0,o=o+Math.imul(y,nt)|0,n=n+Math.imul(p,ot)|0,i=(i=i+Math.imul(p,st)|0)+Math.imul(b,ot)|0,o=o+Math.imul(b,st)|0;var xt=(u+(n=n+Math.imul(h,ct)|0)|0)+((8191&(i=(i=i+Math.imul(h,ut)|0)+Math.imul(l,ct)|0))<<13)|0;u=((o=o+Math.imul(l,ut)|0)+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(R,U),i=(i=Math.imul(R,z))+Math.imul(O,U)|0,o=Math.imul(O,z),n=n+Math.imul(I,K)|0,i=(i=i+Math.imul(I,V)|0)+Math.imul(B,K)|0,o=o+Math.imul(B,V)|0,n=n+Math.imul(C,X)|0,i=(i=i+Math.imul(C,G)|0)+Math.imul(T,X)|0,o=o+Math.imul(T,G)|0,n=n+Math.imul(M,J)|0,i=(i=i+Math.imul(M,Z)|0)+Math.imul(j,J)|0,o=o+Math.imul(j,Z)|0,n=n+Math.imul(x,Y)|0,i=(i=i+Math.imul(x,tt)|0)+Math.imul(E,Y)|0,o=o+Math.imul(E,tt)|0,n=n+Math.imul(_,rt)|0,i=(i=i+Math.imul(_,nt)|0)+Math.imul(w,rt)|0,o=o+Math.imul(w,nt)|0,n=n+Math.imul(v,ot)|0,i=(i=i+Math.imul(v,st)|0)+Math.imul(y,ot)|0,o=o+Math.imul(y,st)|0,n=n+Math.imul(p,ct)|0,i=(i=i+Math.imul(p,ut)|0)+Math.imul(b,ct)|0,o=o+Math.imul(b,ut)|0;var Et=(u+(n=n+Math.imul(h,ht)|0)|0)+((8191&(i=(i=i+Math.imul(h,lt)|0)+Math.imul(l,ht)|0))<<13)|0;u=((o=o+Math.imul(l,lt)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(L,U),i=(i=Math.imul(L,z))+Math.imul(D,U)|0,o=Math.imul(D,z),n=n+Math.imul(R,K)|0,i=(i=i+Math.imul(R,V)|0)+Math.imul(O,K)|0,o=o+Math.imul(O,V)|0,n=n+Math.imul(I,X)|0,i=(i=i+Math.imul(I,G)|0)+Math.imul(B,X)|0,o=o+Math.imul(B,G)|0,n=n+Math.imul(C,J)|0,i=(i=i+Math.imul(C,Z)|0)+Math.imul(T,J)|0,o=o+Math.imul(T,Z)|0,n=n+Math.imul(M,Y)|0,i=(i=i+Math.imul(M,tt)|0)+Math.imul(j,Y)|0,o=o+Math.imul(j,tt)|0,n=n+Math.imul(x,rt)|0,i=(i=i+Math.imul(x,nt)|0)+Math.imul(E,rt)|0,o=o+Math.imul(E,nt)|0,n=n+Math.imul(_,ot)|0,i=(i=i+Math.imul(_,st)|0)+Math.imul(w,ot)|0,o=o+Math.imul(w,st)|0,n=n+Math.imul(v,ct)|0,i=(i=i+Math.imul(v,ut)|0)+Math.imul(y,ct)|0,o=o+Math.imul(y,ut)|0,n=n+Math.imul(p,ht)|0,i=(i=i+Math.imul(p,lt)|0)+Math.imul(b,ht)|0,o=o+Math.imul(b,lt)|0;var St=(u+(n=n+Math.imul(h,pt)|0)|0)+((8191&(i=(i=i+Math.imul(h,bt)|0)+Math.imul(l,pt)|0))<<13)|0;u=((o=o+Math.imul(l,bt)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(L,K),i=(i=Math.imul(L,V))+Math.imul(D,K)|0,o=Math.imul(D,V),n=n+Math.imul(R,X)|0,i=(i=i+Math.imul(R,G)|0)+Math.imul(O,X)|0,o=o+Math.imul(O,G)|0,n=n+Math.imul(I,J)|0,i=(i=i+Math.imul(I,Z)|0)+Math.imul(B,J)|0,o=o+Math.imul(B,Z)|0,n=n+Math.imul(C,Y)|0,i=(i=i+Math.imul(C,tt)|0)+Math.imul(T,Y)|0,o=o+Math.imul(T,tt)|0,n=n+Math.imul(M,rt)|0,i=(i=i+Math.imul(M,nt)|0)+Math.imul(j,rt)|0,o=o+Math.imul(j,nt)|0,n=n+Math.imul(x,ot)|0,i=(i=i+Math.imul(x,st)|0)+Math.imul(E,ot)|0,o=o+Math.imul(E,st)|0,n=n+Math.imul(_,ct)|0,i=(i=i+Math.imul(_,ut)|0)+Math.imul(w,ct)|0,o=o+Math.imul(w,ut)|0,n=n+Math.imul(v,ht)|0,i=(i=i+Math.imul(v,lt)|0)+Math.imul(y,ht)|0,o=o+Math.imul(y,lt)|0;var Mt=(u+(n=n+Math.imul(p,pt)|0)|0)+((8191&(i=(i=i+Math.imul(p,bt)|0)+Math.imul(b,pt)|0))<<13)|0;u=((o=o+Math.imul(b,bt)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(L,X),i=(i=Math.imul(L,G))+Math.imul(D,X)|0,o=Math.imul(D,G),n=n+Math.imul(R,J)|0,i=(i=i+Math.imul(R,Z)|0)+Math.imul(O,J)|0,o=o+Math.imul(O,Z)|0,n=n+Math.imul(I,Y)|0,i=(i=i+Math.imul(I,tt)|0)+Math.imul(B,Y)|0,o=o+Math.imul(B,tt)|0,n=n+Math.imul(C,rt)|0,i=(i=i+Math.imul(C,nt)|0)+Math.imul(T,rt)|0,o=o+Math.imul(T,nt)|0,n=n+Math.imul(M,ot)|0,i=(i=i+Math.imul(M,st)|0)+Math.imul(j,ot)|0,o=o+Math.imul(j,st)|0,n=n+Math.imul(x,ct)|0,i=(i=i+Math.imul(x,ut)|0)+Math.imul(E,ct)|0,o=o+Math.imul(E,ut)|0,n=n+Math.imul(_,ht)|0,i=(i=i+Math.imul(_,lt)|0)+Math.imul(w,ht)|0,o=o+Math.imul(w,lt)|0;var jt=(u+(n=n+Math.imul(v,pt)|0)|0)+((8191&(i=(i=i+Math.imul(v,bt)|0)+Math.imul(y,pt)|0))<<13)|0;u=((o=o+Math.imul(y,bt)|0)+(i>>>13)|0)+(jt>>>26)|0,jt&=67108863,n=Math.imul(L,J),i=(i=Math.imul(L,Z))+Math.imul(D,J)|0,o=Math.imul(D,Z),n=n+Math.imul(R,Y)|0,i=(i=i+Math.imul(R,tt)|0)+Math.imul(O,Y)|0,o=o+Math.imul(O,tt)|0,n=n+Math.imul(I,rt)|0,i=(i=i+Math.imul(I,nt)|0)+Math.imul(B,rt)|0,o=o+Math.imul(B,nt)|0,n=n+Math.imul(C,ot)|0,i=(i=i+Math.imul(C,st)|0)+Math.imul(T,ot)|0,o=o+Math.imul(T,st)|0,n=n+Math.imul(M,ct)|0,i=(i=i+Math.imul(M,ut)|0)+Math.imul(j,ct)|0,o=o+Math.imul(j,ut)|0,n=n+Math.imul(x,ht)|0,i=(i=i+Math.imul(x,lt)|0)+Math.imul(E,ht)|0,o=o+Math.imul(E,lt)|0;var At=(u+(n=n+Math.imul(_,pt)|0)|0)+((8191&(i=(i=i+Math.imul(_,bt)|0)+Math.imul(w,pt)|0))<<13)|0;u=((o=o+Math.imul(w,bt)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(L,Y),i=(i=Math.imul(L,tt))+Math.imul(D,Y)|0,o=Math.imul(D,tt),n=n+Math.imul(R,rt)|0,i=(i=i+Math.imul(R,nt)|0)+Math.imul(O,rt)|0,o=o+Math.imul(O,nt)|0,n=n+Math.imul(I,ot)|0,i=(i=i+Math.imul(I,st)|0)+Math.imul(B,ot)|0,o=o+Math.imul(B,st)|0,n=n+Math.imul(C,ct)|0,i=(i=i+Math.imul(C,ut)|0)+Math.imul(T,ct)|0,o=o+Math.imul(T,ut)|0,n=n+Math.imul(M,ht)|0,i=(i=i+Math.imul(M,lt)|0)+Math.imul(j,ht)|0,o=o+Math.imul(j,lt)|0;var Ct=(u+(n=n+Math.imul(x,pt)|0)|0)+((8191&(i=(i=i+Math.imul(x,bt)|0)+Math.imul(E,pt)|0))<<13)|0;u=((o=o+Math.imul(E,bt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(L,rt),i=(i=Math.imul(L,nt))+Math.imul(D,rt)|0,o=Math.imul(D,nt),n=n+Math.imul(R,ot)|0,i=(i=i+Math.imul(R,st)|0)+Math.imul(O,ot)|0,o=o+Math.imul(O,st)|0,n=n+Math.imul(I,ct)|0,i=(i=i+Math.imul(I,ut)|0)+Math.imul(B,ct)|0,o=o+Math.imul(B,ut)|0,n=n+Math.imul(C,ht)|0,i=(i=i+Math.imul(C,lt)|0)+Math.imul(T,ht)|0,o=o+Math.imul(T,lt)|0;var Tt=(u+(n=n+Math.imul(M,pt)|0)|0)+((8191&(i=(i=i+Math.imul(M,bt)|0)+Math.imul(j,pt)|0))<<13)|0;u=((o=o+Math.imul(j,bt)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(L,ot),i=(i=Math.imul(L,st))+Math.imul(D,ot)|0,o=Math.imul(D,st),n=n+Math.imul(R,ct)|0,i=(i=i+Math.imul(R,ut)|0)+Math.imul(O,ct)|0,o=o+Math.imul(O,ut)|0,n=n+Math.imul(I,ht)|0,i=(i=i+Math.imul(I,lt)|0)+Math.imul(B,ht)|0,o=o+Math.imul(B,lt)|0;var Pt=(u+(n=n+Math.imul(C,pt)|0)|0)+((8191&(i=(i=i+Math.imul(C,bt)|0)+Math.imul(T,pt)|0))<<13)|0;u=((o=o+Math.imul(T,bt)|0)+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,n=Math.imul(L,ct),i=(i=Math.imul(L,ut))+Math.imul(D,ct)|0,o=Math.imul(D,ut),n=n+Math.imul(R,ht)|0,i=(i=i+Math.imul(R,lt)|0)+Math.imul(O,ht)|0,o=o+Math.imul(O,lt)|0;var It=(u+(n=n+Math.imul(I,pt)|0)|0)+((8191&(i=(i=i+Math.imul(I,bt)|0)+Math.imul(B,pt)|0))<<13)|0;u=((o=o+Math.imul(B,bt)|0)+(i>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(L,ht),i=(i=Math.imul(L,lt))+Math.imul(D,ht)|0,o=Math.imul(D,lt);var Bt=(u+(n=n+Math.imul(R,pt)|0)|0)+((8191&(i=(i=i+Math.imul(R,bt)|0)+Math.imul(O,pt)|0))<<13)|0;u=((o=o+Math.imul(O,bt)|0)+(i>>>13)|0)+(Bt>>>26)|0,Bt&=67108863;var Ft=(u+(n=Math.imul(L,pt))|0)+((8191&(i=(i=Math.imul(L,bt))+Math.imul(D,pt)|0))<<13)|0;return u=((o=Math.imul(D,bt))+(i>>>13)|0)+(Ft>>>26)|0,Ft&=67108863,c[0]=mt,c[1]=vt,c[2]=yt,c[3]=gt,c[4]=_t,c[5]=wt,c[6]=kt,c[7]=xt,c[8]=Et,c[9]=St,c[10]=Mt,c[11]=jt,c[12]=At,c[13]=Ct,c[14]=Tt,c[15]=Pt,c[16]=It,c[17]=Bt,c[18]=Ft,0!==u&&(c[19]=u,r.length++),r};function p(t,e,r){return(new b).mulp(t,e,r)}function b(t,e){this.x=t,this.y=e}Math.imul||(d=l),o.prototype.mulTo=function(t,e){var r=this.length+t.length;return 10===this.length&&10===t.length?d(this,t,e):r<63?l(this,t,e):r<1024?function(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o>>26)|0)>>>26,s&=67108863}r.words[o]=a,n=s,s=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}(this,t,e):p(this,t,e)},b.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,n=0;n>=1;return n},b.prototype.permute=function(t,e,r,n,i,o){for(var s=0;s>>=1)i++;return 1<>>=13,r[2*s+1]=8191&o,o>>>=13;for(s=2*e;s>=26,e+=i/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r>>i}return e}(t);if(0===e.length)return new o(1);for(var r=this,n=0;n=0);var e,r=t%26,i=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var s=0;for(e=0;e>>26-r}s&&(this.words[e]=s,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e=0),i=e?(e-e%26)/26:0;var o=t%26,s=Math.min((t-o)/26,this.length),a=67108863^67108863>>>o<s)for(this.length-=s,u=0;u=0&&(0!==f||u>=i);u--){var h=0|this.words[u];this.words[u]=f<<26-o|h>>>o,f=h&a}return c&&0!==f&&(c.words[c.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){n("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(n("number"==typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(c/67108864|0),this.words[i+r]=67108863&o}for(;i>26,this.words[i+r]=67108863&o;if(0===a)return this.strip();for(n(-1===a),a=0,i=0;i>26,this.words[i]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var r=(this.length,t.length),n=this.clone(),i=t,s=0|i.words[i.length-1];0!==(r=26-this._countBits(s))&&(i=i.ushln(r),n.iushln(r),s=0|i.words[i.length-1]);var a,c=n.length-i.length;if("mod"!==e){(a=new o(null)).length=c+1,a.words=new Array(a.length);for(var u=0;u=0;h--){var l=67108864*(0|n.words[i.length+h])+(0|n.words[i.length+h-1]);for(l=Math.min(l/s|0,67108863),n._ishlnsubmul(i,l,h);0!==n.negative;)l--,n.negative=0,n._ishlnsubmul(i,1,h),n.isZero()||(n.negative^=1);a&&(a.words[h]=l)}return a&&a.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},o.prototype.divmod=function(t,e,r){return n(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(a=this.neg().divmod(t,e),"mod"!==e&&(i=a.div.neg()),"div"!==e&&(s=a.mod.neg(),r&&0!==s.negative&&s.iadd(t)),{div:i,mod:s}):0===this.negative&&0!==t.negative?(a=this.divmod(t.neg(),e),"mod"!==e&&(i=a.div.neg()),{div:i,mod:a.mod}):0!=(this.negative&t.negative)?(a=this.neg().divmod(t.neg(),e),"div"!==e&&(s=a.mod.neg(),r&&0!==s.negative&&s.isub(t)),{div:a.div,mod:s}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var i,s,a},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,r=0,i=this.length-1;i>=0;i--)r=(e*r+(0|this.words[i]))%t;return r},o.prototype.idivn=function(t){n(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*e;this.words[r]=i/t|0,e=i%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i=new o(1),s=new o(0),a=new o(0),c=new o(1),u=0;e.isEven()&&r.isEven();)e.iushrn(1),r.iushrn(1),++u;for(var f=r.clone(),h=e.clone();!e.isZero();){for(var l=0,d=1;0==(e.words[0]&d)&&l<26;++l,d<<=1);if(l>0)for(e.iushrn(l);l-- >0;)(i.isOdd()||s.isOdd())&&(i.iadd(f),s.isub(h)),i.iushrn(1),s.iushrn(1);for(var p=0,b=1;0==(r.words[0]&b)&&p<26;++p,b<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(a.isOdd()||c.isOdd())&&(a.iadd(f),c.isub(h)),a.iushrn(1),c.iushrn(1);e.cmp(r)>=0?(e.isub(r),i.isub(a),s.isub(c)):(r.isub(e),a.isub(i),c.isub(s))}return{a:a,b:c,gcd:r.iushln(u)}},o.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i,s=new o(1),a=new o(0),c=r.clone();e.cmpn(1)>0&&r.cmpn(1)>0;){for(var u=0,f=1;0==(e.words[0]&f)&&u<26;++u,f<<=1);if(u>0)for(e.iushrn(u);u-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);for(var h=0,l=1;0==(r.words[0]&l)&&h<26;++h,l<<=1);if(h>0)for(r.iushrn(h);h-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);e.cmp(r)>=0?(e.isub(r),s.isub(a)):(r.isub(e),a.isub(s))}return(i=0===e.cmpn(1)?s:a).cmpn(0)<0&&i.iadd(t),i},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0==(1&this.words[0])},o.prototype.isOdd=function(){return 1==(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){n("number"==typeof t);var e=t%26,r=(t-e)/26,i=1<>>26,a&=67108863,this.words[s]=a}return 0!==o&&(this.words[s]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),n(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:it.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){ni&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new k(t)},o.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var m={k256:null,p224:null,p192:null,p25519:null};function v(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function y(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function g(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function w(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function k(t){if("string"==typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function x(t){k.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},v.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e0?r.isub(this.p):r.strip(),r},v.prototype.split=function(t,e){t.iushrn(this.n,0,e)},v.prototype.imulK=function(t){return t.imul(this.k)},i(y,v),y.prototype.split=function(t,e){for(var r=Math.min(t.length,9),n=0;n>>22,i=o}i>>>=22,t.words[n-10]=i,0===i&&t.length>10?t.length-=10:t.length-=9},y.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(m[t])return m[t];var e;if("k256"===t)e=new y;else if("p224"===t)e=new g;else if("p192"===t)e=new _;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new w}return m[t]=e,e},k.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},k.prototype._verify2=function(t,e){n(0==(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},k.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},k.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},k.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},k.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},k.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},k.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},k.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},k.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},k.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},k.prototype.isqr=function(t){return this.imul(t,t.clone())},k.prototype.sqr=function(t){return this.mul(t,t)},k.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2==1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);n(!i.isZero());var a=new o(1).toRed(this),c=a.redNeg(),u=this.m.subn(1).iushrn(1),f=this.m.bitLength();for(f=new o(2*f*f).toRed(this);0!==this.pow(f,u).cmp(c);)f.redIAdd(c);for(var h=this.pow(f,i),l=this.pow(t,i.addn(1).iushrn(1)),d=this.pow(t,i),p=s;0!==d.cmp(a);){for(var b=d,m=0;0!==b.cmp(a);m++)b=b.redSqr();n(m=0;n--){for(var u=e.words[n],f=c-1;f>=0;f--){var h=u>>f&1;i!==r[0]&&(i=this.sqr(i)),0!==h||0!==s?(s<<=1,s|=h,(4===++a||0===n&&0===f)&&(i=this.mul(i,r[s]),a=0,s=0)):a=0}c=26}return i},k.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},k.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new x(t)},i(x,k),x.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},x.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},x.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},x.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},x.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(void 0===e||e,this)},{buffer:17}],231:[function(t,e,r){arguments[4][16][0].apply(r,arguments)},{crypto:17,dup:16}],232:[function(t,e,r){arguments[4][18][0].apply(r,arguments)},{dup:18,"safe-buffer":340}],233:[function(t,e,r){arguments[4][19][0].apply(r,arguments)},{"./aes":232,"./ghash":237,"./incr32":238,"buffer-xor":259,"cipher-base":260,dup:19,inherits:315,"safe-buffer":340}],234:[function(t,e,r){arguments[4][20][0].apply(r,arguments)},{"./decrypter":235,"./encrypter":236,"./modes/list.json":246,dup:20}],235:[function(t,e,r){arguments[4][21][0].apply(r,arguments)},{"./aes":232,"./authCipher":233,"./modes":245,"./streamCipher":248,"cipher-base":260,dup:21,evp_bytestokey:300,inherits:315,"safe-buffer":340}],236:[function(t,e,r){arguments[4][22][0].apply(r,arguments)},{"./aes":232,"./authCipher":233,"./modes":245,"./streamCipher":248,"cipher-base":260,dup:22,evp_bytestokey:300,inherits:315,"safe-buffer":340}],237:[function(t,e,r){arguments[4][23][0].apply(r,arguments)},{dup:23,"safe-buffer":340}],238:[function(t,e,r){arguments[4][24][0].apply(r,arguments)},{dup:24}],239:[function(t,e,r){arguments[4][25][0].apply(r,arguments)},{"buffer-xor":259,dup:25}],240:[function(t,e,r){arguments[4][26][0].apply(r,arguments)},{"buffer-xor":259,dup:26,"safe-buffer":340}],241:[function(t,e,r){arguments[4][27][0].apply(r,arguments)},{dup:27,"safe-buffer":340}],242:[function(t,e,r){arguments[4][28][0].apply(r,arguments)},{dup:28,"safe-buffer":340}],243:[function(t,e,r){arguments[4][29][0].apply(r,arguments)},{"../incr32":238,"buffer-xor":259,dup:29,"safe-buffer":340}],244:[function(t,e,r){arguments[4][30][0].apply(r,arguments)},{dup:30}],245:[function(t,e,r){arguments[4][31][0].apply(r,arguments)},{"./cbc":239,"./cfb":240,"./cfb1":241,"./cfb8":242,"./ctr":243,"./ecb":244,"./list.json":246,"./ofb":247,dup:31}],246:[function(t,e,r){arguments[4][32][0].apply(r,arguments)},{dup:32}],247:[function(t,e,r){(function(e){var n=t("buffer-xor");r.encrypt=function(t,r){for(;t._cache.length=0||!r.umod(t.prime1)||!r.umod(t.prime2);)r=new n(i(e));return r}e.exports=o,o.getr=s}).call(this,t("buffer").Buffer)},{"bn.js":230,buffer:48,randombytes:337}],253:[function(t,e,r){arguments[4][39][0].apply(r,arguments)},{"./browser/algorithms.json":254,dup:39}],254:[function(t,e,r){arguments[4][40][0].apply(r,arguments)},{dup:40}],255:[function(t,e,r){arguments[4][41][0].apply(r,arguments)},{dup:41}],256:[function(t,e,r){(function(r){var n=t("create-hash"),i=t("stream"),o=t("inherits"),s=t("./sign"),a=t("./verify"),c=t("./algorithms.json");function u(t){i.Writable.call(this);var e=c[t];if(!e)throw new Error("Unknown message digest");this._hashType=e.hash,this._hash=n(e.hash),this._tag=e.id,this._signType=e.sign}function f(t){i.Writable.call(this);var e=c[t];if(!e)throw new Error("Unknown message digest");this._hash=n(e.hash),this._tag=e.id,this._signType=e.sign}function h(t){return new u(t)}function l(t){return new f(t)}Object.keys(c).forEach(function(t){c[t].id=new r(c[t].id,"hex"),c[t.toLowerCase()]=c[t]}),o(u,i.Writable),u.prototype._write=function(t,e,r){this._hash.update(t),r()},u.prototype.update=function(t,e){return"string"==typeof t&&(t=new r(t,e)),this._hash.update(t),this},u.prototype.sign=function(t,e){this.end();var r=this._hash.digest(),n=s(r,t,this._hashType,this._signType,this._tag);return e?n.toString(e):n},o(f,i.Writable),f.prototype._write=function(t,e,r){this._hash.update(t),r()},f.prototype.update=function(t,e){return"string"==typeof t&&(t=new r(t,e)),this._hash.update(t),this},f.prototype.verify=function(t,e,n){"string"==typeof e&&(e=new r(e,n)),this.end();var i=this._hash.digest();return a(e,i,t,this._signType,this._tag)},e.exports={Sign:h,Verify:l,createSign:h,createVerify:l}}).call(this,t("buffer").Buffer)},{"./algorithms.json":254,"./sign":257,"./verify":258,buffer:48,"create-hash":262,inherits:315,stream:139}],257:[function(t,e,r){(function(r){var n=t("create-hmac"),i=t("browserify-rsa"),o=t("elliptic").ec,s=t("bn.js"),a=t("parse-asn1"),c=t("./curves.json");function u(t,e,i,o){if((t=new r(t.toArray())).length0&&r.ishrn(n),r}function h(t,e,i){var o,s;do{for(o=new r(0);8*o.length=e)throw new Error("invalid sig")}e.exports=function(t,e,c,u,f){var h=o(c);if("ec"===h.type){if("ecdsa"!==u&&"ecdsa/rsa"!==u)throw new Error("wrong public key type");return function(t,e,r){var n=s[r.data.algorithm.curve.join(".")];if(!n)throw new Error("unknown curve "+r.data.algorithm.curve.join("."));var o=new i(n),a=r.data.subjectPrivateKey.data;return o.verify(e,t,a)}(t,e,h)}if("dsa"===h.type){if("dsa"!==u)throw new Error("wrong public key type");return function(t,e,r){var i=r.data.p,s=r.data.q,c=r.data.g,u=r.data.pub_key,f=o.signature.decode(t,"der"),h=f.s,l=f.r;a(h,s),a(l,s);var d=n.mont(i),p=h.invm(s);return 0===c.toRed(d).redPow(new n(e).mul(p).mod(s)).fromRed().mul(u.toRed(d).redPow(l.mul(p).mod(s)).fromRed()).mod(i).mod(s).cmp(l)}(t,e,h)}if("rsa"!==u&&"ecdsa/rsa"!==u)throw new Error("wrong public key type");e=r.concat([f,e]);for(var l=h.modulus.byteLength(),d=[1],p=0;e.length+d.length+2>>2),s=0,a=0;s7?t[n+2].toUpperCase():t[n+2];return r},l=function(t){var e=new r(t.slice(2),"hex"),n="0x"+a.keyFromPrivate(e).getPublic(!1,"hex").slice(2),i=u(n);return{address:h("0x"+i.slice(-40)),privateKey:t}},d=function(t){var e=n(t,3),r=e[0],o=i.pad(32,e[1]),s=i.pad(32,e[2]);return i.flatten([o,s,r])},p=function(t){return[i.slice(64,i.length(t),t),i.slice(0,32,t),i.slice(32,64,t)]},b=function(t){return function(e,n){var s=a.keyFromPrivate(new r(n.slice(2),"hex")).sign(new r(e.slice(2),"hex"),{canonical:!0});return d([o.fromString(i.fromNumber(t+s.recoveryParam)),i.pad(32,i.fromNat("0x"+s.r.toString(16))),i.pad(32,i.fromNat("0x"+s.s.toString(16)))])}},m=b(27);e.exports={create:function(t){var e=u(i.concat(i.random(32),t||i.random(32))),r=i.concat(i.concat(i.random(32),e),i.random(32)),n=u(r);return l(n)},toChecksum:h,fromPrivate:l,sign:m,makeSigner:b,recover:function(t,e){var n=p(e),o={v:i.toNumber(n[0]),r:n[1].slice(2),s:n[2].slice(2)},s="0x"+a.recoverPubKey(new r(t.slice(2),"hex"),o,o.v<2?o.v:1-o.v%2).encode("hex",!1).slice(2),c=u(s);return h("0x"+c.slice(-40))},encodeSignature:d,decodeSignature:p}}).call(this,t("buffer").Buffer)},{"./bytes":296,"./hash":297,"./nat":298,"./rlp":299,buffer:48,elliptic:278}],295:[function(t,e,r){arguments[4][157][0].apply(r,arguments)},{dup:157}],296:[function(t,e,r){arguments[4][158][0].apply(r,arguments)},{"./array.js":295,dup:158}],297:[function(t,e,r){arguments[4][159][0].apply(r,arguments)},{dup:159}],298:[function(t,e,r){var n=t("bn.js"),i=t("./bytes"),o=function(t){return new n(t.slice(2),16)},s=function(t){var e="0x"+("0x"===t.slice(0,2)?new n(t.slice(2),16):new n(t,10)).toString("hex");return"0x0"===e?"0x":e},a=function(t){return"string"==typeof t?/^0x/.test(t)?t:"0x"+t:"0x"+new n(t).toString("hex")},c=function(t){return o(t).toNumber()},u=function(t){return function(e,r){return"0x"+o(e)[t](o(r)).toString("hex")}},f=u("add"),h=u("mul"),l=u("div"),d=u("sub");e.exports={toString:function(t){return o(t).toString(10)},fromString:s,toNumber:c,fromNumber:a,toEther:function(t){return c(l(t,s("10000000000")))/1e8},fromEther:function(t){return h(a(Math.floor(1e8*t)),s("10000000000"))},toUint256:function(t){return i.pad(32,t)},add:f,mul:h,div:l,sub:d}},{"./bytes":296,"bn.js":230}],299:[function(t,e,r){e.exports={encode:function(t){var e=function(t){return(e=t.toString(16)).length%2==0?e:"0"+e;var e},r=function(t,r){return t<56?e(r+t):e(r+e(t).length/2+55)+e(t)};return"0x"+function t(e){if("string"==typeof e){var n=e.slice(2);return(2!=n.length||n>="80"?r(n.length/2,128):"")+n}var i=e.map(t).join("");return r(i.length/2,192)+i}(t)},decode:function(t){var e=2,r=function(){if(e>=t.length)throw"";var r=t.slice(e,e+2);return r<"80"?(e+=2,"0x"+r):r<"c0"?i():o()},n=function(){var r=parseInt(t.slice(e,e+=2),16)%64;return r<56?r:parseInt(t.slice(e,e+=2*(r-55)),16)},i=function(){var r=n();return"0x"+t.slice(e,e+=2*r)},o=function(){for(var t=2*n()+e,i=[];e=this._blockSize;){for(var o=this._blockOffset;o0;++s)this._length[s]+=a,(a=this._length[s]/4294967296|0)>0&&(this._length[s]-=4294967296*a);return this},i.prototype._update=function(t){throw new Error("_update is not implemented")},i.prototype.digest=function(t){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var e=this._digest();return void 0!==t&&(e=e.toString(t)),e},i.prototype._digest=function(){throw new Error("_digest is not implemented")},e.exports=i}).call(this,t("buffer").Buffer)},{buffer:48,inherits:315,stream:139}],302:[function(t,e,r){arguments[4][87][0].apply(r,arguments)},{"./hash/common":303,"./hash/hmac":304,"./hash/ripemd":305,"./hash/sha":306,"./hash/utils":313,dup:87}],303:[function(t,e,r){arguments[4][88][0].apply(r,arguments)},{"./utils":313,dup:88,"minimalistic-assert":319}],304:[function(t,e,r){arguments[4][89][0].apply(r,arguments)},{"./utils":313,dup:89,"minimalistic-assert":319}],305:[function(t,e,r){arguments[4][90][0].apply(r,arguments)},{"./common":303,"./utils":313,dup:90}],306:[function(t,e,r){arguments[4][91][0].apply(r,arguments)},{"./sha/1":307,"./sha/224":308,"./sha/256":309,"./sha/384":310,"./sha/512":311,dup:91}],307:[function(t,e,r){arguments[4][92][0].apply(r,arguments)},{"../common":303,"../utils":313,"./common":312,dup:92}],308:[function(t,e,r){arguments[4][93][0].apply(r,arguments)},{"../utils":313,"./256":309,dup:93}],309:[function(t,e,r){arguments[4][94][0].apply(r,arguments)},{"../common":303,"../utils":313,"./common":312,dup:94,"minimalistic-assert":319}],310:[function(t,e,r){arguments[4][95][0].apply(r,arguments)},{"../utils":313,"./512":311,dup:95}],311:[function(t,e,r){arguments[4][96][0].apply(r,arguments)},{"../common":303,"../utils":313,dup:96,"minimalistic-assert":319}],312:[function(t,e,r){arguments[4][97][0].apply(r,arguments)},{"../utils":313,dup:97}],313:[function(t,e,r){arguments[4][98][0].apply(r,arguments)},{dup:98,inherits:315,"minimalistic-assert":319}],314:[function(t,e,r){arguments[4][99][0].apply(r,arguments)},{dup:99,"hash.js":302,"minimalistic-assert":319,"minimalistic-crypto-utils":320}],315:[function(t,e,r){arguments[4][102][0].apply(r,arguments)},{dup:102}],316:[function(t,e,r){(function(r){var n=t("inherits"),i=t("hash-base"),o=new Array(16);function s(){i.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function a(t,e){return t<>>32-e}function c(t,e,r,n,i,o,s){return a(t+(e&r|~e&n)+i+o|0,s)+e|0}function u(t,e,r,n,i,o,s){return a(t+(e&n|r&~n)+i+o|0,s)+e|0}function f(t,e,r,n,i,o,s){return a(t+(e^r^n)+i+o|0,s)+e|0}function h(t,e,r,n,i,o,s){return a(t+(r^(e|~n))+i+o|0,s)+e|0}n(s,i),s.prototype._update=function(){for(var t=o,e=0;e<16;++e)t[e]=this._block.readInt32LE(4*e);var r=this._a,n=this._b,i=this._c,s=this._d;n=h(n=h(n=h(n=h(n=f(n=f(n=f(n=f(n=u(n=u(n=u(n=u(n=c(n=c(n=c(n=c(n,i=c(i,s=c(s,r=c(r,n,i,s,t[0],3614090360,7),n,i,t[1],3905402710,12),r,n,t[2],606105819,17),s,r,t[3],3250441966,22),i=c(i,s=c(s,r=c(r,n,i,s,t[4],4118548399,7),n,i,t[5],1200080426,12),r,n,t[6],2821735955,17),s,r,t[7],4249261313,22),i=c(i,s=c(s,r=c(r,n,i,s,t[8],1770035416,7),n,i,t[9],2336552879,12),r,n,t[10],4294925233,17),s,r,t[11],2304563134,22),i=c(i,s=c(s,r=c(r,n,i,s,t[12],1804603682,7),n,i,t[13],4254626195,12),r,n,t[14],2792965006,17),s,r,t[15],1236535329,22),i=u(i,s=u(s,r=u(r,n,i,s,t[1],4129170786,5),n,i,t[6],3225465664,9),r,n,t[11],643717713,14),s,r,t[0],3921069994,20),i=u(i,s=u(s,r=u(r,n,i,s,t[5],3593408605,5),n,i,t[10],38016083,9),r,n,t[15],3634488961,14),s,r,t[4],3889429448,20),i=u(i,s=u(s,r=u(r,n,i,s,t[9],568446438,5),n,i,t[14],3275163606,9),r,n,t[3],4107603335,14),s,r,t[8],1163531501,20),i=u(i,s=u(s,r=u(r,n,i,s,t[13],2850285829,5),n,i,t[2],4243563512,9),r,n,t[7],1735328473,14),s,r,t[12],2368359562,20),i=f(i,s=f(s,r=f(r,n,i,s,t[5],4294588738,4),n,i,t[8],2272392833,11),r,n,t[11],1839030562,16),s,r,t[14],4259657740,23),i=f(i,s=f(s,r=f(r,n,i,s,t[1],2763975236,4),n,i,t[4],1272893353,11),r,n,t[7],4139469664,16),s,r,t[10],3200236656,23),i=f(i,s=f(s,r=f(r,n,i,s,t[13],681279174,4),n,i,t[0],3936430074,11),r,n,t[3],3572445317,16),s,r,t[6],76029189,23),i=f(i,s=f(s,r=f(r,n,i,s,t[9],3654602809,4),n,i,t[12],3873151461,11),r,n,t[15],530742520,16),s,r,t[2],3299628645,23),i=h(i,s=h(s,r=h(r,n,i,s,t[0],4096336452,6),n,i,t[7],1126891415,10),r,n,t[14],2878612391,15),s,r,t[5],4237533241,21),i=h(i,s=h(s,r=h(r,n,i,s,t[12],1700485571,6),n,i,t[3],2399980690,10),r,n,t[10],4293915773,15),s,r,t[1],2240044497,21),i=h(i,s=h(s,r=h(r,n,i,s,t[8],1873313359,6),n,i,t[15],4264355552,10),r,n,t[6],2734768916,15),s,r,t[13],1309151649,21),i=h(i,s=h(s,r=h(r,n,i,s,t[4],4149444226,6),n,i,t[11],3174756917,10),r,n,t[2],718787259,15),s,r,t[9],3951481745,21),this._a=this._a+r|0,this._b=this._b+n|0,this._c=this._c+i|0,this._d=this._d+s|0},s.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=new r(16);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t},e.exports=s}).call(this,t("buffer").Buffer)},{buffer:48,"hash-base":317,inherits:315}],317:[function(t,e,r){arguments[4][105][0].apply(r,arguments)},{dup:105,inherits:315,"safe-buffer":340,stream:139}],318:[function(t,e,r){arguments[4][106][0].apply(r,arguments)},{"bn.js":230,brorand:231,dup:106}],319:[function(t,e,r){arguments[4][107][0].apply(r,arguments)},{dup:107}],320:[function(t,e,r){arguments[4][108][0].apply(r,arguments)},{dup:108}],321:[function(t,e,r){arguments[4][109][0].apply(r,arguments)},{dup:109}],322:[function(t,e,r){arguments[4][110][0].apply(r,arguments)},{"./certificate":323,"asn1.js":215,dup:110}],323:[function(t,e,r){arguments[4][111][0].apply(r,arguments)},{"asn1.js":215,dup:111}],324:[function(t,e,r){(function(r){var n=/Proc-Type: 4,ENCRYPTED\n\r?DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)\n\r?\n\r?([0-9A-z\n\r\+\/\=]+)\n\r?/m,i=/^-----BEGIN ((?:.* KEY)|CERTIFICATE)-----\n/m,o=/^-----BEGIN ((?:.* KEY)|CERTIFICATE)-----\n\r?([0-9A-z\n\r\+\/\=]+)\n\r?-----END \1-----$/m,s=t("evp_bytestokey"),a=t("browserify-aes");e.exports=function(t,e){var c,u=t.toString(),f=u.match(n);if(f){var h="aes"+f[1],l=new r(f[2],"hex"),d=new r(f[3].replace(/\r?\n/g,""),"base64"),p=s(e,l.slice(0,8),parseInt(f[1],10)).key,b=[],m=a.createDecipheriv(h,p,l);b.push(m.update(d)),b.push(m.final()),c=r.concat(b)}else{var v=u.match(o);c=new r(v[2].replace(/\r?\n/g,""),"base64")}return{tag:u.match(i)[1],data:c}}}).call(this,t("buffer").Buffer)},{"browserify-aes":234,buffer:48,evp_bytestokey:300}],325:[function(t,e,r){(function(r){var n=t("./asn1"),i=t("./aesid.json"),o=t("./fixProc"),s=t("browserify-aes"),a=t("pbkdf2");function c(t){var e;"object"!==(void 0===t?"undefined":_typeof(t))||r.isBuffer(t)||(e=t.passphrase,t=t.key),"string"==typeof t&&(t=new r(t));var c,u,f,h,l,d,p,b,m,v,y,g,_,w=o(t,e),k=w.tag,x=w.data;switch(k){case"CERTIFICATE":u=n.certificate.decode(x,"der").tbsCertificate.subjectPublicKeyInfo;case"PUBLIC KEY":switch(u||(u=n.PublicKey.decode(x,"der")),c=u.algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return n.RSAPublicKey.decode(u.subjectPublicKey.data,"der");case"1.2.840.10045.2.1":return u.subjectPrivateKey=u.subjectPublicKey,{type:"ec",data:u};case"1.2.840.10040.4.1":return u.algorithm.params.pub_key=n.DSAparam.decode(u.subjectPublicKey.data,"der"),{type:"dsa",data:u.algorithm.params};default:throw new Error("unknown key id "+c)}throw new Error("unknown key type "+k);case"ENCRYPTED PRIVATE KEY":x=n.EncryptedPrivateKey.decode(x,"der"),h=e,l=(f=x).algorithm.decrypt.kde.kdeparams.salt,d=parseInt(f.algorithm.decrypt.kde.kdeparams.iters.toString(),10),p=i[f.algorithm.decrypt.cipher.algo.join(".")],b=f.algorithm.decrypt.cipher.iv,m=f.subjectPrivateKey,v=parseInt(p.split("-")[1],10)/8,y=a.pbkdf2Sync(h,l,d,v),g=s.createDecipheriv(p,y,b),(_=[]).push(g.update(m)),_.push(g.final()),x=r.concat(_);case"PRIVATE KEY":switch(c=(u=n.PrivateKey.decode(x,"der")).algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return n.RSAPrivateKey.decode(u.subjectPrivateKey,"der");case"1.2.840.10045.2.1":return{curve:u.algorithm.curve,privateKey:n.ECPrivateKey.decode(u.subjectPrivateKey,"der").privateKey};case"1.2.840.10040.4.1":return u.algorithm.params.priv_key=n.DSAparam.decode(u.subjectPrivateKey,"der"),{type:"dsa",params:u.algorithm.params};default:throw new Error("unknown key id "+c)}throw new Error("unknown key type "+k);case"RSA PUBLIC KEY":return n.RSAPublicKey.decode(x,"der");case"RSA PRIVATE KEY":return n.RSAPrivateKey.decode(x,"der");case"DSA PRIVATE KEY":return{type:"dsa",params:n.DSAPrivateKey.decode(x,"der")};case"EC PRIVATE KEY":return{curve:(x=n.ECPrivateKey.decode(x,"der")).parameters.value,privateKey:x.privateKey};default:throw new Error("unknown key type "+k)}}e.exports=c,c.signature=n.signature}).call(this,t("buffer").Buffer)},{"./aesid.json":321,"./asn1":322,"./fixProc":324,"browserify-aes":234,buffer:48,pbkdf2:326}],326:[function(t,e,r){arguments[4][114][0].apply(r,arguments)},{"./lib/async":327,"./lib/sync":330,dup:114}],327:[function(t,e,r){(function(r,n){var i,o=t("./precondition"),s=t("./default-encoding"),a=t("./sync"),c=t("safe-buffer").Buffer,u=n.crypto&&n.crypto.subtle,f={sha:"SHA-1","sha-1":"SHA-1",sha1:"SHA-1",sha256:"SHA-256","sha-256":"SHA-256",sha384:"SHA-384","sha-384":"SHA-384","sha-512":"SHA-512",sha512:"SHA-512"},h=[];function l(t,e,r,n,i){return u.importKey("raw",t,{name:"PBKDF2"},!1,["deriveBits"]).then(function(t){return u.deriveBits({name:"PBKDF2",salt:e,iterations:r,hash:{name:i}},t,n<<3)}).then(function(t){return c.from(t)})}e.exports=function(t,e,d,p,b,m){if(c.isBuffer(t)||(t=c.from(t,s)),c.isBuffer(e)||(e=c.from(e,s)),o(d,p),"function"==typeof b&&(m=b,b=void 0),"function"!=typeof m)throw new Error("No callback provided to pbkdf2");var v,y,g=f[(b=b||"sha1").toLowerCase()];if(!g||"function"!=typeof n.Promise)return r.nextTick(function(){var r;try{r=a(t,e,d,p,b)}catch(t){return m(t)}m(null,r)});v=function(t){if(n.process&&!n.process.browser)return Promise.resolve(!1);if(!u||!u.importKey||!u.deriveBits)return Promise.resolve(!1);if(void 0!==h[t])return h[t];var e=l(i=i||c.alloc(8),i,10,128,t).then(function(){return!0}).catch(function(){return!1});return h[t]=e,e}(g).then(function(r){return r?l(t,e,d,p,g):a(t,e,d,p,b)}),y=m,v.then(function(t){r.nextTick(function(){y(null,t)})},function(t){r.nextTick(function(){y(t)})})}}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./default-encoding":328,"./precondition":329,"./sync":330,_process:120,"safe-buffer":340}],328:[function(t,e,r){(function(t){var r;t.browser?r="utf-8":r=parseInt(t.version.split(".")[0].slice(1),10)>=6?"utf-8":"binary";e.exports=r}).call(this,t("_process"))},{_process:120}],329:[function(t,e,r){arguments[4][117][0].apply(r,arguments)},{dup:117}],330:[function(t,e,r){arguments[4][118][0].apply(r,arguments)},{"./default-encoding":328,"./precondition":329,"create-hash/md5":264,dup:118,ripemd160:339,"safe-buffer":340,"sha.js":344}],331:[function(t,e,r){arguments[4][121][0].apply(r,arguments)},{"./privateDecrypt":333,"./publicEncrypt":334,dup:121}],332:[function(t,e,r){(function(r){var n=t("create-hash");function i(t){var e=new r(4);return e.writeUInt32BE(t,0),e}e.exports=function(t,e){for(var o,s=new r(""),a=0;s.lengthp||new s(e).cmp(d.modulus)>=0)throw new Error("decryption error");l=f?u(new s(e),d):a(e,d);var b=new r(p-l.length);if(b.fill(0),l=r.concat([b,l],p),4===h)return function(t,e){t.modulus;var n=t.modulus.byteLength(),s=(e.length,c("sha1").update(new r("")).digest()),a=s.length;if(0!==e[0])throw new Error("decryption error");var u=e.slice(1,a+1),f=e.slice(a+1),h=o(u,i(f,a)),l=o(f,i(h,n-a-1));if(function(t,e){t=new r(t),e=new r(e);var n=0,i=t.length;t.length!==e.length&&(n++,i=Math.min(t.length,e.length));var o=-1;for(;++o=e.length){o++;break}var s=e.slice(2,i-1);e.slice(i-1,i);("0002"!==n.toString("hex")&&!r||"0001"!==n.toString("hex")&&r)&&o++;s.length<8&&o++;if(o)throw new Error("decryption error");return e.slice(i)}(0,l,f);if(3===h)return l;throw new Error("unknown padding")}}).call(this,t("buffer").Buffer)},{"./mgf":332,"./withPublic":335,"./xor":336,"bn.js":230,"browserify-rsa":252,buffer:48,"create-hash":262,"parse-asn1":325}],334:[function(t,e,r){(function(r){var n=t("parse-asn1"),i=t("randombytes"),o=t("create-hash"),s=t("./mgf"),a=t("./xor"),c=t("bn.js"),u=t("./withPublic"),f=t("browserify-rsa");e.exports=function(t,e,h){var l;l=t.padding?t.padding:h?1:4;var d,p=n(t);if(4===l)d=function(t,e){var n=t.modulus.byteLength(),u=e.length,f=o("sha1").update(new r("")).digest(),h=f.length,l=2*h;if(u>n-l-2)throw new Error("message too long");var d=new r(n-u-l-2);d.fill(0);var p=n-h-1,b=i(h),m=a(r.concat([f,d,new r([1]),e],p),s(b,p)),v=a(b,s(m,h));return new c(r.concat([new r([0]),v,m],n))}(p,e);else if(1===l)d=function(t,e,n){var o,s=e.length,a=t.modulus.byteLength();if(s>a-11)throw new Error("message too long");n?(o=new r(a-s-3)).fill(255):o=function(t,e){var n,o=new r(t),s=0,a=i(2*t),c=0;for(;s=0)throw new Error("data too long for modulus")}return h?f(d,p):u(d,p)}}).call(this,t("buffer").Buffer)},{"./mgf":332,"./withPublic":335,"./xor":336,"bn.js":230,"browserify-rsa":252,buffer:48,"create-hash":262,"parse-asn1":325,randombytes:337}],335:[function(t,e,r){(function(r){var n=t("bn.js");e.exports=function(t,e){return new r(t.toRed(n.mont(e.modulus)).redPow(new n(e.publicExponent)).fromRed().toArray())}}).call(this,t("buffer").Buffer)},{"bn.js":230,buffer:48}],336:[function(t,e,r){arguments[4][126][0].apply(r,arguments)},{dup:126}],337:[function(t,e,r){(function(r,n){var i=t("safe-buffer").Buffer,o=n.crypto||n.msCrypto;o&&o.getRandomValues?e.exports=function(t,e){if(t>65536)throw new Error("requested too many random bytes");var s=new n.Uint8Array(t);t>0&&o.getRandomValues(s);var a=i.from(s.buffer);if("function"==typeof e)return r.nextTick(function(){e(null,a)});return a}:e.exports=function(){throw new Error("Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11")}}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:120,"safe-buffer":340}],338:[function(t,e,r){(function(e,n){function i(){throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11")}var o=t("safe-buffer"),s=t("randombytes"),a=o.Buffer,c=o.kMaxLength,u=n.crypto||n.msCrypto,f=Math.pow(2,32)-1;function h(t,e){if("number"!=typeof t||t!=t)throw new TypeError("offset must be a number");if(t>f||t<0)throw new TypeError("offset must be a uint32");if(t>c||t>e)throw new RangeError("offset out of range")}function l(t,e,r){if("number"!=typeof t||t!=t)throw new TypeError("size must be a number");if(t>f||t<0)throw new TypeError("size must be a uint32");if(t+e>r||t>c)throw new RangeError("buffer too small")}function d(t,r,n,i){if(e.browser){var o=t.buffer,a=new Uint8Array(o,r,n);return u.getRandomValues(a),i?void e.nextTick(function(){i(null,t)}):t}if(!i)return s(n).copy(t,r),t;s(n,function(e,n){if(e)return i(e);n.copy(t,r),i(null,t)})}u&&u.getRandomValues||!e.browser?(r.randomFill=function(t,e,r,i){if(!(a.isBuffer(t)||t instanceof n.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if("function"==typeof e)i=e,e=0,r=t.length;else if("function"==typeof r)i=r,r=t.length-e;else if("function"!=typeof i)throw new TypeError('"cb" argument must be a function');return h(e,t.length),l(r,e,t.length),d(t,e,r,i)},r.randomFillSync=function(t,e,r){void 0===e&&(e=0);if(!(a.isBuffer(t)||t instanceof n.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');h(e,t.length),void 0===r&&(r=t.length-e);return l(r,e,t.length),d(t,e,r)}):(r.randomFill=i,r.randomFillSync=i)}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:120,randombytes:337,"safe-buffer":340}],339:[function(t,e,r){(function(r){var n=t("inherits"),i=t("hash-base");function o(){i.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function s(t,e){return t<>>32-e}function a(t,e,r,n,i,o,a,c){return s(t+(e^r^n)+o+a|0,c)+i|0}function c(t,e,r,n,i,o,a,c){return s(t+(e&r|~e&n)+o+a|0,c)+i|0}function u(t,e,r,n,i,o,a,c){return s(t+((e|~r)^n)+o+a|0,c)+i|0}function f(t,e,r,n,i,o,a,c){return s(t+(e&n|r&~n)+o+a|0,c)+i|0}function h(t,e,r,n,i,o,a,c){return s(t+(e^(r|~n))+o+a|0,c)+i|0}n(o,i),o.prototype._update=function(){for(var t=new Array(16),e=0;e<16;++e)t[e]=this._block.readInt32LE(4*e);var r=this._a,n=this._b,i=this._c,o=this._d,l=this._e;l=a(l,r=a(r,n,i,o,l,t[0],0,11),n,i=s(i,10),o,t[1],0,14),n=a(n=s(n,10),i=a(i,o=a(o,l,r,n,i,t[2],0,15),l,r=s(r,10),n,t[3],0,12),o,l=s(l,10),r,t[4],0,5),o=a(o=s(o,10),l=a(l,r=a(r,n,i,o,l,t[5],0,8),n,i=s(i,10),o,t[6],0,7),r,n=s(n,10),i,t[7],0,9),r=a(r=s(r,10),n=a(n,i=a(i,o,l,r,n,t[8],0,11),o,l=s(l,10),r,t[9],0,13),i,o=s(o,10),l,t[10],0,14),i=a(i=s(i,10),o=a(o,l=a(l,r,n,i,o,t[11],0,15),r,n=s(n,10),i,t[12],0,6),l,r=s(r,10),n,t[13],0,7),l=c(l=s(l,10),r=a(r,n=a(n,i,o,l,r,t[14],0,9),i,o=s(o,10),l,t[15],0,8),n,i=s(i,10),o,t[7],1518500249,7),n=c(n=s(n,10),i=c(i,o=c(o,l,r,n,i,t[4],1518500249,6),l,r=s(r,10),n,t[13],1518500249,8),o,l=s(l,10),r,t[1],1518500249,13),o=c(o=s(o,10),l=c(l,r=c(r,n,i,o,l,t[10],1518500249,11),n,i=s(i,10),o,t[6],1518500249,9),r,n=s(n,10),i,t[15],1518500249,7),r=c(r=s(r,10),n=c(n,i=c(i,o,l,r,n,t[3],1518500249,15),o,l=s(l,10),r,t[12],1518500249,7),i,o=s(o,10),l,t[0],1518500249,12),i=c(i=s(i,10),o=c(o,l=c(l,r,n,i,o,t[9],1518500249,15),r,n=s(n,10),i,t[5],1518500249,9),l,r=s(r,10),n,t[2],1518500249,11),l=c(l=s(l,10),r=c(r,n=c(n,i,o,l,r,t[14],1518500249,7),i,o=s(o,10),l,t[11],1518500249,13),n,i=s(i,10),o,t[8],1518500249,12),n=u(n=s(n,10),i=u(i,o=u(o,l,r,n,i,t[3],1859775393,11),l,r=s(r,10),n,t[10],1859775393,13),o,l=s(l,10),r,t[14],1859775393,6),o=u(o=s(o,10),l=u(l,r=u(r,n,i,o,l,t[4],1859775393,7),n,i=s(i,10),o,t[9],1859775393,14),r,n=s(n,10),i,t[15],1859775393,9),r=u(r=s(r,10),n=u(n,i=u(i,o,l,r,n,t[8],1859775393,13),o,l=s(l,10),r,t[1],1859775393,15),i,o=s(o,10),l,t[2],1859775393,14),i=u(i=s(i,10),o=u(o,l=u(l,r,n,i,o,t[7],1859775393,8),r,n=s(n,10),i,t[0],1859775393,13),l,r=s(r,10),n,t[6],1859775393,6),l=u(l=s(l,10),r=u(r,n=u(n,i,o,l,r,t[13],1859775393,5),i,o=s(o,10),l,t[11],1859775393,12),n,i=s(i,10),o,t[5],1859775393,7),n=f(n=s(n,10),i=f(i,o=u(o,l,r,n,i,t[12],1859775393,5),l,r=s(r,10),n,t[1],2400959708,11),o,l=s(l,10),r,t[9],2400959708,12),o=f(o=s(o,10),l=f(l,r=f(r,n,i,o,l,t[11],2400959708,14),n,i=s(i,10),o,t[10],2400959708,15),r,n=s(n,10),i,t[0],2400959708,14),r=f(r=s(r,10),n=f(n,i=f(i,o,l,r,n,t[8],2400959708,15),o,l=s(l,10),r,t[12],2400959708,9),i,o=s(o,10),l,t[4],2400959708,8),i=f(i=s(i,10),o=f(o,l=f(l,r,n,i,o,t[13],2400959708,9),r,n=s(n,10),i,t[3],2400959708,14),l,r=s(r,10),n,t[7],2400959708,5),l=f(l=s(l,10),r=f(r,n=f(n,i,o,l,r,t[15],2400959708,6),i,o=s(o,10),l,t[14],2400959708,8),n,i=s(i,10),o,t[5],2400959708,6),n=h(n=s(n,10),i=f(i,o=f(o,l,r,n,i,t[6],2400959708,5),l,r=s(r,10),n,t[2],2400959708,12),o,l=s(l,10),r,t[4],2840853838,9),o=h(o=s(o,10),l=h(l,r=h(r,n,i,o,l,t[0],2840853838,15),n,i=s(i,10),o,t[5],2840853838,5),r,n=s(n,10),i,t[9],2840853838,11),r=h(r=s(r,10),n=h(n,i=h(i,o,l,r,n,t[7],2840853838,6),o,l=s(l,10),r,t[12],2840853838,8),i,o=s(o,10),l,t[2],2840853838,13),i=h(i=s(i,10),o=h(o,l=h(l,r,n,i,o,t[10],2840853838,12),r,n=s(n,10),i,t[14],2840853838,5),l,r=s(r,10),n,t[1],2840853838,12),l=h(l=s(l,10),r=h(r,n=h(n,i,o,l,r,t[3],2840853838,13),i,o=s(o,10),l,t[8],2840853838,14),n,i=s(i,10),o,t[11],2840853838,11),n=h(n=s(n,10),i=h(i,o=h(o,l,r,n,i,t[6],2840853838,8),l,r=s(r,10),n,t[15],2840853838,5),o,l=s(l,10),r,t[13],2840853838,6),o=s(o,10);var d=this._a,p=this._b,b=this._c,m=this._d,v=this._e;v=h(v,d=h(d,p,b,m,v,t[5],1352829926,8),p,b=s(b,10),m,t[14],1352829926,9),p=h(p=s(p,10),b=h(b,m=h(m,v,d,p,b,t[7],1352829926,9),v,d=s(d,10),p,t[0],1352829926,11),m,v=s(v,10),d,t[9],1352829926,13),m=h(m=s(m,10),v=h(v,d=h(d,p,b,m,v,t[2],1352829926,15),p,b=s(b,10),m,t[11],1352829926,15),d,p=s(p,10),b,t[4],1352829926,5),d=h(d=s(d,10),p=h(p,b=h(b,m,v,d,p,t[13],1352829926,7),m,v=s(v,10),d,t[6],1352829926,7),b,m=s(m,10),v,t[15],1352829926,8),b=h(b=s(b,10),m=h(m,v=h(v,d,p,b,m,t[8],1352829926,11),d,p=s(p,10),b,t[1],1352829926,14),v,d=s(d,10),p,t[10],1352829926,14),v=f(v=s(v,10),d=h(d,p=h(p,b,m,v,d,t[3],1352829926,12),b,m=s(m,10),v,t[12],1352829926,6),p,b=s(b,10),m,t[6],1548603684,9),p=f(p=s(p,10),b=f(b,m=f(m,v,d,p,b,t[11],1548603684,13),v,d=s(d,10),p,t[3],1548603684,15),m,v=s(v,10),d,t[7],1548603684,7),m=f(m=s(m,10),v=f(v,d=f(d,p,b,m,v,t[0],1548603684,12),p,b=s(b,10),m,t[13],1548603684,8),d,p=s(p,10),b,t[5],1548603684,9),d=f(d=s(d,10),p=f(p,b=f(b,m,v,d,p,t[10],1548603684,11),m,v=s(v,10),d,t[14],1548603684,7),b,m=s(m,10),v,t[15],1548603684,7),b=f(b=s(b,10),m=f(m,v=f(v,d,p,b,m,t[8],1548603684,12),d,p=s(p,10),b,t[12],1548603684,7),v,d=s(d,10),p,t[4],1548603684,6),v=f(v=s(v,10),d=f(d,p=f(p,b,m,v,d,t[9],1548603684,15),b,m=s(m,10),v,t[1],1548603684,13),p,b=s(b,10),m,t[2],1548603684,11),p=u(p=s(p,10),b=u(b,m=u(m,v,d,p,b,t[15],1836072691,9),v,d=s(d,10),p,t[5],1836072691,7),m,v=s(v,10),d,t[1],1836072691,15),m=u(m=s(m,10),v=u(v,d=u(d,p,b,m,v,t[3],1836072691,11),p,b=s(b,10),m,t[7],1836072691,8),d,p=s(p,10),b,t[14],1836072691,6),d=u(d=s(d,10),p=u(p,b=u(b,m,v,d,p,t[6],1836072691,6),m,v=s(v,10),d,t[9],1836072691,14),b,m=s(m,10),v,t[11],1836072691,12),b=u(b=s(b,10),m=u(m,v=u(v,d,p,b,m,t[8],1836072691,13),d,p=s(p,10),b,t[12],1836072691,5),v,d=s(d,10),p,t[2],1836072691,14),v=u(v=s(v,10),d=u(d,p=u(p,b,m,v,d,t[10],1836072691,13),b,m=s(m,10),v,t[0],1836072691,13),p,b=s(b,10),m,t[4],1836072691,7),p=c(p=s(p,10),b=c(b,m=u(m,v,d,p,b,t[13],1836072691,5),v,d=s(d,10),p,t[8],2053994217,15),m,v=s(v,10),d,t[6],2053994217,5),m=c(m=s(m,10),v=c(v,d=c(d,p,b,m,v,t[4],2053994217,8),p,b=s(b,10),m,t[1],2053994217,11),d,p=s(p,10),b,t[3],2053994217,14),d=c(d=s(d,10),p=c(p,b=c(b,m,v,d,p,t[11],2053994217,14),m,v=s(v,10),d,t[15],2053994217,6),b,m=s(m,10),v,t[0],2053994217,14),b=c(b=s(b,10),m=c(m,v=c(v,d,p,b,m,t[5],2053994217,6),d,p=s(p,10),b,t[12],2053994217,9),v,d=s(d,10),p,t[2],2053994217,12),v=c(v=s(v,10),d=c(d,p=c(p,b,m,v,d,t[13],2053994217,9),b,m=s(m,10),v,t[9],2053994217,12),p,b=s(b,10),m,t[7],2053994217,5),p=a(p=s(p,10),b=c(b,m=c(m,v,d,p,b,t[10],2053994217,15),v,d=s(d,10),p,t[14],2053994217,8),m,v=s(v,10),d,t[12],0,8),m=a(m=s(m,10),v=a(v,d=a(d,p,b,m,v,t[15],0,5),p,b=s(b,10),m,t[10],0,12),d,p=s(p,10),b,t[4],0,9),d=a(d=s(d,10),p=a(p,b=a(b,m,v,d,p,t[1],0,12),m,v=s(v,10),d,t[5],0,5),b,m=s(m,10),v,t[8],0,14),b=a(b=s(b,10),m=a(m,v=a(v,d,p,b,m,t[7],0,6),d,p=s(p,10),b,t[6],0,8),v,d=s(d,10),p,t[2],0,13),v=a(v=s(v,10),d=a(d,p=a(p,b,m,v,d,t[13],0,6),b,m=s(m,10),v,t[14],0,5),p,b=s(b,10),m,t[0],0,15),p=a(p=s(p,10),b=a(b,m=a(m,v,d,p,b,t[3],0,13),v,d=s(d,10),p,t[9],0,11),m,v=s(v,10),d,t[11],0,11),m=s(m,10);var y=this._b+i+m|0;this._b=this._c+o+v|0,this._c=this._d+l+d|0,this._d=this._e+r+p|0,this._e=this._a+n+b|0,this._a=y},o.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=new r(20);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t.writeInt32LE(this._e,16),t},e.exports=o}).call(this,t("buffer").Buffer)},{buffer:48,"hash-base":301,inherits:315}],340:[function(t,e,r){arguments[4][130][0].apply(r,arguments)},{buffer:48,dup:130}],341:[function(t,e,r){e.exports=t("scryptsy")},{scryptsy:342}],342:[function(t,e,r){(function(r){var n=t("pbkdf2").pbkdf2Sync,i=2147483647;function o(t,e,n,i,o){if(r.isBuffer(t)&&r.isBuffer(n))t.copy(n,i,e,e+o);else for(;o--;)n[i++]=t[e++]}e.exports=function(t,e,s,a,c,u,f){if(0===s||0!=(s&s-1))throw Error("N must be > 0 and a power of 2");if(s>i/128/a)throw Error("Parameter N is too large");if(a>i/128/c)throw Error("Parameter r is too large");var h,l=new r(256*a),d=new r(128*a*s),p=new Int32Array(16),b=new Int32Array(16),m=new r(64),v=n(t,e,1,128*c*a,"sha256");if(f){var y=c*s*2,g=0;h=function(){++g%1e3==0&&f({current:g,total:y,percent:g/y*100})}}for(var _=0;_>>32-e}function E(t){var e;for(e=0;e<16;e++)p[e]=(255&t[4*e+0])<<0,p[e]|=(255&t[4*e+1])<<8,p[e]|=(255&t[4*e+2])<<16,p[e]|=(255&t[4*e+3])<<24;for(o(p,0,b,0,16),e=8;e>0;e-=2)b[4]^=x(b[0]+b[12],7),b[8]^=x(b[4]+b[0],9),b[12]^=x(b[8]+b[4],13),b[0]^=x(b[12]+b[8],18),b[9]^=x(b[5]+b[1],7),b[13]^=x(b[9]+b[5],9),b[1]^=x(b[13]+b[9],13),b[5]^=x(b[1]+b[13],18),b[14]^=x(b[10]+b[6],7),b[2]^=x(b[14]+b[10],9),b[6]^=x(b[2]+b[14],13),b[10]^=x(b[6]+b[2],18),b[3]^=x(b[15]+b[11],7),b[7]^=x(b[3]+b[15],9),b[11]^=x(b[7]+b[3],13),b[15]^=x(b[11]+b[7],18),b[1]^=x(b[0]+b[3],7),b[2]^=x(b[1]+b[0],9),b[3]^=x(b[2]+b[1],13),b[0]^=x(b[3]+b[2],18),b[6]^=x(b[5]+b[4],7),b[7]^=x(b[6]+b[5],9),b[4]^=x(b[7]+b[6],13),b[5]^=x(b[4]+b[7],18),b[11]^=x(b[10]+b[9],7),b[8]^=x(b[11]+b[10],9),b[9]^=x(b[8]+b[11],13),b[10]^=x(b[9]+b[8],18),b[12]^=x(b[15]+b[14],7),b[13]^=x(b[12]+b[15],9),b[14]^=x(b[13]+b[12],13),b[15]^=x(b[14]+b[13],18);for(e=0;e<16;++e)p[e]=b[e]+p[e];for(e=0;e<16;e++){var r=4*e;t[r+0]=p[e]>>0&255,t[r+1]=p[e]>>8&255,t[r+2]=p[e]>>16&255,t[r+3]=p[e]>>24&255}}function S(t,e,r,n,i){for(var o=0;o=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=8*this._len;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var n=4294967295&r,i=(r-n)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var o=this._hash();return t?o.toString(t):o},i.prototype._update=function(){throw new Error("_update must be implemented by subclass")},e.exports=i},{"safe-buffer":340}],344:[function(t,e,r){arguments[4][132][0].apply(r,arguments)},{"./sha":345,"./sha1":346,"./sha224":347,"./sha256":348,"./sha384":349,"./sha512":350,dup:132}],345:[function(t,e,r){arguments[4][133][0].apply(r,arguments)},{"./hash":343,dup:133,inherits:315,"safe-buffer":340}],346:[function(t,e,r){arguments[4][134][0].apply(r,arguments)},{"./hash":343,dup:134,inherits:315,"safe-buffer":340}],347:[function(t,e,r){arguments[4][135][0].apply(r,arguments)},{"./hash":343,"./sha256":348,dup:135,inherits:315,"safe-buffer":340}],348:[function(t,e,r){arguments[4][136][0].apply(r,arguments)},{"./hash":343,dup:136,inherits:315,"safe-buffer":340}],349:[function(t,e,r){arguments[4][137][0].apply(r,arguments)},{"./hash":343,"./sha512":350,dup:137,inherits:315,"safe-buffer":340}],350:[function(t,e,r){arguments[4][138][0].apply(r,arguments)},{"./hash":343,dup:138,inherits:315,"safe-buffer":340}],351:[function(t,e,r){arguments[4][171][0].apply(r,arguments)},{dup:171}],352:[function(t,e,r){(function(t){var r;if(t.crypto&&crypto.getRandomValues){var n=new Uint8Array(16);r=function(){return crypto.getRandomValues(n),n}}if(!r){var i=new Array(16);r=function(){for(var t,e=0;e<16;e++)0==(3&e)&&(t=4294967296*Math.random()),i[e]=t>>>((3&e)<<3)&255;return i}}e.exports=r}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],353:[function(t,e,r){for(var n=t("./rng"),i=[],o={},s=0;s<256;s++)i[s]=(s+256).toString(16).substr(1),o[i[s]]=s;function a(t,e){var r=e||0,n=i;return n[t[r++]]+n[t[r++]]+n[t[r++]]+n[t[r++]]+"-"+n[t[r++]]+n[t[r++]]+"-"+n[t[r++]]+n[t[r++]]+"-"+n[t[r++]]+n[t[r++]]+"-"+n[t[r++]]+n[t[r++]]+n[t[r++]]+n[t[r++]]+n[t[r++]]+n[t[r++]]}var c=n(),u=[1|c[0],c[1],c[2],c[3],c[4],c[5]],f=16383&(c[6]<<8|c[7]),h=0,l=0;function d(t,e,r){var i=e&&r||0;"string"==typeof t&&(e="binary"==t?new Array(16):null,t=null);var o=(t=t||{}).random||(t.rng||n)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,e)for(var s=0;s<16;s++)e[i+s]=o[s];return e||a(o)}var p=d;p.v1=function(t,e,r){var n=e&&r||0,i=e||[],o=void 0!==(t=t||{}).clockseq?t.clockseq:f,s=void 0!==t.msecs?t.msecs:(new Date).getTime(),c=void 0!==t.nsecs?t.nsecs:l+1,d=s-h+(c-l)/1e4;if(d<0&&void 0===t.clockseq&&(o=o+1&16383),(d<0||s>h)&&void 0===t.nsecs&&(c=0),c>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");h=s,l=c,f=o;var p=(1e4*(268435455&(s+=122192928e5))+c)%4294967296;i[n++]=p>>>24&255,i[n++]=p>>>16&255,i[n++]=p>>>8&255,i[n++]=255&p;var b=s/4294967296*1e4&268435455;i[n++]=b>>>8&255,i[n++]=255&b,i[n++]=b>>>24&15|16,i[n++]=b>>>16&255,i[n++]=o>>>8|128,i[n++]=255&o;for(var m=t.node||u,v=0;v<6;v++)i[n+v]=m[v];return e||a(i)},p.v4=d,p.parse=function(t,e,r){var n=e&&r||0,i=0;for(e=e||[],t.toLowerCase().replace(/[0-9a-f]{2}/g,function(t){i<16&&(e[n+i++]=o[t])});i<16;)e[n+i++]=0;return e},p.unparse=a,e.exports=p},{"./rng":352}],354:[function(t,e,r){(function(r,n){var i=t("underscore"),o=t("web3-core"),s=t("web3-core-method"),a=t("bluebird"),c=t("eth-lib/lib/account"),u=t("eth-lib/lib/hash"),f=t("eth-lib/lib/rlp"),h=t("eth-lib/lib/nat"),l=t("eth-lib/lib/bytes"),d=t(void 0===r?"crypto-browserify":"crypto"),p=t("scrypt.js"),b=t("uuid"),m=t("web3-utils"),v=t("web3-core-helpers"),y=function(t){return i.isUndefined(t)||i.isNull(t)},g=function(t){for(;t&&t.startsWith("0x0");)t="0x"+t.slice(3);return t},_=function(t){return t.length%2==1&&(t=t.replace("0x","0x0")),t},w=function(){var t=this;o.packageInit(this,arguments),delete this.BatchRequest,delete this.extend;var e=[new s({name:"getId",call:"net_version",params:0,outputFormatter:m.hexToNumber}),new s({name:"getGasPrice",call:"eth_gasPrice",params:0}),new s({name:"getTransactionCount",call:"eth_getTransactionCount",params:2,inputFormatter:[function(t){if(m.isAddress(t))return t;throw new Error("Address "+t+' is not a valid address to get the "transactionCount".')},function(){return"latest"}]})];this._ethereumCall={},i.each(e,function(e){e.attachToObject(t._ethereumCall),e.setRequestManager(t._requestManager)}),this.wallet=new k(this)};function k(t){this._accounts=t,this.length=0,this.defaultKeyName="web3js_wallet"}w.prototype._addAccountFunctions=function(t){var e=this;return t.signTransaction=function(r,n){return e.signTransaction(r,t.privateKey,n)},t.sign=function(r){return e.sign(r,t.privateKey)},t.encrypt=function(r,n){return e.encrypt(t.privateKey,r,n)},t},w.prototype.create=function(t){return this._addAccountFunctions(c.create(t||m.randomHex(32)))},w.prototype.privateKeyToAccount=function(t){return this._addAccountFunctions(c.fromPrivate(t))},w.prototype.signTransaction=function(t,e,r){function n(t){if(!t.gas&&!t.gasLimit)throw new Error('"gas" is missing');var n={nonce:m.numberToHex(t.nonce),to:t.to?v.formatters.inputAddressFormatter(t.to):"0x",data:t.data||"0x",value:t.value?m.numberToHex(t.value):"0x",gas:m.numberToHex(t.gasLimit||t.gas),gasPrice:m.numberToHex(t.gasPrice),chainId:m.numberToHex(t.chainId)},o=f.encode([l.fromNat(n.nonce),l.fromNat(n.gasPrice),l.fromNat(n.gas),n.to.toLowerCase(),l.fromNat(n.value),n.data,l.fromNat(n.chainId||"0x1"),"0x","0x"]),s=u.keccak256(o),a=c.makeSigner(2*h.toNumber(n.chainId||"0x1")+35)(u.keccak256(o),e),d=f.decode(o).slice(0,6).concat(c.decodeSignature(a));d[7]=_(g(d[7])),d[8]=_(g(d[8]));var p=f.encode(d),b=f.decode(p),y={messageHash:s,v:g(b[6]),r:g(b[7]),s:g(b[8]),rawTransaction:p};return i.isFunction(r)&&r(null,y),y}return void 0!==t.nonce&&void 0!==t.chainId&&void 0!==t.gasPrice?a.resolve(n(t)):a.all([y(t.chainId)?this._ethereumCall.getId():t.chainId,y(t.gasPrice)?this._ethereumCall.getGasPrice():t.gasPrice,y(t.nonce)?this._ethereumCall.getTransactionCount(this.privateKeyToAccount(e).address):t.nonce]).then(function(e){if(y(e[0])||y(e[1])||y(e[2]))throw new Error('One of the values "chainId", "gasPrice", or "nonce" couldn\'t be fetched: '+JSON.stringify(e));return n(i.extend(t,{chainId:e[0],gasPrice:e[1],nonce:e[2]}))})},w.prototype.recoverTransaction=function(t){var e=f.decode(t),r=c.encodeSignature(e.slice(6,9)),n=l.toNumber(e[6]),i=n<35?[]:[l.fromNumber(n-35>>1),"0x","0x"],o=e.slice(0,6).concat(i),s=f.encode(o);return c.recover(u.keccak256(s),r)},w.prototype.hashMessage=function(t){var e=m.isHexStrict(t)?m.hexToUtf8(t):t,r="Ethereum Signed Message:\n"+e.length+e;return u.keccak256s(r)},w.prototype.sign=function(t,e){var r=this.hashMessage(t),n=c.sign(r,e),i=c.decodeSignature(n);return{message:t,messageHash:r,v:i[0],r:i[1],s:i[2],signature:n}},w.prototype.recover=function(t,e){return i.isObject(t)?this.recover(t.messageHash,c.encodeSignature([t.v,t.r,t.s])):(m.isHexStrict(t)||(t=this.hashMessage(t)),4===arguments.length?this.recover(t,c.encodeSignature([].slice.call(arguments,1,4))):c.recover(t,e))},w.prototype.decrypt=function(t,e,r){if(!i.isString(e))throw new Error("No password given.");var o,s,a=i.isObject(t)?t:JSON.parse(r?t.toLowerCase():t);if(3!==a.version)throw new Error("Not a valid V3 wallet");if("scrypt"===a.crypto.kdf)s=a.crypto.kdfparams,o=p(new n(e),new n(s.salt,"hex"),s.n,s.r,s.p,s.dklen);else{if("pbkdf2"!==a.crypto.kdf)throw new Error("Unsupported key derivation scheme");if("hmac-sha256"!==(s=a.crypto.kdfparams).prf)throw new Error("Unsupported parameters to PBKDF2");o=d.pbkdf2Sync(new n(e),new n(s.salt,"hex"),s.c,s.dklen,"sha256")}var c=new n(a.crypto.ciphertext,"hex");if(m.sha3(n.concat([o.slice(16,32),c])).replace("0x","")!==a.crypto.mac)throw new Error("Key derivation failed - possibly wrong password");var u=d.createDecipheriv(a.crypto.cipher,o.slice(0,16),new n(a.crypto.cipherparams.iv,"hex")),f="0x"+n.concat([u.update(c),u.final()]).toString("hex");return this.privateKeyToAccount(f)},w.prototype.encrypt=function(t,e,r){var i,o=this.privateKeyToAccount(t),s=(r=r||{}).salt||d.randomBytes(32),a=r.iv||d.randomBytes(16),c=r.kdf||"scrypt",u={dklen:r.dklen||32,salt:s.toString("hex")};if("pbkdf2"===c)u.c=r.c||262144,u.prf="hmac-sha256",i=d.pbkdf2Sync(new n(e),s,u.c,u.dklen,"sha256");else{if("scrypt"!==c)throw new Error("Unsupported kdf");u.n=r.n||8192,u.r=r.r||8,u.p=r.p||1,i=p(new n(e),s,u.n,u.r,u.p,u.dklen)}var f=d.createCipheriv(r.cipher||"aes-128-ctr",i.slice(0,16),a);if(!f)throw new Error("Unsupported cipher");var h=n.concat([f.update(new n(o.privateKey.replace("0x",""),"hex")),f.final()]),l=m.sha3(n.concat([i.slice(16,32),new n(h,"hex")])).replace("0x","");return{version:3,id:b.v4({random:r.uuid||d.randomBytes(16)}),address:o.address.toLowerCase().replace("0x",""),crypto:{ciphertext:h.toString("hex"),cipherparams:{iv:a.toString("hex")},cipher:r.cipher||"aes-128-ctr",kdf:c,kdfparams:u,mac:l.toString("hex")}}},k.prototype._findSafeIndex=function(t){return t=t||0,i.has(this,t)?this._findSafeIndex(t+1):t},k.prototype._currentIndexes=function(){return Object.keys(this).map(function(t){return parseInt(t)}).filter(function(t){return t<9e20})},k.prototype.create=function(t,e){for(var r=0;r=2?e.slice(2):e;var r=h.decodeParameters(t,e);return 1===r.__length__?r[0]:(delete r.__length__,r)},l.prototype.deploy=function(t,e){if((t=t||{}).arguments=t.arguments||[],!(t=this._getOrSetDefaultOptions(t)).data)return s._fireError(new Error('No "data" specified in neither the given options, nor the default options.'),null,null,e);var r=n.find(this.options.jsonInterface,function(t){return"constructor"===t.type})||{};return r.signature="constructor",this._createTxObject.apply({method:r,parent:this,deployData:t.data,_ethAccounts:this.constructor._ethAccounts},t.arguments)},l.prototype._generateEventOptions=function(){var t=Array.prototype.slice.call(arguments),e=this._getCallback(t),r=n.isObject(t[t.length-1])?t.pop():{},i=n.isString(t[0])?t[0]:"allevents";if(!(i="allevents"===i.toLowerCase()?{name:"ALLEVENTS",jsonInterface:this.options.jsonInterface}:this.options.jsonInterface.find(function(t){return"event"===t.type&&(t.name===i||t.signature==="0x"+i.replace("0x",""))})))throw new Error('Event "'+i.name+"\" doesn't exist in this contract.");if(!s.isAddress(this.options.address))throw new Error("This contract object doesn't have address set yet, please set an address first.");return{params:this._encodeEventABI(i,r),event:i,callback:e}},l.prototype.clone=function(){return new l(this.options.jsonInterface,this.options.address,this.options)},l.prototype.once=function(t,e,r){var i=Array.prototype.slice.call(arguments);if(!(r=this._getCallback(i)))throw new Error("Once requires a callback as the second parameter.");e&&delete e.fromBlock,this._on(t,e,function(t,e,i){i.unsubscribe(),n.isFunction(r)&&r(t,e,i)})},l.prototype._on=function(){var t=this._generateEventOptions.apply(this,arguments);this._checkListener("newListener",t.event.name,t.callback),this._checkListener("removeListener",t.event.name,t.callback);var e=new a({subscription:{params:1,inputFormatter:[c.inputLogFormatter],outputFormatter:this._decodeEventABI.bind(t.event),subscriptionHandler:function(t){t.removed?this.emit("changed",t):this.emit("data",t),n.isFunction(this.callback)&&this.callback(null,t,this)}},type:"eth",requestManager:this._requestManager});return e.subscribe("logs",t.params,t.callback||function(){}),e},l.prototype.getPastEvents=function(){var t=this._generateEventOptions.apply(this,arguments),e=new o({name:"getPastLogs",call:"eth_getLogs",params:1,inputFormatter:[c.inputLogFormatter],outputFormatter:this._decodeEventABI.bind(t.event)});e.setRequestManager(this._requestManager);var r=e.buildCall();return e=null,r(t.params,t.callback)},l.prototype._createTxObject=function(){var t=Array.prototype.slice.call(arguments),e={};if("function"===this.method.type&&(e.call=this.parent._executeMethod.bind(e,"call"),e.call.request=this.parent._executeMethod.bind(e,"call",!0)),e.send=this.parent._executeMethod.bind(e,"send"),e.send.request=this.parent._executeMethod.bind(e,"send",!0),e.encodeABI=this.parent._encodeMethodABI.bind(e),e.estimateGas=this.parent._executeMethod.bind(e,"estimate"),t&&this.method.inputs&&t.length!==this.method.inputs.length){if(this.nextMethod)return this.nextMethod.apply(null,t);throw u.InvalidNumberOfParams(t.length,this.method.inputs.length,this.method.name)}return e.arguments=t||[],e._method=this.method,e._parent=this.parent,e._ethAccounts=this.parent.constructor._ethAccounts||this._ethAccounts,this.deployData&&(e._deployData=this.deployData),e},l.prototype._processExecuteArguments=function(t,e){var r={};if(r.type=t.shift(),r.callback=this._parent._getCallback(t),"call"===r.type&&!0!==t[t.length-1]&&(n.isString(t[t.length-1])||isFinite(t[t.length-1]))&&(r.defaultBlock=t.pop()),r.options=n.isObject(t[t.length-1])?t.pop():{},r.generateRequest=!0===t[t.length-1]&&t.pop(),r.options=this._parent._getOrSetDefaultOptions(r.options),r.options.data=this.encodeABI(),!this._deployData&&!s.isAddress(this._parent.options.address))throw new Error("This contract object doesn't have address set yet, please set an address first.");return this._deployData||(r.options.to=this._parent.options.address),r.options.data?r:s._fireError(new Error("Couldn't find a matching contract method, or the number of parameters is wrong."),e.eventEmitter,e.reject,r.callback)},l.prototype._executeMethod=function(){var t=this,e=this._parent._processExecuteArguments.call(this,Array.prototype.slice.call(arguments),r),r=f("send"!==e.type),i=t.constructor._ethAccounts||t._ethAccounts;if(e.generateRequest){var a={params:[c.inputCallFormatter.call(this._parent,e.options),c.inputDefaultBlockNumberFormatter.call(this._parent,e.defaultBlock)],callback:e.callback};return"call"===e.type?(a.method="eth_call",a.format=this._parent._decodeMethodReturn.bind(null,this._method.outputs)):a.method="eth_sendTransaction",a}switch(e.type){case"estimate":return new o({name:"estimateGas",call:"eth_estimateGas",params:1,inputFormatter:[c.inputCallFormatter],outputFormatter:s.hexToNumber,requestManager:t._parent._requestManager,accounts:i,defaultAccount:t._parent.defaultAccount,defaultBlock:t._parent.defaultBlock}).createFunction()(e.options,e.callback);case"call":return new o({name:"call",call:"eth_call",params:2,inputFormatter:[c.inputCallFormatter,c.inputDefaultBlockNumberFormatter],outputFormatter:function(e){return t._parent._decodeMethodReturn(t._method.outputs,e)},requestManager:t._parent._requestManager,accounts:i,defaultAccount:t._parent.defaultAccount,defaultBlock:t._parent.defaultBlock}).createFunction()(e.options,e.defaultBlock,e.callback);case"send":if(!s.isAddress(e.options.from))return s._fireError(new Error('No "from" address specified in neither the given options, nor the default options.'),r.eventEmitter,r.reject,e.callback);if(n.isBoolean(this._method.payable)&&!this._method.payable&&e.options.value&&e.options.value>0)return s._fireError(new Error("Can not send value to non-payable contract method or constructor"),r.eventEmitter,r.reject,e.callback);var u={receiptFormatter:function(e){if(n.isArray(e.logs)){var r=n.map(e.logs,function(e){return t._parent._decodeEventABI.call({name:"ALLEVENTS",jsonInterface:t._parent.options.jsonInterface},e)});e.events={};var i=0;r.forEach(function(t){t.event?e.events[t.event]?Array.isArray(e.events[t.event])?e.events[t.event].push(t):e.events[t.event]=[e.events[t.event],t]:e.events[t.event]=t:(e.events[i]=t,i++)}),delete e.logs}return e},contractDeployFormatter:function(e){var r=t._parent.clone();return r.options.address=e.contractAddress,r}};return new o({name:"sendTransaction",call:"eth_sendTransaction",params:1,inputFormatter:[c.inputTransactionFormatter],requestManager:t._parent._requestManager,accounts:t.constructor._ethAccounts||t._ethAccounts,defaultAccount:t._parent.defaultAccount,defaultBlock:t._parent.defaultBlock,extraFormatters:u}).createFunction()(e.options,e.callback)}},e.exports=l},{underscore:355,"web3-core":201,"web3-core-helpers":185,"web3-core-method":187,"web3-core-promievent":190,"web3-core-subscriptions":198,"web3-eth-abi":205,"web3-utils":383}],357:[function(t,e,r){arguments[4][230][0].apply(r,arguments)},{buffer:17,dup:230}],358:[function(t,e,r){var n=t("web3-utils"),i=t("bn.js"),o=function(t){var e="A".charCodeAt(0),r="Z".charCodeAt(0);return(t=(t=t.toUpperCase()).substr(4)+t.substr(0,4)).split("").map(function(t){var n=t.charCodeAt(0);return n>=e&&n<=r?n-e+10:t}).join("")},s=function(t){for(var e,r=t;r.length>2;)e=r.slice(0,9),r=parseInt(e,10)%97+r.slice(e.length);return parseInt(r,10)%97},a=function(t){this._iban=t};a.toAddress=function(t){if(!(t=new a(t)).isDirect())throw new Error("IBAN is indirect and can't be converted");return t.toAddress()},a.toIban=function(t){return a.fromAddress(t).toString()},a.fromAddress=function(t){if(!n.isAddress(t))throw new Error("Provided address is not a valid address: "+t);t=t.replace("0x","").replace("0X","");var e=function(t,e){for(var r=t;r.length<2*e;)r="0"+r;return r}(new i(t,16).toString(36),15);return a.fromBban(e.toUpperCase())},a.fromBban=function(t){var e=("0"+(98-s(o("XE00"+t)))).slice(-2);return new a("XE"+e+t)},a.createIndirect=function(t){return a.fromBban("ETH"+t.institution+t.identifier)},a.isValid=function(t){return new a(t).isValid()},a.prototype.isValid=function(){return/^XE[0-9]{2}(ETH[0-9A-Z]{13}|[0-9A-Z]{30,31})$/.test(this._iban)&&1===s(o(this._iban))},a.prototype.isDirect=function(){return 34===this._iban.length||35===this._iban.length},a.prototype.isIndirect=function(){return 20===this._iban.length},a.prototype.checksum=function(){return this._iban.substr(2,2)},a.prototype.institution=function(){return this.isIndirect()?this._iban.substr(7,4):""},a.prototype.client=function(){return this.isIndirect()?this._iban.substr(11):""},a.prototype.toAddress=function(){if(this.isDirect()){var t=this._iban.substr(4),e=new i(t,36);return n.toChecksumAddress(e.toString(16,20))}return""},a.prototype.toString=function(){return this._iban},e.exports=a},{"bn.js":357,"web3-utils":383}],359:[function(t,e,r){var n=t("web3-core"),i=t("web3-core-method"),o=t("web3-utils"),s=t("web3-net"),a=t("web3-core-helpers").formatters,c=function(){var t=this;n.packageInit(this,arguments),this.net=new s(this.currentProvider);var e=null,r="latest";Object.defineProperty(this,"defaultAccount",{get:function(){return e},set:function(t){return t&&(e=o.toChecksumAddress(a.inputAddressFormatter(t))),c.forEach(function(t){t.defaultAccount=e}),t},enumerable:!0}),Object.defineProperty(this,"defaultBlock",{get:function(){return r},set:function(t){return r=t,c.forEach(function(t){t.defaultBlock=r}),t},enumerable:!0});var c=[new i({name:"getAccounts",call:"personal_listAccounts",params:0,outputFormatter:o.toChecksumAddress}),new i({name:"newAccount",call:"personal_newAccount",params:1,inputFormatter:[null],outputFormatter:o.toChecksumAddress}),new i({name:"unlockAccount",call:"personal_unlockAccount",params:3,inputFormatter:[a.inputAddressFormatter,null,null]}),new i({name:"lockAccount",call:"personal_lockAccount",params:1,inputFormatter:[a.inputAddressFormatter]}),new i({name:"importRawKey",call:"personal_importRawKey",params:2}),new i({name:"sendTransaction",call:"personal_sendTransaction",params:2,inputFormatter:[a.inputTransactionFormatter,null]}),new i({name:"sign",call:"personal_sign",params:3,inputFormatter:[a.inputSignFormatter,a.inputAddressFormatter,null]}),new i({name:"ecRecover",call:"personal_ecRecover",params:2,inputFormatter:[a.inputSignFormatter,null]})];c.forEach(function(e){e.attachToObject(t),e.setRequestManager(t._requestManager),e.defaultBlock=t.defaultBlock,e.defaultAccount=t.defaultAccount})};n.addProviders(c),e.exports=c},{"web3-core":201,"web3-core-helpers":185,"web3-core-method":187,"web3-net":363,"web3-utils":383}],360:[function(t,e,r){arguments[4][171][0].apply(r,arguments)},{dup:171}],361:[function(t,e,r){var n=t("underscore");e.exports=function(t){var e,r=this;return this.net.getId().then(function(t){return e=t,r.getBlock(0)}).then(function(r){var i="private";return"0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3"===r.hash&&1===e&&(i="main"),"0cd786a2425d16f152c658316c423e6ce1181e15c3295826d7c9904cba9ce303"===r.hash&&2===e&&(i="morden"),"0x41941023680923e0fe4d74a34bdac8141f2540e3ae90623718e47d66d1ca4a2d"===r.hash&&3===e&&(i="ropsten"),"0x6341fd3daf94b748c72ced5a5b26028f2474f5f00d824504e4fa37a75767e177"===r.hash&&4===e&&(i="rinkeby"),"0xa3c565fc15c7478862d50ccd6561e3c06b24cc509bf388941c25ea985ce32cb9"===r.hash&&42===e&&(i="kovan"),n.isFunction(t)&&t(null,i),i}).catch(function(e){if(!n.isFunction(t))throw e;t(e)})}},{underscore:360}],362:[function(t,e,r){var n=t("underscore"),i=t("web3-core"),o=t("web3-core-helpers"),s=t("web3-core-subscriptions").subscriptions,a=t("web3-core-method"),c=t("web3-utils"),u=t("web3-net"),f=t("web3-eth-personal"),h=t("web3-eth-contract"),l=t("web3-eth-iban"),d=t("web3-eth-accounts"),p=t("web3-eth-abi"),b=t("./getNetworkType.js"),m=o.formatters,v=function(t){return n.isString(t[0])&&0===t[0].indexOf("0x")?"eth_getBlockByHash":"eth_getBlockByNumber"},y=function(t){return n.isString(t[0])&&0===t[0].indexOf("0x")?"eth_getTransactionByBlockHashAndIndex":"eth_getTransactionByBlockNumberAndIndex"},g=function(t){return n.isString(t[0])&&0===t[0].indexOf("0x")?"eth_getUncleByBlockHashAndIndex":"eth_getUncleByBlockNumberAndIndex"},_=function(t){return n.isString(t[0])&&0===t[0].indexOf("0x")?"eth_getBlockTransactionCountByHash":"eth_getBlockTransactionCountByNumber"},w=function(t){return n.isString(t[0])&&0===t[0].indexOf("0x")?"eth_getUncleCountByBlockHash":"eth_getUncleCountByBlockNumber"},k=function(){var t=this;i.packageInit(this,arguments);var e=this.setProvider;this.setProvider=function(){e.apply(t,arguments),t.net.setProvider.apply(t,arguments),t.personal.setProvider.apply(t,arguments),t.accounts.setProvider.apply(t,arguments),t.Contract.setProvider(t.currentProvider,t.accounts)};var r=null,o="latest";Object.defineProperty(this,"defaultAccount",{get:function(){return r},set:function(e){return e&&(r=c.toChecksumAddress(m.inputAddressFormatter(e))),t.Contract.defaultAccount=r,t.personal.defaultAccount=r,x.forEach(function(t){t.defaultAccount=r}),e},enumerable:!0}),Object.defineProperty(this,"defaultBlock",{get:function(){return o},set:function(e){return o=e,t.Contract.defaultBlock=o,t.personal.defaultBlock=o,x.forEach(function(t){t.defaultBlock=o}),e},enumerable:!0}),this.clearSubscriptions=t._requestManager.clearSubscriptions,this.net=new u(this.currentProvider),this.net.getNetworkType=b.bind(this),this.accounts=new d(this.currentProvider),this.personal=new f(this.currentProvider),this.personal.defaultAccount=this.defaultAccount;var k=function(){h.apply(this,arguments)};k.setProvider=function(){h.setProvider.apply(this,arguments)},(k.prototype=Object.create(h.prototype)).constructor=k,this.Contract=k,this.Contract.defaultAccount=this.defaultAccount,this.Contract.defaultBlock=this.defaultBlock,this.Contract.setProvider(this.currentProvider,this.accounts),this.Iban=l,this.abi=p;var x=[new a({name:"getProtocolVersion",call:"eth_protocolVersion",params:0}),new a({name:"getCoinbase",call:"eth_coinbase",params:0}),new a({name:"isMining",call:"eth_mining",params:0}),new a({name:"getHashrate",call:"eth_hashrate",params:0,outputFormatter:c.hexToNumber}),new a({name:"isSyncing",call:"eth_syncing",params:0,outputFormatter:m.outputSyncingFormatter}),new a({name:"getGasPrice",call:"eth_gasPrice",params:0,outputFormatter:m.outputBigNumberFormatter}),new a({name:"getAccounts",call:"eth_accounts",params:0,outputFormatter:c.toChecksumAddress}),new a({name:"getBlockNumber",call:"eth_blockNumber",params:0,outputFormatter:c.hexToNumber}),new a({name:"getBalance",call:"eth_getBalance",params:2,inputFormatter:[m.inputAddressFormatter,m.inputDefaultBlockNumberFormatter],outputFormatter:m.outputBigNumberFormatter}),new a({name:"getStorageAt",call:"eth_getStorageAt",params:3,inputFormatter:[m.inputAddressFormatter,c.numberToHex,m.inputDefaultBlockNumberFormatter]}),new a({name:"getCode",call:"eth_getCode",params:2,inputFormatter:[m.inputAddressFormatter,m.inputDefaultBlockNumberFormatter]}),new a({name:"getBlock",call:v,params:2,inputFormatter:[m.inputBlockNumberFormatter,function(t){return!!t}],outputFormatter:m.outputBlockFormatter}),new a({name:"getUncle",call:g,params:2,inputFormatter:[m.inputBlockNumberFormatter,c.numberToHex],outputFormatter:m.outputBlockFormatter}),new a({name:"getBlockTransactionCount",call:_,params:1,inputFormatter:[m.inputBlockNumberFormatter],outputFormatter:c.hexToNumber}),new a({name:"getBlockUncleCount",call:w,params:1,inputFormatter:[m.inputBlockNumberFormatter],outputFormatter:c.hexToNumber}),new a({name:"getTransaction",call:"eth_getTransactionByHash",params:1,inputFormatter:[null],outputFormatter:m.outputTransactionFormatter}),new a({name:"getTransactionFromBlock",call:y,params:2,inputFormatter:[m.inputBlockNumberFormatter,c.numberToHex],outputFormatter:m.outputTransactionFormatter}),new a({name:"getTransactionReceipt",call:"eth_getTransactionReceipt",params:1,inputFormatter:[null],outputFormatter:m.outputTransactionReceiptFormatter}),new a({name:"getTransactionCount",call:"eth_getTransactionCount",params:2,inputFormatter:[m.inputAddressFormatter,m.inputDefaultBlockNumberFormatter],outputFormatter:c.hexToNumber}),new a({name:"sendSignedTransaction",call:"eth_sendRawTransaction",params:1,inputFormatter:[null]}),new a({name:"signTransaction",call:"eth_signTransaction",params:1,inputFormatter:[m.inputTransactionFormatter]}),new a({name:"sendTransaction",call:"eth_sendTransaction",params:1,inputFormatter:[m.inputTransactionFormatter]}),new a({name:"sign",call:"eth_sign",params:2,inputFormatter:[m.inputSignFormatter,m.inputAddressFormatter],transformPayload:function(t){return t.params.reverse(),t}}),new a({name:"call",call:"eth_call",params:2,inputFormatter:[m.inputCallFormatter,m.inputDefaultBlockNumberFormatter]}),new a({name:"estimateGas",call:"eth_estimateGas",params:1,inputFormatter:[m.inputCallFormatter],outputFormatter:c.hexToNumber}),new a({name:"getCompilers",call:"eth_getCompilers",params:0}),new a({name:"compile.solidity",call:"eth_compileSolidity",params:1}),new a({name:"compile.lll",call:"eth_compileLLL",params:1}),new a({name:"compile.serpent",call:"eth_compileSerpent",params:1}),new a({name:"submitWork",call:"eth_submitWork",params:3}),new a({name:"getWork",call:"eth_getWork",params:0}),new a({name:"getPastLogs",call:"eth_getLogs",params:1,inputFormatter:[m.inputLogFormatter],outputFormatter:m.outputLogFormatter}),new s({name:"subscribe",type:"eth",subscriptions:{newBlockHeaders:{subscriptionName:"newHeads",params:0,outputFormatter:m.outputBlockFormatter},pendingTransactions:{subscriptionName:"newPendingTransactions",params:0},logs:{params:1,inputFormatter:[m.inputLogFormatter],outputFormatter:m.outputLogFormatter,subscriptionHandler:function(t){t.removed?this.emit("changed",t):this.emit("data",t),n.isFunction(this.callback)&&this.callback(null,t,this)}},syncing:{params:0,outputFormatter:m.outputSyncingFormatter,subscriptionHandler:function(t){var e=this;!0!==this._isSyncing?(this._isSyncing=!0,this.emit("changed",e._isSyncing),n.isFunction(this.callback)&&this.callback(null,e._isSyncing,this),setTimeout(function(){e.emit("data",t),n.isFunction(e.callback)&&e.callback(null,t,e)},0)):(this.emit("data",t),n.isFunction(e.callback)&&this.callback(null,t,this),clearTimeout(this._isSyncingTimeout),this._isSyncingTimeout=setTimeout(function(){t.currentBlock>t.highestBlock-200&&(e._isSyncing=!1,e.emit("changed",e._isSyncing),n.isFunction(e.callback)&&e.callback(null,e._isSyncing,e))},500))}}}})];x.forEach(function(e){e.attachToObject(t),e.setRequestManager(t._requestManager,t.accounts),e.defaultBlock=t.defaultBlock,e.defaultAccount=t.defaultAccount})};i.addProviders(k),e.exports=k},{"./getNetworkType.js":361,underscore:360,"web3-core":201,"web3-core-helpers":185,"web3-core-method":187,"web3-core-subscriptions":198,"web3-eth-abi":205,"web3-eth-accounts":354,"web3-eth-contract":356,"web3-eth-iban":358,"web3-eth-personal":359,"web3-net":363,"web3-utils":383}],363:[function(t,e,r){var n=t("web3-core"),i=t("web3-core-method"),o=t("web3-utils"),s=function(){var t=this;n.packageInit(this,arguments),[new i({name:"getId",call:"net_version",params:0,outputFormatter:o.hexToNumber}),new i({name:"isListening",call:"net_listening",params:0}),new i({name:"getPeerCount",call:"net_peerCount",params:0,outputFormatter:o.hexToNumber})].forEach(function(e){e.attachToObject(t),e.setRequestManager(t._requestManager)})};n.addProviders(s),e.exports=s},{"web3-core":201,"web3-core-method":187,"web3-utils":383}],364:[function(t,e,r){e.exports=XMLHttpRequest},{}],365:[function(t,e,r){var n=t("web3-core-helpers").errors,i=t("xhr2"),o=function(t,e,r){this.host=t||"http://localhost:8545",this.timeout=e||0,this.connected=!1,this.headers=r};o.prototype._prepareRequest=function(){var t=new i;return t.open("POST",this.host,!0),t.setRequestHeader("Content-Type","application/json"),this.headers&&this.headers.forEach(function(e){t.setRequestHeader(e.name,e.value)}),t},o.prototype.send=function(t,e){var r=this,i=this._prepareRequest();i.onreadystatechange=function(){if(4===i.readyState&&1!==i.timeout){var t=i.responseText,o=null;try{t=JSON.parse(t)}catch(t){o=n.InvalidResponse(i.responseText)}r.connected=!0,e(o,t)}},i.ontimeout=function(){r.connected=!1,e(n.ConnectionTimeout(this.timeout))};try{i.send(JSON.stringify(t))}catch(t){this.connected=!1,e(n.InvalidConnection(this.host))}},e.exports=o},{"web3-core-helpers":185,xhr2:364}],366:[function(t,e,r){!function(t,n,i,o,s,a){var c=d(function(t,e){var r=e.length;return d(function(n){for(var i=0;i0;)if(U+=r,r=t.charAt(o++),4===z?(R+=String.fromCharCode(parseInt(U,16)),z=0,u=o-1):z++,!r)break t;if('"'===r&&!N){D=q.pop()||p,R+=t.substring(u,o-1);break}if(!("\\"!==r||N||(N=!0,R+=t.substring(u,o-1),r=t.charAt(o++))))break;if(N){if(N=!1,"n"===r?R+="\n":"r"===r?R+="\r":"t"===r?R+="\t":"f"===r?R+="\f":"b"===r?R+="\b":"u"===r?(z=1,U=""):R+=r,r=t.charAt(o++),u=o-1,r)continue;break}h.lastIndex=o;var l=h.exec(t);if(!l){o=t.length+1,R+=t.substring(u,o-1);break}if(o=l.index+1,!(r=t.charAt(l.index))){R+=t.substring(u,o-1);break}}continue;case k:if(!r)continue;if("r"!==r)return X("Invalid true started with t"+r);D=x;continue;case x:if(!r)continue;if("u"!==r)return X("Invalid true started with tr"+r);D=E;continue;case E:if(!r)continue;if("e"!==r)return X("Invalid true started with tru"+r);s(!0),c(),D=q.pop()||p;continue;case S:if(!r)continue;if("a"!==r)return X("Invalid false started with f"+r);D=M;continue;case M:if(!r)continue;if("l"!==r)return X("Invalid false started with fa"+r);D=j;continue;case j:if(!r)continue;if("s"!==r)return X("Invalid false started with fal"+r);D=A;continue;case A:if(!r)continue;if("e"!==r)return X("Invalid false started with fals"+r);s(!1),c(),D=q.pop()||p;continue;case C:if(!r)continue;if("u"!==r)return X("Invalid null started with n"+r);D=T;continue;case T:if(!r)continue;if("l"!==r)return X("Invalid null started with nu"+r);D=P;continue;case P:if(!r)continue;if("l"!==r)return X("Invalid null started with nul"+r);s(null),c(),D=q.pop()||p;continue;case I:if("."!==r)return X("Leading zero not followed by .");O+=r,D=B;continue;case B:if(-1!=="0123456789".indexOf(r))O+=r;else if("."===r){if(-1!==O.indexOf("."))return X("Invalid number has two dots");O+=r}else if("e"===r||"E"===r){if(-1!==O.indexOf("e")||-1!==O.indexOf("E"))return X("Invalid number has two exponential");O+=r}else if("+"===r||"-"===r){if("e"!==n&&"E"!==n)return X("Invalid symbol in number");O+=r}else O&&(s(parseFloat(O)),c(),O=""),o--,D=q.pop()||p;continue;default:return X("Unknown state: "+D)}K>=F&&($=0,R!==a&&R.length>f&&(X("Max buffer length exceeded: textNode"),$=Math.max($,R.length)),O.length>f&&(X("Max buffer length exceeded: numberNode"),$=Math.max($,O.length)),F=f-$+K);var $}),t(ut).on(function(){if(D==d)return s({}),c(),void(L=!0);D===p&&0===H||X("Unexpected end");R!==a&&(s(R),c(),R=a);L=!0})}var F,R,O,N,L,D,q,U,z,H,K,V=(F=d(function(t){return t.unshift(/^/),(e=RegExp(t.map(f("source")).join(""))).exec.bind(e);var e}),N=F(R=/(\$?)/,/([\w-_]+|\*)/,O=/(?:{([\w ]*?)})?/),L=F(R,/\["([^"]+)"\]/,O),D=F(R,/\[(\d+|\*)\]/,O),q=F(R,/()/,/{([\w ]*?)}/),U=F(/\.\./),z=F(/\./),H=F(R,/!/),K=F(/$/),function(t){return t(h(N,L,D,q),U,z,H,K)});function W(t,e){return{key:t,node:e}}var X=f("key"),G=f("node"),$={};function J(t){var e=t(tt).emit,r=t(et).emit,n=t(st).emit,o=t(ot).emit;function s(t,e,r){G(E(t))[e]=r}function a(t,r,n){t&&s(t,r,n);var i=k(W(r,n),t);return e(i),i}var c={};return c[lt]=function(t,e){if(!t)return n(e),a(t,$,e);var r,o,c,u=(o=e,c=G(E(r=t)),v(i,c)?a(r,y(c),o):r),f=S(u),h=X(E(u));return s(f,h,e),k(W(h,e),f)},c[dt]=function(t){return r(t),S(t)||o(G(E(t)))},c[ht]=a,c}var Z=V(function(t,e,r,n,i){var s=1,a=2,f=3,l=u(X,E),d=u(G,E);function b(t,e){return!!e[s]?p(t,E):t}function v(t){if(t==m)return m;return p(function(t){return l(t)!=$},u(t,S))}function g(){return function(t){return l(t)==$}}function _(t,e,r,n,i){var o,s=t(r);if(s){var a=(o=s,T(function(t,e){return e(t,o)},n,e));return i(r.substr(y(s[0])),a)}}function k(t,e){return c(_,t,e)}var x=h(k(t,j(b,function(t,e){var r=e[f];return r?p(u(c(w,M(r.split(/\W+/))),d),t):t},function(t,e){var r=e[a];return p(r&&"*"!=r?function(t){return l(t)==r}:m,t)},v)),k(e,j(function(t){if(t==m)return m;var e=g(),r=t,n=v(function(t){return i(t)}),i=h(e,r,n);return i})),k(r,j()),k(n,j(b,g)),k(i,j(function(t){return function(e){var r=t(e);return!0===r?E(e):r}})),function(t){throw o('"'+t+'" could not be tokenised')});function A(t,e){return e}function C(t,e){return x(t,e,t?C:A)}return function(t){try{return C(t,m)}catch(e){throw o('Could not compile "'+t+'" because '+e.message)}}});function Q(t,e,r){var n,i;function o(t){return function(e){return e.id==t}}return{on:function(r,o){var s={listener:r,id:o||r};return e&&e.emit(t,r,s.id),n=k(s,n),i=k(r,i),this},emit:function(){!function t(e,r){e&&(E(e).apply(null,r),t(S(e),r))}(i,arguments)},un:function(e){var s;n=P(n,o(e),function(t){s=t}),s&&(i=P(i,function(t){return t==s.listener}),r&&r.emit(t,s.listener,s.id))},listeners:function(){return i},hasListener:function(t){return _(function t(e,r){return r&&(e(E(r))?E(r):t(e,S(r)))}(t?o(t):m,n))}}}var Y=1,tt=Y++,et=Y++,rt=Y++,nt=Y++,it="fail",ot=Y++,st=Y++,at="start",ct="data",ut="end",ft=Y++,ht=Y++,lt=Y++,dt=Y++;function pt(t,e,r){try{var n=s.parse(e)}catch(t){}return{statusCode:t,body:e,jsonBody:n,thrown:r}}function bt(t,e){var r={node:t(et),path:t(tt)};function n(e,r,n){var i=t(e).emit;r.on(function(t){var e,r,o,s=n(t);!1!==s&&(e=i,r=G(s),o=I(t),e(r,A(S(C(X,o))),A(C(G,o))))},e),t("removeListener").on(function(n){n==e&&(t(n).listeners()||r.un(e))})}t("newListener").on(function(t){var i=/(node|path):(.*)/.exec(t);if(i){var o=r[i[1]];o.hasListener(t)||n(t,o,e(i[2]))}})}function mt(t,e){var r,n=/^(node|path):./,i=t(ot),o=t(nt).emit,s=t(rt).emit,a=d(function(e,i){if(r[e])l(i,r[e]);else{var o=t(e),s=i[0];n.test(e)?u(o,s):o.on(s)}return r});function u(t,e,n){n=n||e;var i=f(e);return t.on(function(){var e=!1;r.forget=function(){e=!0},l(arguments,i),delete r.forget,e&&t.un(n)},n),r}function f(t){return function(){try{return t.apply(r,arguments)}catch(t){setTimeout(function(){throw t})}}}function h(e,r,n){var i,a;"node"==e?(a=n,i=function(){var t=a.apply(this,arguments);_(t)&&(t==gt.drop?o():s(t))}):i=n,u(t(e+":"+r),i,n)}function p(t,e,n){return g(e)?h(t,e,n):function(t,e){for(var r in e)h(t,r,e[r])}(t,e),r}return t(st).on(function(t){var e;r.root=(e=t,function(){return e})}),t(at).on(function(t,e){r.header=function(t){return t?e[t]:e}}),r={on:a,addListener:a,removeListener:function(e,n,o){if("done"==e)i.un(n);else if("node"==e||"path"==e)t.un(e+":"+n,o);else{var s=n;t(e).un(s)}return r},emit:t.emit,node:c(p,"node"),path:c(p,"path"),done:c(u,i),start:c(function(e,n){return t(e).on(f(n),n),r},at),fail:t(it).on,abort:t(ft).emit,header:b,root:b,source:e}}function vt(e,r,n,i,o){var s=function(){var t={},e=n("newListener"),r=n("removeListener");function n(n){return t[n]=Q(n,e,r)}function i(e){return t[e]||n(e)}return["emit","on","un"].forEach(function(t){i[t]=d(function(e,r){l(r,i(e)[t])})}),i}();return r&&function(e,r,n,i,o,s,u){var f,h=e(ct).emit,l=e(it).emit,d=0,p=!0;function b(){var t=r.responseText,e=t.substr(d);e&&h(e),d=y(t)}e(ft).on(function(){r.onreadystatechange=null,r.abort()}),"onprogress"in r&&(r.onprogress=b),r.onreadystatechange=function(){function t(){try{p&&e(at).emit(r.status,(t=r.getAllResponseHeaders(),n={},t&&t.split("\r\n").forEach(function(t){var e=t.indexOf(": ");n[t.substring(0,e)]=t.substring(e+2)}),n)),p=!1}catch(t){}var t,n}switch(r.readyState){case 2:case 3:return t();case 4:t(),2==String(r.status)[0]?(b(),e(ut).emit()):l(pt(r.status,r.responseText))}};try{for(var m in r.open(n,i,!0),s)r.setRequestHeader(m,s[m]);(function(t,e){function r(e){return e.port||{"http:":80,"https:":443}[e.protocol||t.protocol]}return!!(e.protocol&&e.protocol!=t.protocol||e.host&&e.host!=t.host||e.host&&r(e)!=r(t))})(t.location,{protocol:(f=/(\w+:)?(?:\/\/)([\w.-]+)?(?::(\d+))?\/?/.exec(i)||[])[1]||"",host:f[2]||"",port:f[3]||""})||r.setRequestHeader("X-Requested-With","XMLHttpRequest"),r.withCredentials=u,r.send(o)}catch(e){t.setTimeout(c(l,pt(a,a,e)),0)}}(s,new XMLHttpRequest,e,r,n,i,o),B(s),function(t,e){var r,n={};function i(t){return function(e){r=t(r,e)}}for(var o in e)t(o).on(i(e[o]),n);t(rt).on(function(t){var e=E(r),n=X(e),i=S(r);i&&(G(E(i))[n]=t)}),t(nt).on(function(){var t=E(r),e=X(t),n=S(r);n&&delete G(E(n))[e]}),t(ft).on(function(){for(var r in e)t(r).un(n)})}(s,J(s)),bt(s,Z),mt(s,r)}function yt(t,e,r,n,i,o,a){return i=i?s.parse(s.stringify(i)):{},n?g(n)||(n=s.stringify(n),i["Content-Type"]=i["Content-Type"]||"application/json"):n=null,t(r||"GET",(c=e,!1===a&&(-1==c.indexOf("?")?c+="?":c+="&",c+="_="+(new Date).getTime()),c),n,i,o||!1);var c}function gt(t){var e=j("resume","pause","pipe"),r=c(w,e);return t?r(t)||g(t)?yt(vt,t):yt(vt,t.url,t.method,t.body,t.headers,t.withCredentials,t.cached):vt()}gt.drop=function(){return gt.drop},"function"==typeof define&&define.amd?define("oboe",[],function(){return gt}):"object"===(void 0===r?"undefined":_typeof(r))?e.exports=gt:t.oboe=gt}(function(){try{return window}catch(t){return self}}(),Object,Array,Error,JSON)},{}],367:[function(t,e,r){arguments[4][171][0].apply(r,arguments)},{dup:171}],368:[function(t,e,r){var n=t("underscore"),i=t("web3-core-helpers").errors,o=t("oboe"),s=function(t,e){var r=this;this.responseCallbacks={},this.notificationCallbacks=[],this.path=t,this.connection=e.connect({path:this.path}),this.addDefaultEvents();var i=function(t){var e=null;n.isArray(t)?t.forEach(function(t){r.responseCallbacks[t.id]&&(e=t.id)}):e=t.id,e||-1===t.method.indexOf("_subscription")?r.responseCallbacks[e]&&(r.responseCallbacks[e](null,t),delete r.responseCallbacks[e]):r.notificationCallbacks.forEach(function(e){n.isFunction(e)&&e(null,t)})};"Socket"===e.constructor.name?o(this.connection).done(i):this.connection.on("data",function(t){r._parseResponse(t.toString()).forEach(i)})};s.prototype.addDefaultEvents=function(){var t=this;this.connection.on("connect",function(){}),this.connection.on("error",function(){t._timeout()}),this.connection.on("end",function(){t._timeout(),t.notificationCallbacks.forEach(function(t){n.isFunction(t)&&t(new Error("IPC socket connection closed"))})}),this.connection.on("timeout",function(){t._timeout()})},s.prototype._parseResponse=function(t){var e=this,r=[];return t.replace(/\}[\n\r]?\{/g,"}|--|{").replace(/\}\][\n\r]?\[\{/g,"}]|--|[{").replace(/\}[\n\r]?\[\{/g,"}|--|[{").replace(/\}\][\n\r]?\{/g,"}]|--|{").split("|--|").forEach(function(t){e.lastChunk&&(t=e.lastChunk+t);var n=null;try{n=JSON.parse(t)}catch(r){return e.lastChunk=t,clearTimeout(e.lastChunkTimeout),void(e.lastChunkTimeout=setTimeout(function(){throw e._timeout(),i.InvalidResponse(t)},15e3))}clearTimeout(e.lastChunkTimeout),e.lastChunk=null,n&&r.push(n)}),r},s.prototype._addResponseCallback=function(t,e){var r=t.id||t[0].id,n=t.method||t[0].method;this.responseCallbacks[r]=e,this.responseCallbacks[r].method=n},s.prototype._timeout=function(){for(var t in this.responseCallbacks)this.responseCallbacks.hasOwnProperty(t)&&(this.responseCallbacks[t](i.InvalidConnection("on IPC")),delete this.responseCallbacks[t])},s.prototype.reconnect=function(){this.connection.connect({path:this.path})},s.prototype.send=function(t,e){this.connection.writable||this.connection.connect({path:this.path}),this.connection.write(JSON.stringify(t)),this._addResponseCallback(t,e)},s.prototype.on=function(t,e){if("function"!=typeof e)throw new Error("The second parameter callback must be a function.");switch(t){case"data":this.notificationCallbacks.push(e);break;default:this.connection.on(t,e)}},s.prototype.once=function(t,e){if("function"!=typeof e)throw new Error("The second parameter callback must be a function.");this.connection.once(t,e)},s.prototype.removeListener=function(t,e){var r=this;switch(t){case"data":this.notificationCallbacks.forEach(function(t,n){t===e&&r.notificationCallbacks.splice(n,1)});break;default:this.connection.removeListener(t,e)}},s.prototype.removeAllListeners=function(t){switch(t){case"data":this.notificationCallbacks=[];break;default:this.connection.removeAllListeners(t)}},s.prototype.reset=function(){this._timeout(),this.notificationCallbacks=[],this.connection.removeAllListeners("error"),this.connection.removeAllListeners("end"),this.connection.removeAllListeners("timeout"),this.addDefaultEvents()},e.exports=s},{oboe:366,underscore:367,"web3-core-helpers":185}],369:[function(t,e,r){arguments[4][171][0].apply(r,arguments)},{dup:171}],370:[function(t,e,r){var n=t("underscore"),i=t("web3-core-helpers").errors,o=null;o="undefined"!=typeof window?window.WebSocket:t("websocket").w3cwebsocket;var s=function(t){var e=this;this.responseCallbacks={},this.notificationCallbacks=[],this.connection=new o(t),this.addDefaultEvents(),this.connection.onmessage=function(t){var r="string"==typeof t.data?t.data:"";e._parseResponse(r).forEach(function(t){var r=null;n.isArray(t)?t.forEach(function(t){e.responseCallbacks[t.id]&&(r=t.id)}):r=t.id,r||-1===t.method.indexOf("_subscription")?e.responseCallbacks[r]&&(e.responseCallbacks[r](null,t),delete e.responseCallbacks[r]):e.notificationCallbacks.forEach(function(e){n.isFunction(e)&&e(null,t)})})}};s.prototype.addDefaultEvents=function(){var t=this;this.connection.onerror=function(){t._timeout()},this.connection.onclose=function(e){t._timeout();var r=t.notificationCallbacks;t.reset(),r.forEach(function(t){n.isFunction(t)&&t(e)})}},s.prototype._parseResponse=function(t){var e=this,r=[];return t.replace(/\}[\n\r]?\{/g,"}|--|{").replace(/\}\][\n\r]?\[\{/g,"}]|--|[{").replace(/\}[\n\r]?\[\{/g,"}|--|[{").replace(/\}\][\n\r]?\{/g,"}]|--|{").split("|--|").forEach(function(t){e.lastChunk&&(t=e.lastChunk+t);var n=null;try{n=JSON.parse(t)}catch(r){return e.lastChunk=t,clearTimeout(e.lastChunkTimeout),void(e.lastChunkTimeout=setTimeout(function(){throw e._timeout(),i.InvalidResponse(t)},15e3))}clearTimeout(e.lastChunkTimeout),e.lastChunk=null,n&&r.push(n)}),r},s.prototype._addResponseCallback=function(t,e){var r=t.id||t[0].id,n=t.method||t[0].method;this.responseCallbacks[r]=e,this.responseCallbacks[r].method=n},s.prototype._timeout=function(){for(var t in this.responseCallbacks)this.responseCallbacks.hasOwnProperty(t)&&(this.responseCallbacks[t](i.InvalidConnection("on IPC")),delete this.responseCallbacks[t])},s.prototype.send=function(t,e){var r=this;if(this.connection.readyState!==this.connection.CONNECTING){if(this.connection.readyState!==this.connection.OPEN)return console.error("connection not open on send()"),"function"==typeof this.connection.onerror?this.connection.onerror(new Error("connection not open")):console.error("no error callback"),void e(new Error("connection not open"));this.connection.send(JSON.stringify(t)),this._addResponseCallback(t,e)}else setTimeout(function(){r.send(t,e)},10)},s.prototype.on=function(t,e){if("function"!=typeof e)throw new Error("The second parameter callback must be a function.");switch(t){case"data":this.notificationCallbacks.push(e);break;case"connect":this.connection.onopen=e;break;case"end":this.connection.onclose=e;break;case"error":this.connection.onerror=e}},s.prototype.removeListener=function(t,e){var r=this;switch(t){case"data":this.notificationCallbacks.forEach(function(t,n){t===e&&r.notificationCallbacks.splice(n,1)})}},s.prototype.removeAllListeners=function(t){switch(t){case"data":this.notificationCallbacks=[];break;case"connect":this.connection.onopen=null;break;case"end":this.connection.onclose=null;break;case"error":this.connection.onerror=null}},s.prototype.reset=function(){this._timeout(),this.notificationCallbacks=[],this.addDefaultEvents()},e.exports=s},{underscore:369,"web3-core-helpers":185,websocket:45}],371:[function(t,e,r){var n=t("web3-core"),i=t("web3-core-subscriptions").subscriptions,o=t("web3-core-method"),s=t("web3-net"),a=function(){var t=this;n.packageInit(this,arguments);var e=this.setProvider;this.setProvider=function(){e.apply(t,arguments),t.net.setProvider.apply(t,arguments)},this.clearSubscriptions=t._requestManager.clearSubscriptions,this.net=new s(this.currentProvider),[new i({name:"subscribe",type:"shh",subscriptions:{messages:{params:1}}}),new o({name:"getVersion",call:"shh_version",params:0}),new o({name:"getInfo",call:"shh_info",params:0}),new o({name:"setMaxMessageSize",call:"shh_setMaxMessageSize",params:1}),new o({name:"setMinPoW",call:"shh_setMinPoW",params:1}),new o({name:"markTrustedPeer",call:"shh_markTrustedPeer",params:1}),new o({name:"newKeyPair",call:"shh_newKeyPair",params:0}),new o({name:"addPrivateKey",call:"shh_addPrivateKey",params:1}),new o({name:"deleteKeyPair",call:"shh_deleteKeyPair",params:1}),new o({name:"hasKeyPair",call:"shh_hasKeyPair",params:1}),new o({name:"getPublicKey",call:"shh_getPublicKey",params:1}),new o({name:"getPrivateKey",call:"shh_getPrivateKey",params:1}),new o({name:"newSymKey",call:"shh_newSymKey",params:0}),new o({name:"addSymKey",call:"shh_addSymKey",params:1}),new o({name:"generateSymKeyFromPassword",call:"shh_generateSymKeyFromPassword",params:1}),new o({name:"hasSymKey",call:"shh_hasSymKey",params:1}),new o({name:"getSymKey",call:"shh_getSymKey",params:1}),new o({name:"deleteSymKey",call:"shh_deleteSymKey",params:1}),new o({name:"newMessageFilter",call:"shh_newMessageFilter",params:1}),new o({name:"getFilterMessages",call:"shh_getFilterMessages",params:1}),new o({name:"deleteMessageFilter",call:"shh_deleteMessageFilter",params:1}),new o({name:"post",call:"shh_post",params:1,inputFormatter:[null]})].forEach(function(e){e.attachToObject(t),e.setRequestManager(t._requestManager)})};n.addProviders(a),e.exports=a},{"web3-core":201,"web3-core-method":187,"web3-core-subscriptions":198,"web3-net":363}],372:[function(t,e,r){arguments[4][202][0].apply(r,arguments)},{dup:202}],373:[function(t,e,r){arguments[4][159][0].apply(r,arguments)},{dup:159}],374:[function(t,e,r){var n=t("bn.js"),i=t("number-to-bn"),o=new n(0),s=new n(-1),a={noether:"0",wei:"1",kwei:"1000",Kwei:"1000",babbage:"1000",femtoether:"1000",mwei:"1000000",Mwei:"1000000",lovelace:"1000000",picoether:"1000000",gwei:"1000000000",Gwei:"1000000000",shannon:"1000000000",nanoether:"1000000000",nano:"1000000000",szabo:"1000000000000",microether:"1000000000000",micro:"1000000000000",finney:"1000000000000000",milliether:"1000000000000000",milli:"1000000000000000",ether:"1000000000000000000",kether:"1000000000000000000000",grand:"1000000000000000000000",mether:"1000000000000000000000000",gether:"1000000000000000000000000000",tether:"1000000000000000000000000000000"};function c(t){var e=t?t.toLowerCase():"ether",r=a[e];if("string"!=typeof r)throw new Error("[ethjs-unit] the unit provided "+t+" doesn't exists, please use the one of the following units "+JSON.stringify(a,null,2));return new n(r,10)}function u(t){if("string"==typeof t){if(!t.match(/^-?[0-9.]+$/))throw new Error("while converting number to string, invalid number value '"+t+"', should be a number matching (^-?[0-9.]+).");return t}if("number"==typeof t)return String(t);if("object"===(void 0===t?"undefined":_typeof(t))&&t.toString&&(t.toTwos||t.dividedToIntegerBy))return t.toPrecision?String(t.toPrecision()):t.toString(10);throw new Error("while converting number to string, invalid number value '"+t+"' type "+(void 0===t?"undefined":_typeof(t))+".")}e.exports={unitMap:a,numberToString:u,getValueOfUnit:c,fromWei:function(t,e,r){var n=i(t),u=n.lt(o),f=c(e),h=a[e].length-1||1,l=r||{};u&&(n=n.mul(s));for(var d=n.mod(f).toString(10);d.length2)throw new Error("[ethjs-unit] while converting number "+t+" to wei, too many decimal points");var l=h[0],d=h[1];if(l||(l="0"),d||(d="0"),d.length>o)throw new Error("[ethjs-unit] while converting number "+t+" to wei, too many decimal places");for(;d.length65536){if(!i)throw new Error("Requested too many random bytes.");r(new Error("Requested too many random bytes."))}if(void 0!==n&&n.randomBytes){if(!i)return"0x"+n.randomBytes(e).toString("hex");n.randomBytes(e,function(t,e){t?r(c):r(null,"0x"+e.toString("hex"))})}else{var o;if(void 0!==n?o=n:"undefined"!=typeof msCrypto&&(o=msCrypto),o&&o.getRandomValues){var s=o.getRandomValues(new Uint8Array(e)),a="0x"+Array.from(s).map(function(t){return t.toString(16)}).join("");if(!i)return a;r(null,a)}else{var c=new Error('No "crypto" object available. This Browser doesn\'t support generating secure random bytes.');if(!i)throw c;r(c)}}}},{"./crypto.js":378}],380:[function(t,e,r){var n=t("is-hex-prefixed");e.exports=function(t){return"string"!=typeof t?t:n(t)?t.slice(2):t}},{"is-hex-prefixed":375}],381:[function(t,e,r){arguments[4][171][0].apply(r,arguments)},{dup:171}],382:[function(t,e,r){(function(t){!function(n){var i="object"==(void 0===r?"undefined":_typeof(r))&&r,o="object"==(void 0===e?"undefined":_typeof(e))&&e&&e.exports==i&&e,s="object"==(void 0===t?"undefined":_typeof(t))&&t;s.global!==s&&s.window!==s||(n=s);var a,c,u,f=String.fromCharCode;function h(t){for(var e,r,n=[],i=0,o=t.length;i=55296&&e<=56319&&i=55296&&t<=57343)throw Error("Lone surrogate U+"+t.toString(16).toUpperCase()+" is not a scalar value")}function d(t,e){return f(t>>e&63|128)}function p(t){if(0==(4294967168&t))return f(t);var e="";return 0==(4294965248&t)?e=f(t>>6&31|192):0==(4294901760&t)?(l(t),e=f(t>>12&15|224),e+=d(t,6)):0==(4292870144&t)&&(e=f(t>>18&7|240),e+=d(t,12),e+=d(t,6)),e+=f(63&t|128)}function b(){if(u>=c)throw Error("Invalid byte index");var t=255&a[u];if(u++,128==(192&t))return 63&t;throw Error("Invalid continuation byte")}function m(){var t,e;if(u>c)throw Error("Invalid byte index");if(u==c)return!1;if(t=255&a[u],u++,0==(128&t))return t;if(192==(224&t)){if((e=(31&t)<<6|b())>=128)return e;throw Error("Invalid continuation byte")}if(224==(240&t)){if((e=(15&t)<<12|b()<<6|b())>=2048)return l(e),e;throw Error("Invalid continuation byte")}if(240==(248&t)&&(e=(15&t)<<18|b()<<12|b()<<6|b())>=65536&&e<=1114111)return e;throw Error("Invalid UTF-8 detected")}var v={version:"2.0.0",encode:function(t){for(var e=h(t),r=e.length,n=-1,i="";++n65535&&(i+=f((e-=65536)>>>10&1023|55296),e=56320|1023&e),i+=f(e);return i}(r)}};if("function"==typeof define&&"object"==_typeof(define.amd)&&define.amd)define(function(){return v});else if(i&&!i.nodeType)if(o)o.exports=v;else{var y={}.hasOwnProperty;for(var g in v)y.call(v,g)&&(i[g]=v[g])}else n.utf8=v}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],383:[function(t,e,r){var n=t("underscore"),i=t("ethjs-unit"),o=t("./utils.js"),s=t("./soliditySha3.js"),a=t("randomhex"),c=function(t){if(!o.isHexStrict(t))throw new Error("The parameter must be a valid HEX string.");var e="",r=0,n=t.length;for("0x"===t.substring(0,2)&&(r=2);r7?r+=t[n].toUpperCase():r+=t[n];return r},toHex:o.toHex,toBN:o.toBN,bytesToHex:o.bytesToHex,hexToBytes:o.hexToBytes,hexToNumberString:o.hexToNumberString,hexToNumber:o.hexToNumber,toDecimal:o.hexToNumber,numberToHex:o.numberToHex,fromDecimal:o.numberToHex,hexToUtf8:o.hexToUtf8,hexToString:o.hexToUtf8,toUtf8:o.hexToUtf8,utf8ToHex:o.utf8ToHex,stringToHex:o.utf8ToHex,fromUtf8:o.utf8ToHex,hexToAscii:c,toAscii:c,asciiToHex:u,fromAscii:u,unitMap:i.unitMap,toWei:function(t,e){if(e=f(e),!o.isBN(t)&&!n.isString(t))throw new Error("Please pass numbers as strings or BigNumber objects to avoid precision errors.");return o.isBN(t)?i.toWei(t,e):i.toWei(t,e).toString(10)},fromWei:function(t,e){if(e=f(e),!o.isBN(t)&&!n.isString(t))throw new Error("Please pass numbers as strings or BigNumber objects to avoid precision errors.");return o.isBN(t)?i.fromWei(t,e):i.fromWei(t,e).toString(10)},padLeft:o.leftPad,leftPad:o.leftPad,padRight:o.rightPad,rightPad:o.rightPad,toTwosComplement:o.toTwosComplement}},{"./soliditySha3.js":384,"./utils.js":385,"ethjs-unit":374,randomhex:379,underscore:381}],384:[function(t,e,r){var n=t("underscore"),i=t("bn.js"),o=t("./utils.js"),s=function(t){var e=void 0===t?"undefined":_typeof(t);if("string"===e)return o.isHexStrict(t)?new i(t.replace(/0x/i,""),16):new i(t,10);if("number"===e)return new i(t);if(o.isBigNumber(t))return new i(t.toString(10));if(o.isBN(t))return t;throw new Error(t+" is not a number")},a=function(t,e,r){var n,a,c,u;if("bytes"===(t=(c=t).startsWith("int[")?"int256"+c.slice(3):"int"===c?"int256":c.startsWith("uint[")?"uint256"+c.slice(4):"uint"===c?"uint256":c.startsWith("fixed[")?"fixed128x128"+c.slice(5):"fixed"===c?"fixed128x128":c.startsWith("ufixed[")?"ufixed128x128"+c.slice(6):"ufixed"===c?"ufixed128x128":c)){if(e.replace(/^0x/i,"").length%2!=0)throw new Error("Invalid bytes characters "+e.length);return e}if("string"===t)return o.utf8ToHex(e);if("bool"===t)return e?"01":"00";if(t.startsWith("address")){if(n=r?64:40,!o.isAddress(e))throw new Error(e+" is not a valid address, or the checksum is invalid.");return o.leftPad(e.toLowerCase(),n)}if(n=(u=/^\D+(\d+).*$/.exec(t))?parseInt(u[1],10):null,t.startsWith("bytes")){if(!n)throw new Error("bytes[] not yet supported in solidity");if(r&&(n=32),n<1||n>32||n256)throw new Error("Invalid uint"+n+" size");if((a=s(e)).bitLength()>n)throw new Error("Supplied uint exceeds width: "+n+" vs "+a.bitLength());if(a.lt(new i(0)))throw new Error("Supplied uint "+a.toString()+" is negative");return n?o.leftPad(a.toString("hex"),n/8*2):a}if(t.startsWith("int")){if(n%8||n<8||n>256)throw new Error("Invalid int"+n+" size");if((a=s(e)).bitLength()>n)throw new Error("Supplied int exceeds width: "+n+" vs "+a.bitLength());return a.lt(new i(0))?a.toTwos(n).toString("hex"):n?o.leftPad(a.toString("hex"),n/8*2):a}throw new Error("Unsupported or invalid type: "+t)},c=function(t){if(n.isArray(t))throw new Error("Autodetection of array types is not supported.");var e,r,s,c="";if(n.isObject(t)&&(t.hasOwnProperty("v")||t.hasOwnProperty("t")||t.hasOwnProperty("value")||t.hasOwnProperty("type"))?(e=t.t||t.type,c=t.v||t.value):(e=o.toHex(t,!0),c=o.toHex(t),e.startsWith("int")||e.startsWith("uint")||(e="bytes")),!e.startsWith("int")&&!e.startsWith("uint")||"string"!=typeof c||/^(-)?0x/i.test(c)||(c=new i(c)),n.isArray(c)){if(s=/^\D+\d*\[(\d+)\]$/.exec(e),(r=s?parseInt(s[1],10):null)&&c.length!==r)throw new Error(e+" is not matching the given array "+JSON.stringify(c));r=c.length}return n.isArray(c)?c.map(function(t){return a(e,t,r).toString("hex").replace("0x","")}).join(""):a(e,c,r).toString("hex").replace("0x","")};e.exports=function(){var t=Array.prototype.slice.call(arguments),e=n.map(t,c);return o.sha3("0x"+e.join(""))}},{"./utils.js":385,"bn.js":372,underscore:381}],385:[function(t,e,r){var n=t("underscore"),i=t("bn.js"),o=t("number-to-bn"),s=t("utf8"),a=t("eth-lib/lib/hash"),c=function(t){return t instanceof i||t&&t.constructor&&"BN"===t.constructor.name},u=function(t){return t&&t.constructor&&"BigNumber"===t.constructor.name},f=function(t){try{return o.apply(null,arguments)}catch(e){throw new Error(e+' Given value: "'+t+'"')}},h=function(t){return!!/^(0x)?[0-9a-f]{40}$/i.test(t)&&(!(!/^(0x|0X)?[0-9a-f]{40}$/.test(t)&&!/^(0x|0X)?[0-9A-F]{40}$/.test(t))||l(t))},l=function(t){t=t.replace(/^0x/i,"");for(var e=v(t.toLowerCase()).replace(/^0x/i,""),r=0;r<40;r++)if(parseInt(e[r],16)>7&&t[r].toUpperCase()!==t[r]||parseInt(e[r],16)<=7&&t[r].toLowerCase()!==t[r])return!1;return!0},d=function(t){var e="";t=(t=(t=(t=(t=s.encode(t)).replace(/^(?:\u0000)*/,"")).split("").reverse().join("")).replace(/^(?:\u0000)*/,"")).split("").reverse().join("");for(var r=0;r>>4).toString(16)),e.push((15&t[r]).toString(16));return"0x"+e.join("")},isHex:function(t){return(n.isString(t)||n.isNumber(t))&&/^(-0x)?(0x)?[0-9a-f]*$/i.test(t)},isHexStrict:m,leftPad:function(t,e,r){var n=/^0x/i.test(t)||"number"==typeof t,i=e-(t=t.toString(16).replace(/^0x/i,"")).length+1>=0?e-t.length+1:0;return(n?"0x":"")+new Array(i).join(r||"0")+t},rightPad:function(t,e,r){var n=/^0x/i.test(t)||"number"==typeof t,i=e-(t=t.toString(16).replace(/^0x/i,"")).length+1>=0?e-t.length+1:0;return(n?"0x":"")+t+new Array(i).join(r||"0")},toTwosComplement:function(t){return"0x"+f(t).toTwos(256).toString(16,64)},sha3:v}},{"bn.js":372,"eth-lib/lib/hash":373,"number-to-bn":376,underscore:381,utf8:382}],386:[function(t,e,r){e.exports={name:"web3",namespace:"ethereum",version:"1.0.0-beta.29",description:"Ethereum JavaScript API",repository:"https://github.com/ethereum/web3.js/tree/master/packages/web3",license:"LGPL-3.0",main:"src/index.js",types:"index.d.ts",bugs:{url:"https://github.com/ethereum/web3.js/issues"},keywords:["Ethereum","JavaScript","API"],author:"ethereum.org",authors:[{name:"Fabian Vogelsteller",email:"fabian@ethereum.org",homepage:"http://frozeman.de"},{name:"Marek Kotewicz",email:"marek@parity.io",url:"https://github.com/debris"},{name:"Marian Oancea",url:"https://github.com/cubedro"},{name:"Gav Wood",email:"g@parity.io",homepage:"http://gavwood.com"},{name:"Jeffery Wilcke",email:"jeffrey.wilcke@ethereum.org",url:"https://github.com/obscuren"}],dependencies:{"web3-bzz":"1.0.0-beta.29","web3-core":"1.0.0-beta.29","web3-eth":"1.0.0-beta.29","web3-eth-personal":"1.0.0-beta.29","web3-net":"1.0.0-beta.29","web3-shh":"1.0.0-beta.29","web3-utils":"1.0.0-beta.29"}}},{}],BN:[function(t,e,r){arguments[4][230][0].apply(r,arguments)},{buffer:17,dup:230}],Web3:[function(t,e,r){var n=t("../package.json").version,i=t("web3-core"),o=t("web3-eth"),s=t("web3-net"),a=t("web3-eth-personal"),c=t("web3-shh"),u=t("web3-bzz"),f=t("web3-utils"),h=function(){var t=this;i.packageInit(this,arguments),this.version=n,this.utils=f,this.eth=new o(this),this.shh=new c(this),this.bzz=new u(this);var e=this.setProvider;this.setProvider=function(r,n){return e.apply(t,arguments),this.eth.setProvider(r,n),this.shh.setProvider(r,n),this.bzz.setProvider(r),!0}};h.version=n,h.utils=f,h.modules={Eth:o,Net:s,Personal:a,Shh:c,Bzz:u},i.addProviders(h),e.exports=h},{"../package.json":386,"web3-bzz":181,"web3-core":201,"web3-eth":362,"web3-eth-personal":359,"web3-net":363,"web3-shh":371,"web3-utils":383}]},{},["Web3"])("Web3")}); \ No newline at end of file