=0;)p<8?(d=(this[i]&(1<>(p+=this.DB-8)):(d=this[i]>>(p-=8)&255,p<=0&&(p+=this.DB,--i)),0!=(128&d)&&(d|=-256),0===k&&(128&this.s)!=(128&d)&&++k,(k>0||d!=this.s)&&(r[k++]=d);return r},proto.equals=function(a){return 0==this.compareTo(a)},proto.min=function(a){return this.compareTo(a)<0?this:a},proto.max=function(a){return this.compareTo(a)>0?this:a},proto.and=function(a){var r=new BigInteger;return this.bitwiseTo(a,op_and,r),r},proto.or=function(a){var r=new BigInteger;return this.bitwiseTo(a,op_or,r),r},proto.xor=function(a){var r=new BigInteger;return this.bitwiseTo(a,op_xor,r),r},proto.andNot=function(a){var r=new BigInteger;return this.bitwiseTo(a,op_andnot,r),r},proto.not=function(){for(var r=new BigInteger,i=0;i=this.t?0!=this.s:0!=(this[j]&1<1){var g2=new BigInteger;for(z.sqrTo(g[1],g2);n<=km;)g[n]=new BigInteger,z.mulTo(g2,g[n-2],g[n]),n+=2}var w,t,j=e.t-1,is1=!0,r2=new BigInteger;for(i=nbits(e[j])-1;j>=0;){for(i>=k1?w=e[j]>>i-k1&km:(w=(e[j]&(1<0&&(w|=e[j-1]>>this.DB+i-k1)),n=k;0==(1&w);)w>>=1,--n;if((i-=n)<0&&(i+=this.DB,--j),is1)g[w].copyTo(r),is1=!1;else{for(;n>1;)z.sqrTo(r,r2),z.sqrTo(r2,r),n-=2;n>0?z.sqrTo(r,r2):(t=r,r=r2,r2=t),z.mulTo(r2,g[w],r)}for(;j>=0&&0==(e[j]&1<=0?(u.subTo(v,u),ac&&a.subTo(c,a),b.subTo(d,b)):(v.subTo(u,v),ac&&c.subTo(a,c),d.subTo(b,d))}if(0!=v.compareTo(BigInteger.ONE))return BigInteger.ZERO;for(;d.compareTo(m)>=0;)d.subTo(m,d);for(;d.signum()<0;)d.addTo(m,d);return d},proto.pow=function(e){return this.exp(e,new NullExp)},proto.gcd=function(a){var x=this.s<0?this.negate():this.clone(),y=a.s<0?a.negate():a.clone();if(x.compareTo(y)<0){var t=x;x=y,y=t}var i=x.getLowestSetBit(),g=y.getLowestSetBit();if(g<0)return x;for(i0&&(x.rShiftTo(g,x),y.rShiftTo(g,y));x.signum()>0;)(i=x.getLowestSetBit())>0&&x.rShiftTo(i,x),(i=y.getLowestSetBit())>0&&y.rShiftTo(i,y),x.compareTo(y)>=0?(x.subTo(y,x),x.rShiftTo(1,x)):(y.subTo(x,y),y.rShiftTo(1,y));return g>0&&y.lShiftTo(g,y),y},proto.isProbablePrime=function(t){var i,x=this.abs();if(1==x.t&&x[0]<=lowprimes[lowprimes.length-1]){for(i=0;i0||n===i?i:i-1}function coeffToString(a){for(var s,z,i=1,j=a.length,r=a[0]+"";il^a?1:-1;for(j=(k=xc.length)<(l=yc.length)?k:l,i=0;iyc[i]^a?1:-1;return k==l?0:k>l^a?1:-1}function intValidatorNoErrors(n,min,max){return(n=truncate(n))>=min&&n<=max}function isArray(obj){return"[object Array]"==Object.prototype.toString.call(obj)}function toBaseOut(str,baseIn,baseOut){for(var j,arrL,arr=[0],i=0,len=str.length;ibaseOut-1&&(null==arr[j+1]&&(arr[j+1]=0),arr[j+1]+=arr[j]/baseOut|0,arr[j]%=baseOut)}return arr.reverse()}function toExponential(str,e){return(str.length>1?str.charAt(0)+"."+str.slice(1):str)+(e<0?"e":"e+")+e}function toFixedPoint(str,e){var len,z;if(e<0){for(z="0.";++e;z+="0");str=z+str}else if(++e>(len=str.length)){for(z="0",e-=len;--e;z+="0");str+=z}else e15&&raise(id,tooManyDigits,n),num=!1):x.s=45===str.charCodeAt(0)?(str=str.slice(1),-1):1,str=convertBase(str,10,b,x.s)}else{if(n instanceof BigNumber)return x.s=n.s,x.e=n.e,x.c=(n=n.c)?n.slice():n,void(id=0);if((num="number"==typeof n)&&0*n==0){if(x.s=1/n<0?(n=-n,-1):1,n===~~n){for(e=0,i=n;i>=10;i/=10,e++);return x.e=e,x.c=[n],void(id=0)}str=n+""}else{if(!isNumeric.test(str=n+""))return parseNumeric(x,str,num);x.s=45===str.charCodeAt(0)?(str=str.slice(1),-1):1}}for((e=str.indexOf("."))>-1&&(str=str.replace(".","")),(i=str.search(/e/i))>0?(e<0&&(e=i),e+=+str.slice(i+1),str=str.substring(0,i)):e<0&&(e=str.length),i=0;48===str.charCodeAt(i);i++);for(len=str.length;48===str.charCodeAt(--len););if(str=str.slice(i,len+1))if(len=str.length,num&&ERRORS&&len>15&&(n>MAX_SAFE_INTEGER||n!==mathfloor(n))&&raise(id,tooManyDigits,x.s*n),(e=e-i-1)>MAX_EXP)x.c=x.e=null;else if(e=0&&(k=POW_PRECISION,POW_PRECISION=0,str=str.replace(".",""),x=(y=new BigNumber(baseIn)).pow(str.length-i),POW_PRECISION=k,y.c=toBaseOut(toFixedPoint(coeffToString(x.c),x.e),10,baseOut),y.e=y.c.length),e=k=(xc=toBaseOut(str,baseIn,baseOut)).length;0==xc[--k];xc.pop());if(!xc[0])return"0";if(i<0?--e:(x.c=xc,x.e=e,x.s=sign,xc=(x=div(x,y,dp,rm,baseOut)).c,r=x.r,e=x.e),i=xc[d=e+dp+1],k=baseOut/2,r=r||d<0||null!=xc[d+1],r=rm<4?(null!=i||r)&&(0==rm||rm==(x.s<0?3:2)):i>k||i==k&&(4==rm||r||6==rm&&1&xc[d-1]||rm==(x.s<0?8:7)),d<1||!xc[0])str=r?toFixedPoint("1",-dp):"0";else{if(xc.length=d,r)for(--baseOut;++xc[--d]>baseOut;)xc[d]=0,d||(++e,xc=[1].concat(xc));for(k=xc.length;!xc[--k];);for(i=0,str="";i<=k;str+=ALPHABET.charAt(xc[i++]));str=toFixedPoint(str,e)}return str}function format(n,i,rm,caller){var c0,e,ne,len,str;if(rm=null!=rm&&isValidInt(rm,0,8,caller,roundingMode)?0|rm:ROUNDING_MODE,!n.c)return n.toString();if(c0=n.c[0],ne=n.e,null==i)str=coeffToString(n.c),str=19==caller||24==caller&&ne<=TO_EXP_NEG?toExponential(str,ne):toFixedPoint(str,ne);else if(e=(n=round(new BigNumber(n),i,rm)).e,len=(str=coeffToString(n.c)).length,19==caller||24==caller&&(i<=e||e<=TO_EXP_NEG)){for(;lenlen){if(--i>0)for(str+=".";i--;str+="0");}else if((i+=e-len)>0)for(e+1==len&&(str+=".");i--;str+="0");return n.s<0&&c0?"-"+str:str}function maxOrMin(args,method){var m,n,i=0;for(isArray(args[0])&&(args=args[0]),m=new BigNumber(args[0]);++imax||n!=truncate(n))&&raise(caller,(name||"decimal places")+(nmax?" out of range":" not an integer"),n),!0}function normalise(n,c,e){for(var i=1,j=c.length;!c[--j];c.pop());for(j=c[0];j>=10;j/=10,i++);return(e=i+e*LOG_BASE-1)>MAX_EXP?n.c=n.e=null:e=10;k/=10,d++);if((i=sd-d)<0)i+=LOG_BASE,j=sd,rd=(n=xc[ni=0])/pows10[d-j-1]%10|0;else if((ni=mathceil((i+1)/LOG_BASE))>=xc.length){if(!r)break out;for(;xc.length<=ni;xc.push(0));n=rd=0,d=1,j=(i%=LOG_BASE)-LOG_BASE+1}else{for(n=k=xc[ni],d=1;k>=10;k/=10,d++);rd=(j=(i%=LOG_BASE)-LOG_BASE+d)<0?0:n/pows10[d-j-1]%10|0}if(r=r||sd<0||null!=xc[ni+1]||(j<0?n:n%pows10[d-j-1]),r=rm<4?(rd||r)&&(0==rm||rm==(x.s<0?3:2)):rd>5||5==rd&&(4==rm||r||6==rm&&(i>0?j>0?n/pows10[d-j]:0:xc[ni-1])%10&1||rm==(x.s<0?8:7)),sd<1||!xc[0])return xc.length=0,r?(sd-=x.e+1,xc[0]=pows10[(LOG_BASE-sd%LOG_BASE)%LOG_BASE],x.e=-sd||0):xc[0]=x.e=0,x;if(0==i?(xc.length=ni,k=1,ni--):(xc.length=ni+1,k=pows10[LOG_BASE-i],xc[ni]=j>0?mathfloor(n/pows10[d-j]%pows10[j])*k:0),r)for(;;){if(0==ni){for(i=1,j=xc[0];j>=10;j/=10,i++);for(j=xc[0]+=k,k=1;j>=10;j/=10,k++);i!=k&&(x.e++,xc[0]==BASE&&(xc[0]=1));break}if(xc[ni]+=k,xc[ni]!=BASE)break;xc[ni--]=0,k=1}for(i=xc.length;0===xc[--i];xc.pop());}x.e>MAX_EXP?x.c=x.e=null:x.ei)return null!=(v=a[i++])};return has(p="DECIMAL_PLACES")&&isValidInt(v,0,MAX,2,p)&&(DECIMAL_PLACES=0|v),r[p]=DECIMAL_PLACES,has(p="ROUNDING_MODE")&&isValidInt(v,0,8,2,p)&&(ROUNDING_MODE=0|v),r[p]=ROUNDING_MODE,has(p="EXPONENTIAL_AT")&&(isArray(v)?isValidInt(v[0],-MAX,0,2,p)&&isValidInt(v[1],0,MAX,2,p)&&(TO_EXP_NEG=0|v[0],TO_EXP_POS=0|v[1]):isValidInt(v,-MAX,MAX,2,p)&&(TO_EXP_NEG=-(TO_EXP_POS=0|(v<0?-v:v)))),r[p]=[TO_EXP_NEG,TO_EXP_POS],has(p="RANGE")&&(isArray(v)?isValidInt(v[0],-MAX,-1,2,p)&&isValidInt(v[1],1,MAX,2,p)&&(MIN_EXP=0|v[0],MAX_EXP=0|v[1]):isValidInt(v,-MAX,MAX,2,p)&&(0|v?MIN_EXP=-(MAX_EXP=0|(v<0?-v:v)):ERRORS&&raise(2,p+" cannot be zero",v))),r[p]=[MIN_EXP,MAX_EXP],has(p="ERRORS")&&(v===!!v||1===v||0===v?(id=0,isValidInt=(ERRORS=!!v)?intValidatorWithErrors:intValidatorNoErrors):ERRORS&&raise(2,p+notBool,v)),r[p]=ERRORS,has(p="CRYPTO")&&(!0===v||!1===v||1===v||0===v?v?!(v="undefined"==typeof crypto)&&crypto&&(crypto.getRandomValues||crypto.randomBytes)?CRYPTO=!0:ERRORS?raise(2,"crypto unavailable",v?void 0:crypto):CRYPTO=!1:CRYPTO=!1:ERRORS&&raise(2,p+notBool,v)),r[p]=CRYPTO,has(p="MODULO_MODE")&&isValidInt(v,0,9,2,p)&&(MODULO_MODE=0|v),r[p]=MODULO_MODE,has(p="POW_PRECISION")&&isValidInt(v,0,MAX,2,p)&&(POW_PRECISION=0|v),r[p]=POW_PRECISION,has(p="FORMAT")&&("object"==typeof v?FORMAT=v:ERRORS&&raise(2,p+" not an object",v)),r[p]=FORMAT,r},BigNumber.max=function(){return maxOrMin(arguments,P.lt)},BigNumber.min=function(){return maxOrMin(arguments,P.gt)},BigNumber.random=(random53bitInt=9007199254740992*Math.random()&2097151?function(){return mathfloor(9007199254740992*Math.random())}:function(){return 8388608*(1073741824*Math.random()|0)+(8388608*Math.random()|0)},function(dp){var a,b,e,k,v,i=0,c=[],rand=new BigNumber(ONE);if(dp=null!=dp&&isValidInt(dp,0,MAX,14)?0|dp:DECIMAL_PLACES,k=mathceil(dp/LOG_BASE),CRYPTO)if(crypto.getRandomValues){for(a=crypto.getRandomValues(new Uint32Array(k*=2));i>>11))>=9e15?(b=crypto.getRandomValues(new Uint32Array(2)),a[i]=b[0],a[i+1]=b[1]):(c.push(v%1e14),i+=2);i=k/2}else if(crypto.randomBytes){for(a=crypto.randomBytes(k*=7);i=9e15?crypto.randomBytes(7).copy(a,i):(c.push(v%1e14),i+=7);i=k/7}else CRYPTO=!1,ERRORS&&raise(14,"crypto unavailable",crypto);if(!CRYPTO)for(;i=10;v/=10,i++);ibL?1:-1;else for(i=cmp=0;ib[i]?1:-1;break}return cmp}function subtract(a,b,aL,base){for(var i=0;aL--;)a[aL]-=i,i=a[aL]1;a.splice(0,1));}return function(x,y,dp,rm,base){var cmp,e,i,more,n,prod,prodL,q,qc,rem,remL,rem0,xi,xL,yc0,yL,yz,s=x.s==y.s?1:-1,xc=x.c,yc=y.c;if(!(xc&&xc[0]&&yc&&yc[0]))return new BigNumber(x.s&&y.s&&(xc?!yc||xc[0]!=yc[0]:yc)?xc&&0==xc[0]||!yc?0*s:s/0:NaN);for(qc=(q=new BigNumber(s)).c=[],s=dp+(e=x.e-y.e)+1,base||(base=BASE,e=bitFloor(x.e/LOG_BASE)-bitFloor(y.e/LOG_BASE),s=s/LOG_BASE|0),i=0;yc[i]==(xc[i]||0);i++);if(yc[i]>(xc[i]||0)&&e--,s<0)qc.push(1),more=!0;else{for(xL=xc.length,yL=yc.length,i=0,s+=2,(n=mathfloor(base/(yc[0]+1)))>1&&(yc=multiply(yc,n,base),xc=multiply(xc,n,base),yL=yc.length,xL=xc.length),xi=yL,remL=(rem=xc.slice(0,yL)).length;remL=base/2&&yc0++;do{if(n=0,(cmp=compare(yc,rem,yL,remL))<0){if(rem0=rem[0],yL!=remL&&(rem0=rem0*base+(rem[1]||0)),(n=mathfloor(rem0/yc0))>1)for(n>=base&&(n=base-1),prodL=(prod=multiply(yc,n,base)).length,remL=rem.length;1==compare(prod,rem,prodL,remL);)n--,subtract(prod,yL=10;s/=10,i++);round(q,dp+(q.e=i+e*LOG_BASE-1)+1,rm,more)}else q.e=e,q.r=+more;return q}}(),basePrefix=/^(-?)0([xbo])(?=\w[\w.]*$)/i,dotAfter=/^([^.]+)\.$/,dotBefore=/^\.([^.]+)$/,isInfinityOrNaN=/^-?(Infinity|NaN)$/,whitespaceOrPlus=/^\s*\+(?=[\w.])|^\s+|\s+$/g,parseNumeric=function(x,str,num,b){var base,s=num?str:str.replace(whitespaceOrPlus,"");if(isInfinityOrNaN.test(s))x.s=isNaN(s)?null:s<0?-1:1;else{if(!num&&(s=s.replace(basePrefix,function(m,p1,p2){return base="x"==(p2=p2.toLowerCase())?16:"b"==p2?2:8,b&&b!=base?m:p1}),b&&(base=b,s=s.replace(dotAfter,"$1").replace(dotBefore,"0.$1")),str!=s))return new BigNumber(s,base);ERRORS&&raise(id,"not a"+(b?" base "+b:"")+" number",str),x.s=null}x.c=x.e=null,id=0},P.absoluteValue=P.abs=function(){var x=new BigNumber(this);return x.s<0&&(x.s=1),x},P.ceil=function(){return round(new BigNumber(this),this.e+1,2)},P.comparedTo=P.cmp=function(y,b){return id=1,compare(this,new BigNumber(y,b))},P.decimalPlaces=P.dp=function(){var n,v,c=this.c;if(!c)return null;if(n=((v=c.length-1)-bitFloor(this.e/LOG_BASE))*LOG_BASE,v=c[v])for(;v%10==0;v/=10,n--);return n<0&&(n=0),n},P.dividedBy=P.div=function(y,b){return id=3,div(this,new BigNumber(y,b),DECIMAL_PLACES,ROUNDING_MODE)},P.dividedToIntegerBy=P.divToInt=function(y,b){return id=4,div(this,new BigNumber(y,b),0,1)},P.equals=P.eq=function(y,b){return id=5,0===compare(this,new BigNumber(y,b))},P.floor=function(){return round(new BigNumber(this),this.e+1,3)},P.greaterThan=P.gt=function(y,b){return id=6,compare(this,new BigNumber(y,b))>0},P.greaterThanOrEqualTo=P.gte=function(y,b){return id=7,1===(b=compare(this,new BigNumber(y,b)))||0===b},P.isFinite=function(){return!!this.c},P.isInteger=P.isInt=function(){return!!this.c&&bitFloor(this.e/LOG_BASE)>this.c.length-2},P.isNaN=function(){return!this.s},P.isNegative=P.isNeg=function(){return this.s<0},P.isZero=function(){return!!this.c&&0==this.c[0]},P.lessThan=P.lt=function(y,b){return id=8,compare(this,new BigNumber(y,b))<0},P.lessThanOrEqualTo=P.lte=function(y,b){return id=9,-1===(b=compare(this,new BigNumber(y,b)))||0===b},P.minus=P.sub=function(y,b){var i,j,t,xLTy,x=this,a=x.s;if(id=10,b=(y=new BigNumber(y,b)).s,!a||!b)return new BigNumber(NaN);if(a!=b)return y.s=-b,x.plus(y);var xe=x.e/LOG_BASE,ye=y.e/LOG_BASE,xc=x.c,yc=y.c;if(!xe||!ye){if(!xc||!yc)return xc?(y.s=-b,y):new BigNumber(yc?x:NaN);if(!xc[0]||!yc[0])return yc[0]?(y.s=-b,y):new BigNumber(xc[0]?x:3==ROUNDING_MODE?-0:0)}if(xe=bitFloor(xe),ye=bitFloor(ye),xc=xc.slice(),a=xe-ye){for((xLTy=a<0)?(a=-a,t=xc):(ye=xe,t=yc),t.reverse(),b=a;b--;t.push(0));t.reverse()}else for(j=(xLTy=(a=xc.length)<(b=yc.length))?a:b,a=b=0;b0)for(;b--;xc[i++]=0);for(b=BASE-1;j>a;){if(xc[--j]0?(ye=xe,t=yc):(a=-a,t=xc),t.reverse();a--;t.push(0));t.reverse()}for((a=xc.length)-(b=yc.length)<0&&(t=yc,yc=xc,xc=t,b=a),a=0;b;)a=(xc[--b]=xc[b]+yc[b]+a)/BASE|0,xc[b]=BASE===xc[b]?0:xc[b]%BASE;return a&&(xc=[a].concat(xc),++ye),normalise(y,xc,ye)},P.precision=P.sd=function(z){var n,v,x=this,c=x.c;if(null!=z&&z!==!!z&&1!==z&&0!==z&&(ERRORS&&raise(13,"argument"+notBool,z),z!=!!z&&(z=null)),!c)return null;if(n=(v=c.length-1)*LOG_BASE+1,v=c[v]){for(;v%10==0;v/=10,n--);for(v=c[0];v>=10;v/=10,n++);}return z&&x.e+1>n&&(n=x.e+1),n},P.round=function(dp,rm){var n=new BigNumber(this);return(null==dp||isValidInt(dp,0,MAX,15))&&round(n,~~dp+this.e+1,null!=rm&&isValidInt(rm,0,8,15,roundingMode)?0|rm:ROUNDING_MODE),n},P.shift=function(k){var n=this;return isValidInt(k,-MAX_SAFE_INTEGER,MAX_SAFE_INTEGER,16,"argument")?n.times("1e"+truncate(k)):new BigNumber(n.c&&n.c[0]&&(k<-MAX_SAFE_INTEGER||k>MAX_SAFE_INTEGER)?n.s*(k<0?0:1/0):n)},P.squareRoot=P.sqrt=function(){var m,n,r,rep,t,x=this,c=x.c,s=x.s,e=x.e,dp=DECIMAL_PLACES+4,half=new BigNumber("0.5");if(1!==s||!c||!c[0])return new BigNumber(!s||s<0&&(!c||c[0])?NaN:c?x:1/0);if(0==(s=Math.sqrt(+x))||s==1/0?(((n=coeffToString(c)).length+e)%2==0&&(n+="0"),s=Math.sqrt(n),e=bitFloor((e+1)/2)-(e<0||e%2),r=new BigNumber(n=s==1/0?"1e"+e:(n=s.toExponential()).slice(0,n.indexOf("e")+1)+e)):r=new BigNumber(s+""),r.c[0])for((s=(e=r.e)+dp)<3&&(s=0);;)if(t=r,r=half.times(t.plus(div(x,t,dp,1))),coeffToString(t.c).slice(0,s)===(n=coeffToString(r.c)).slice(0,s)){if(r.e=0;){for(c=0,ylo=yc[i]%sqrtBase,yhi=yc[i]/sqrtBase|0,j=i+(k=xcL);j>i;)c=((xlo=ylo*(xlo=xc[--k]%sqrtBase)+(m=yhi*xlo+(xhi=xc[k]/sqrtBase|0)*ylo)%sqrtBase*sqrtBase+zc[j]+c)/base|0)+(m/sqrtBase|0)+yhi*xhi,zc[j--]=xlo%base;zc[j]=c}return c?++e:zc.splice(0,1),normalise(y,zc,e)},P.toDigits=function(sd,rm){var n=new BigNumber(this);return sd=null!=sd&&isValidInt(sd,1,MAX,18,"precision")?0|sd:null,rm=null!=rm&&isValidInt(rm,0,8,18,roundingMode)?0|rm:ROUNDING_MODE,sd?round(n,sd,rm):n},P.toExponential=function(dp,rm){return format(this,null!=dp&&isValidInt(dp,0,MAX,19)?1+~~dp:null,rm,19)},P.toFixed=function(dp,rm){return format(this,null!=dp&&isValidInt(dp,0,MAX,20)?~~dp+this.e+1:null,rm,20)},P.toFormat=function(dp,rm){var str=format(this,null!=dp&&isValidInt(dp,0,MAX,21)?~~dp+this.e+1:null,rm,21);if(this.c){var i,arr=str.split("."),g1=+FORMAT.groupSize,g2=+FORMAT.secondaryGroupSize,groupSeparator=FORMAT.groupSeparator,intPart=arr[0],fractionPart=arr[1],isNeg=this.s<0,intDigits=isNeg?intPart.slice(1):intPart,len=intDigits.length;if(g2&&(i=g1,g1=g2,g2=i,len-=i),g1>0&&len>0){for(i=len%g1||g1,intPart=intDigits.substr(0,i);i0&&(intPart+=groupSeparator+intDigits.slice(i)),isNeg&&(intPart="-"+intPart)}str=fractionPart?intPart+FORMAT.decimalSeparator+((g2=+FORMAT.fractionGroupSize)?fractionPart.replace(new RegExp("\\d{"+g2+"}\\B","g"),"$&"+FORMAT.fractionGroupSeparator):fractionPart):intPart}return str},P.toFraction=function(md){var arr,d0,d2,e,exp,n,n0,q,s,k=ERRORS,x=this,xc=x.c,d=new BigNumber(ONE),n1=d0=new BigNumber(ONE),d1=n0=new BigNumber(ONE);if(null!=md&&(ERRORS=!1,n=new BigNumber(md),ERRORS=k,(k=n.isInt())&&!n.lt(ONE)||(ERRORS&&raise(22,"max denominator "+(k?"out of range":"not an integer"),md),md=!k&&n.c&&round(n,n.e+1,1).gte(ONE)?n:null)),!xc)return x.toString();for(s=coeffToString(xc),e=d.e=s.length-x.e-1,d.c[0]=POWS_TEN[(exp=e%LOG_BASE)<0?LOG_BASE+exp:exp],md=!md||n.cmp(d)>0?e>0?d:n1:n,exp=MAX_EXP,MAX_EXP=1/0,n=new BigNumber(s),n0.c[0]=0;q=div(n,d,0,1),1!=(d2=d0.plus(q.times(d1))).cmp(md);)d0=d1,d1=d2,n1=n0.plus(q.times(d2=n1)),n0=d2,d=n.minus(q.times(d2=d)),n=d2;return d2=div(md.minus(d0),d1,0,1),n0=n0.plus(d2.times(n1)),d0=d0.plus(d2.times(d1)),n0.s=n1.s=x.s,arr=div(n1,d1,e*=2,ROUNDING_MODE).minus(x).abs().cmp(div(n0,d0,e,ROUNDING_MODE).minus(x).abs())<1?[n1.toString(),d1.toString()]:[n0.toString(),d0.toString()],MAX_EXP=exp,arr},P.toNumber=function(){return+this},P.toPower=P.pow=function(n,m){var k,y,z,i=mathfloor(n<0?-n:+n),x=this;if(null!=m&&(id=23,m=new BigNumber(m)),!isValidInt(n,-MAX_SAFE_INTEGER,MAX_SAFE_INTEGER,23,"exponent")&&(!isFinite(n)||i>MAX_SAFE_INTEGER&&(n/=0)||parseFloat(n)!=n&&!(n=NaN))||0==n)return k=Math.pow(+x,n),new BigNumber(m?k%m:k);for(m?n>1&&x.gt(ONE)&&x.isInt()&&m.gt(ONE)&&m.isInt()?x=x.mod(m):(z=m,m=null):POW_PRECISION&&(k=mathceil(POW_PRECISION/LOG_BASE+2)),y=new BigNumber(ONE);;){if(i%2){if(!(y=y.times(x)).c)break;k?y.c.length>k&&(y.c.length=k):m&&(y=y.mod(m))}if(!(i=mathfloor(i/2)))break;x=x.times(x),k?x.c&&x.c.length>k&&(x.c.length=k):m&&(x=x.mod(m))}return m?y:(n<0&&(y=ONE.div(y)),z?y.mod(z):k?round(y,POW_PRECISION,ROUNDING_MODE):y)},P.toPrecision=function(sd,rm){return format(this,null!=sd&&isValidInt(sd,1,MAX,24,"precision")?0|sd:null,rm,24)},P.toString=function(b){var str,n=this,s=n.s,e=n.e;return null===e?s?(str="Infinity",s<0&&(str="-"+str)):str="NaN":(str=coeffToString(n.c),str=null!=b&&isValidInt(b,2,64,25,"base")?convertBase(toFixedPoint(str,e),0|b,10,s):e<=TO_EXP_NEG||e>=TO_EXP_POS?toExponential(str,e):toFixedPoint(str,e),s<0&&n.c[0]&&(str="-"+str)),str},P.truncated=P.trunc=function(){return round(new BigNumber(this),this.e+1,1)},P.valueOf=P.toJSON=function(){var str,n=this,e=n.e;return null===e?n.toString():(str=coeffToString(n.c),str=e<=TO_EXP_NEG||e>=TO_EXP_POS?toExponential(str,e):toFixedPoint(str,e),n.s<0?"-"+str:str)},P.isBigNumber=!0,null!=config&&BigNumber.config(config),BigNumber}()).default=BigNumber.BigNumber=BigNumber,"function"==typeof define&&define.amd?define(function(){return BigNumber}):void 0!==module&&module.exports?module.exports=BigNumber:(globalObj||(globalObj="undefined"!=typeof self?self:Function("return this")()),globalObj.BigNumber=BigNumber)}(this)},{}],66:[function(require,module,exports){var aes=require("browserify-aes"),assert=require("assert"),Buffer=require("safe-buffer").Buffer,bs58check=require("bs58check"),createHash=require("create-hash"),scrypt=require("scryptsy"),xor=require("buffer-xor/inplace"),curve=require("ecurve").getCurveByName("secp256k1"),BigInteger=require("bigi"),SCRYPT_PARAMS={N:16384,r:8,p:8},NULL=Buffer.alloc(0);function hash256(buffer){return createHash("sha256").update(createHash("sha256").update(buffer).digest()).digest()}function getAddress(d,compressed){var buffer,Q=curve.G.multiply(d).getEncoded(compressed),hash=(buffer=Q,createHash("rmd160").update(createHash("sha256").update(buffer).digest()).digest()),payload=Buffer.allocUnsafe(21);return payload.writeUInt8(0,0),hash.copy(payload,1),bs58check.encode(payload)}function encryptRaw(buffer,compressed,passphrase,progressCallback,scryptParams){if(32!==buffer.length)throw new Error("Invalid private key length");scryptParams=scryptParams||SCRYPT_PARAMS;var address=getAddress(BigInteger.fromBuffer(buffer),compressed),secret=Buffer.from(passphrase,"utf8"),salt=hash256(address).slice(0,4),N=scryptParams.N,r=scryptParams.r,p=scryptParams.p,scryptBuf=scrypt(secret,salt,N,r,p,64,progressCallback),derivedHalf1=scryptBuf.slice(0,32),derivedHalf2=scryptBuf.slice(32,64),xorBuf=xor(derivedHalf1,buffer),cipher=aes.createCipheriv("aes-256-ecb",derivedHalf2,NULL);cipher.setAutoPadding(!1),cipher.end(xorBuf);var cipherText=cipher.read(),result=Buffer.allocUnsafe(39);return result.writeUInt8(1,0),result.writeUInt8(66,1),result.writeUInt8(compressed?224:192,2),salt.copy(result,3),cipherText.copy(result,7),result}function decryptRaw(buffer,passphrase,progressCallback,scryptParams){if(39!==buffer.length)throw new Error("Invalid BIP38 data length");if(1!==buffer.readUInt8(0))throw new Error("Invalid BIP38 prefix");scryptParams=scryptParams||SCRYPT_PARAMS;var type=buffer.readUInt8(1);if(67===type)return decryptECMult(buffer,passphrase,progressCallback,scryptParams);if(66!==type)throw new Error("Invalid BIP38 type");passphrase=Buffer.from(passphrase,"utf8");var flagByte=buffer.readUInt8(2),compressed=224===flagByte;if(!compressed&&192!==flagByte)throw new Error("Invalid BIP38 compression flag");var N=scryptParams.N,r=scryptParams.r,p=scryptParams.p,salt=buffer.slice(3,7),scryptBuf=scrypt(passphrase,salt,N,r,p,64,progressCallback),derivedHalf1=scryptBuf.slice(0,32),derivedHalf2=scryptBuf.slice(32,64),privKeyBuf=buffer.slice(7,39),decipher=aes.createDecipheriv("aes-256-ecb",derivedHalf2,NULL);decipher.setAutoPadding(!1),decipher.end(privKeyBuf);var plainText=decipher.read(),privateKey=xor(derivedHalf1,plainText),checksum=hash256(getAddress(BigInteger.fromBuffer(privateKey),compressed)).slice(0,4);return assert.deepEqual(salt,checksum),{privateKey:privateKey,compressed:compressed}}function decryptECMult(buffer,passphrase,progressCallback,scryptParams){passphrase=Buffer.from(passphrase,"utf8"),buffer=buffer.slice(1),scryptParams=scryptParams||SCRYPT_PARAMS;var flag=buffer.readUInt8(1),compressed=0!=(32&flag),hasLotSeq=0!=(4&flag);assert.equal(36&flag,flag,"Invalid private key.");var ownerSalt,addressHash=buffer.slice(2,6),ownerEntropy=buffer.slice(6,14);ownerSalt=hasLotSeq?ownerEntropy.slice(0,4):ownerEntropy;var passFactor,encryptedPart1=buffer.slice(14,22),encryptedPart2=buffer.slice(22,38),N=scryptParams.N,r=scryptParams.r,p=scryptParams.p,preFactor=scrypt(passphrase,ownerSalt,N,r,p,32,progressCallback);hasLotSeq?passFactor=hash256(Buffer.concat([preFactor,ownerEntropy])):passFactor=preFactor;var passInt=BigInteger.fromBuffer(passFactor),passPoint=curve.G.multiply(passInt).getEncoded(!0),seedBPass=scrypt(passPoint,Buffer.concat([addressHash,ownerEntropy]),1024,1,1,64),derivedHalf1=seedBPass.slice(0,32),derivedHalf2=seedBPass.slice(32,64),decipher=aes.createDecipheriv("aes-256-ecb",derivedHalf2,Buffer.alloc(0));decipher.setAutoPadding(!1),decipher.end(encryptedPart2);var decryptedPart2=decipher.read(),tmp=xor(decryptedPart2,derivedHalf1.slice(16,32)),seedBPart2=tmp.slice(8,16),decipher2=aes.createDecipheriv("aes-256-ecb",derivedHalf2,Buffer.alloc(0));decipher2.setAutoPadding(!1),decipher2.write(encryptedPart1),decipher2.end(tmp.slice(0,8));var seedBPart1=xor(decipher2.read(),derivedHalf1.slice(0,16)),seedB=Buffer.concat([seedBPart1,seedBPart2],24),factorB=BigInteger.fromBuffer(hash256(seedB));return{privateKey:passInt.multiply(factorB).mod(curve.n).toBuffer(32),compressed:compressed}}module.exports={decrypt:function(string,passphrase,progressCallback,scryptParams){return decryptRaw(bs58check.decode(string),passphrase,progressCallback,scryptParams)},decryptECMult:decryptECMult,decryptRaw:decryptRaw,encrypt:function(buffer,compressed,passphrase,progressCallback,scryptParams){return bs58check.encode(encryptRaw(buffer,compressed,passphrase,progressCallback,scryptParams))},encryptRaw:encryptRaw,verify:function(string){var decoded=bs58check.decodeUnsafe(string);if(!decoded)return!1;if(39!==decoded.length)return!1;if(1!==decoded.readUInt8(0))return!1;var type=decoded.readUInt8(1),flag=decoded.readUInt8(2);if(66===type){if(192!==flag&&224!==flag)return!1}else{if(67!==type)return!1;if(-37&flag)return!1}return!0}}},{assert:26,bigi:63,"browserify-aes":113,bs58check:140,"buffer-xor/inplace":145,"create-hash":239,ecurve:257,"safe-buffer":742,scryptsy:743}],67:[function(require,module,exports){var aes=require("browserify-aes"),assert=require("assert"),Buffer=require("safe-buffer").Buffer,bs58check=require("bs58check"),bs58grscheck=require("bs58grscheck"),createHash=require("create-hash"),scrypt=require("scryptsy"),xor=require("buffer-xor/inplace"),curve=require("ecurve").getCurveByName("secp256k1"),BigInteger=require("bigi"),SCRYPT_PARAMS={N:16384,r:8,p:8},NULL=Buffer.alloc(0);function hash256(buffer){return createHash("sha256").update(createHash("sha256").update(buffer).digest()).digest()}function getAddress(d,compressed){var buffer,Q=curve.G.multiply(d).getEncoded(compressed),hash=(buffer=Q,createHash("rmd160").update(createHash("sha256").update(buffer).digest()).digest()),payload=Buffer.allocUnsafe(21);return payload.writeUInt8(36,0),hash.copy(payload,1),bs58grscheck.encode(payload)}function encryptRaw(buffer,compressed,passphrase,progressCallback,scryptParams){if(32!==buffer.length)throw new Error("Invalid private key length");scryptParams=scryptParams||SCRYPT_PARAMS;var address=getAddress(BigInteger.fromBuffer(buffer),compressed),secret=Buffer.from(passphrase,"utf8"),salt=hash256(address).slice(0,4),N=scryptParams.N,r=scryptParams.r,p=scryptParams.p,scryptBuf=scrypt(secret,salt,N,r,p,64,progressCallback),derivedHalf1=scryptBuf.slice(0,32),derivedHalf2=scryptBuf.slice(32,64),xorBuf=xor(derivedHalf1,buffer),cipher=aes.createCipheriv("aes-256-ecb",derivedHalf2,NULL);cipher.setAutoPadding(!1),cipher.end(xorBuf);var cipherText=cipher.read(),result=Buffer.allocUnsafe(39);return result.writeUInt8(1,0),result.writeUInt8(66,1),result.writeUInt8(compressed?224:192,2),salt.copy(result,3),cipherText.copy(result,7),result}function decryptRaw(buffer,passphrase,progressCallback,scryptParams){if(39!==buffer.length)throw new Error("Invalid BIP38 data length");if(1!==buffer.readUInt8(0))throw new Error("Invalid BIP38 prefix");scryptParams=scryptParams||SCRYPT_PARAMS;var type=buffer.readUInt8(1);if(67===type)return decryptECMult(buffer,passphrase,progressCallback,scryptParams);if(66!==type)throw new Error("Invalid BIP38 type");passphrase=Buffer.from(passphrase,"utf8");var flagByte=buffer.readUInt8(2),compressed=224===flagByte;if(!compressed&&192!==flagByte)throw new Error("Invalid BIP38 compression flag");var N=scryptParams.N,r=scryptParams.r,p=scryptParams.p,salt=buffer.slice(3,7),scryptBuf=scrypt(passphrase,salt,N,r,p,64,progressCallback),derivedHalf1=scryptBuf.slice(0,32),derivedHalf2=scryptBuf.slice(32,64),privKeyBuf=buffer.slice(7,39),decipher=aes.createDecipheriv("aes-256-ecb",derivedHalf2,NULL);decipher.setAutoPadding(!1),decipher.end(privKeyBuf);var plainText=decipher.read(),privateKey=xor(derivedHalf1,plainText),checksum=hash256(getAddress(BigInteger.fromBuffer(privateKey),compressed)).slice(0,4);return assert.deepEqual(salt,checksum),{privateKey:privateKey,compressed:compressed}}function decryptECMult(buffer,passphrase,progressCallback,scryptParams){passphrase=Buffer.from(passphrase,"utf8"),buffer=buffer.slice(1),scryptParams=scryptParams||SCRYPT_PARAMS;var flag=buffer.readUInt8(1),compressed=0!=(32&flag),hasLotSeq=0!=(4&flag);assert.equal(36&flag,flag,"Invalid private key.");var ownerSalt,addressHash=buffer.slice(2,6),ownerEntropy=buffer.slice(6,14);ownerSalt=hasLotSeq?ownerEntropy.slice(0,4):ownerEntropy;var passFactor,encryptedPart1=buffer.slice(14,22),encryptedPart2=buffer.slice(22,38),N=scryptParams.N,r=scryptParams.r,p=scryptParams.p,preFactor=scrypt(passphrase,ownerSalt,N,r,p,32,progressCallback);hasLotSeq?passFactor=hash256(Buffer.concat([preFactor,ownerEntropy])):passFactor=preFactor;var passInt=BigInteger.fromBuffer(passFactor),passPoint=curve.G.multiply(passInt).getEncoded(!0),seedBPass=scrypt(passPoint,Buffer.concat([addressHash,ownerEntropy]),1024,1,1,64),derivedHalf1=seedBPass.slice(0,32),derivedHalf2=seedBPass.slice(32,64),decipher=aes.createDecipheriv("aes-256-ecb",derivedHalf2,Buffer.alloc(0));decipher.setAutoPadding(!1),decipher.end(encryptedPart2);var decryptedPart2=decipher.read(),tmp=xor(decryptedPart2,derivedHalf1.slice(16,32)),seedBPart2=tmp.slice(8,16),decipher2=aes.createDecipheriv("aes-256-ecb",derivedHalf2,Buffer.alloc(0));decipher2.setAutoPadding(!1),decipher2.write(encryptedPart1),decipher2.end(tmp.slice(0,8));var seedBPart1=xor(decipher2.read(),derivedHalf1.slice(0,16)),seedB=Buffer.concat([seedBPart1,seedBPart2],24),factorB=BigInteger.fromBuffer(hash256(seedB));return{privateKey:passInt.multiply(factorB).mod(curve.n).toBuffer(32),compressed:compressed}}module.exports={decrypt:function(string,passphrase,progressCallback,scryptParams){return decryptRaw(bs58check.decode(string),passphrase,progressCallback,scryptParams)},decryptECMult:decryptECMult,decryptRaw:decryptRaw,encrypt:function(buffer,compressed,passphrase,progressCallback,scryptParams){return bs58check.encode(encryptRaw(buffer,compressed,passphrase,progressCallback,scryptParams))},encryptRaw:encryptRaw,verify:function(string){var decoded=bs58grscheck.decodeUnsafe(string);if(!decoded)return!1;if(39!==decoded.length)return!1;if(1!==decoded.readUInt8(0))return!1;var type=decoded.readUInt8(1),flag=decoded.readUInt8(2);if(66===type){if(192!==flag&&224!==flag)return!1}else{if(67!==type)return!1;if(-37&flag)return!1}return!0}}},{assert:26,bigi:63,"browserify-aes":113,bs58check:140,bs58grscheck:142,"buffer-xor/inplace":145,"create-hash":239,ecurve:257,"safe-buffer":742,scryptsy:743}],68:[function(require,module,exports){var Buffer=require("safe-buffer").Buffer;module.exports={check:function(buffer){if(buffer.length<8)return!1;if(buffer.length>72)return!1;if(48!==buffer[0])return!1;if(buffer[1]!==buffer.length-2)return!1;if(2!==buffer[2])return!1;var lenR=buffer[3];if(0===lenR)return!1;if(5+lenR>=buffer.length)return!1;if(2!==buffer[4+lenR])return!1;var lenS=buffer[5+lenR];return!(0===lenS||6+lenR+lenS!==buffer.length||128&buffer[4]||lenR>1&&0===buffer[4]&&!(128&buffer[5])||128&buffer[lenR+6]||lenS>1&&0===buffer[lenR+6]&&!(128&buffer[lenR+7]))},decode:function(buffer){if(buffer.length<8)throw new Error("DER sequence length is too short");if(buffer.length>72)throw new Error("DER sequence length is too long");if(48!==buffer[0])throw new Error("Expected DER sequence");if(buffer[1]!==buffer.length-2)throw new Error("DER sequence length is invalid");if(2!==buffer[2])throw new Error("Expected DER integer");var lenR=buffer[3];if(0===lenR)throw new Error("R length is zero");if(5+lenR>=buffer.length)throw new Error("R length is too long");if(2!==buffer[4+lenR])throw new Error("Expected DER integer (2)");var lenS=buffer[5+lenR];if(0===lenS)throw new Error("S length is zero");if(6+lenR+lenS!==buffer.length)throw new Error("S length is invalid");if(128&buffer[4])throw new Error("R value is negative");if(lenR>1&&0===buffer[4]&&!(128&buffer[5]))throw new Error("R value excessively padded");if(128&buffer[lenR+6])throw new Error("S value is negative");if(lenS>1&&0===buffer[lenR+6]&&!(128&buffer[lenR+7]))throw new Error("S value excessively padded");return{r:buffer.slice(4,4+lenR),s:buffer.slice(6+lenR)}},encode:function(r,s){var lenR=r.length,lenS=s.length;if(0===lenR)throw new Error("R length is zero");if(0===lenS)throw new Error("S length is zero");if(lenR>33)throw new Error("R length is too long");if(lenS>33)throw new Error("S length is too long");if(128&r[0])throw new Error("R value is negative");if(128&s[0])throw new Error("S value is negative");if(lenR>1&&0===r[0]&&!(128&r[1]))throw new Error("R value excessively padded");if(lenS>1&&0===s[0]&&!(128&s[1]))throw new Error("S value excessively padded");var signature=Buffer.allocUnsafe(6+lenR+lenS);return signature[0]=48,signature[1]=signature.length-2,signature[2]=2,signature[3]=r.length,r.copy(signature,4),signature[4+lenR]=2,signature[5+lenR]=s.length,s.copy(signature,6+lenR),signature}}},{"safe-buffer":742}],69:[function(require,module,exports){module.exports={OP_FALSE:0,OP_0:0,OP_PUSHDATA1:76,OP_PUSHDATA2:77,OP_PUSHDATA4:78,OP_1NEGATE:79,OP_RESERVED:80,OP_TRUE:81,OP_1:81,OP_2:82,OP_3:83,OP_4:84,OP_5:85,OP_6:86,OP_7:87,OP_8:88,OP_9:89,OP_10:90,OP_11:91,OP_12:92,OP_13:93,OP_14:94,OP_15:95,OP_16:96,OP_NOP:97,OP_VER:98,OP_IF:99,OP_NOTIF:100,OP_VERIF:101,OP_VERNOTIF:102,OP_ELSE:103,OP_ENDIF:104,OP_VERIFY:105,OP_RETURN:106,OP_TOALTSTACK:107,OP_FROMALTSTACK:108,OP_2DROP:109,OP_2DUP:110,OP_3DUP:111,OP_2OVER:112,OP_2ROT:113,OP_2SWAP:114,OP_IFDUP:115,OP_DEPTH:116,OP_DROP:117,OP_DUP:118,OP_NIP:119,OP_OVER:120,OP_PICK:121,OP_ROLL:122,OP_ROT:123,OP_SWAP:124,OP_TUCK:125,OP_CAT:126,OP_SUBSTR:127,OP_LEFT:128,OP_RIGHT:129,OP_SIZE:130,OP_INVERT:131,OP_AND:132,OP_OR:133,OP_XOR:134,OP_EQUAL:135,OP_EQUALVERIFY:136,OP_RESERVED1:137,OP_RESERVED2:138,OP_1ADD:139,OP_1SUB:140,OP_2MUL:141,OP_2DIV:142,OP_NEGATE:143,OP_ABS:144,OP_NOT:145,OP_0NOTEQUAL:146,OP_ADD:147,OP_SUB:148,OP_MUL:149,OP_DIV:150,OP_MOD:151,OP_LSHIFT:152,OP_RSHIFT:153,OP_BOOLAND:154,OP_BOOLOR:155,OP_NUMEQUAL:156,OP_NUMEQUALVERIFY:157,OP_NUMNOTEQUAL:158,OP_LESSTHAN:159,OP_GREATERTHAN:160,OP_LESSTHANOREQUAL:161,OP_GREATERTHANOREQUAL:162,OP_MIN:163,OP_MAX:164,OP_WITHIN:165,OP_RIPEMD160:166,OP_SHA1:167,OP_SHA256:168,OP_HASH160:169,OP_HASH256:170,OP_CODESEPARATOR:171,OP_CHECKSIG:172,OP_CHECKSIGVERIFY:173,OP_CHECKMULTISIG:174,OP_CHECKMULTISIGVERIFY:175,OP_NOP1:176,OP_NOP2:177,OP_CHECKLOCKTIMEVERIFY:177,OP_NOP3:178,OP_CHECKSEQUENCEVERIFY:178,OP_NOP4:179,OP_NOP5:180,OP_NOP6:181,OP_NOP7:182,OP_NOP8:183,OP_NOP9:184,OP_NOP10:185,OP_PUBKEYHASH:253,OP_PUBKEY:254,OP_INVALIDOPCODE:255}},{}],70:[function(require,module,exports){var OPS=require("./index.json"),map={};for(var op in OPS){map[OPS[op]]=op}module.exports=map},{"./index.json":69}],71:[function(require,module,exports){var Buffer=require("safe-buffer").Buffer,bech32=require("bech32"),bs58check=require("bs58check"),bscript=require("./script"),btemplates=require("./templates"),networks=require("./networks"),typeforce=require("typeforce"),types=require("./types");function fromBase58Check(address){var payload=bs58check.decode(address);if(payload.length<21)throw new TypeError(address+" is too short");if(payload.length>21)throw new TypeError(address+" is too long");return{version:payload.readUInt8(0),hash:payload.slice(1)}}function fromBech32(address){var result=bech32.decode(address),data=bech32.fromWords(result.words.slice(1));return{version:result.words[0],prefix:result.prefix,data:Buffer.from(data)}}function toBase58Check(hash,version){var payload;return version<256?(typeforce(types.tuple(types.Hash160bit,types.UInt8),arguments),(payload=Buffer.allocUnsafe(21)).writeUInt8(version,0),hash.copy(payload,1),bs58check.encode(payload)):(typeforce(types.tuple(types.Hash160bit,types.UInt16),arguments),(payload=Buffer.allocUnsafe(22)).writeUInt16BE(version,0),hash.copy(payload,2),bs58check.encode(payload))}function toBech32(data,version,prefix){var words=bech32.toWords(data);return words.unshift(version),bech32.encode(prefix,words)}module.exports={fromBase58Check:fromBase58Check,fromBech32:fromBech32,fromOutputScript:function(outputScript,network){if(network=network||networks.bitcoin,btemplates.pubKeyHash.output.check(outputScript))return toBase58Check(bscript.compile(outputScript).slice(3,23),network.pubKeyHash);if(btemplates.scriptHash.output.check(outputScript))return toBase58Check(bscript.compile(outputScript).slice(2,22),network.scriptHash);if(btemplates.witnessPubKeyHash.output.check(outputScript))return toBech32(bscript.compile(outputScript).slice(2,22),0,network.bech32);if(btemplates.witnessScriptHash.output.check(outputScript))return toBech32(bscript.compile(outputScript).slice(2,34),0,network.bech32);throw new Error(bscript.toASM(outputScript)+" has no matching Address")},toBase58Check:toBase58Check,toBech32:toBech32,toOutputScript:function(address,network){var decode;network=network||networks.bitcoin;try{decode=fromBase58Check(address)}catch(e){}if(decode){if(decode.version===network.pubKeyHash)return btemplates.pubKeyHash.output.encode(decode.hash);if(decode.version===network.scriptHash)return btemplates.scriptHash.output.encode(decode.hash)}else{try{decode=fromBech32(address)}catch(e){}if(decode){if(decode.prefix!==network.bech32)throw new Error(address+" has an invalid prefix");if(0===decode.version){if(20===decode.data.length)return btemplates.witnessPubKeyHash.output.encode(decode.data);if(32===decode.data.length)return btemplates.witnessScriptHash.output.encode(decode.data)}}}throw new Error(address+" has no matching Script")}}},{"./networks":80,"./script":81,"./templates":83,"./types":107,bech32:59,bs58check:140,"safe-buffer":742,typeforce:816}],72:[function(require,module,exports){var Buffer=require("safe-buffer").Buffer,bcrypto=require("./crypto"),fastMerkleRoot=require("merkle-lib/fastRoot"),typeforce=require("typeforce"),types=require("./types"),varuint=require("varuint-bitcoin"),Transaction=require("./transaction");function Block(){this.version=1,this.prevHash=null,this.merkleRoot=null,this.timestamp=0,this.bits=0,this.nonce=0}Block.fromBuffer=function(buffer){if(buffer.length<80)throw new Error("Buffer too small (< 80 bytes)");var offset=0;function readSlice(n){return offset+=n,buffer.slice(offset-n,offset)}function readUInt32(){var i=buffer.readUInt32LE(offset);return offset+=4,i}var block=new Block;if(block.version=function(){var i=buffer.readInt32LE(offset);return offset+=4,i}(),block.prevHash=readSlice(32),block.merkleRoot=readSlice(32),block.timestamp=readUInt32(),block.bits=readUInt32(),block.nonce=readUInt32(),80===buffer.length)return block;function readTransaction(){var tx=Transaction.fromBuffer(buffer.slice(offset),!0);return offset+=tx.byteLength(),tx}var vi,nTransactions=(vi=varuint.decode(buffer,offset),offset+=varuint.decode.bytes,vi);block.transactions=[];for(var i=0;i>24)-3,mantissa=8388607&bits,target=Buffer.alloc(32,0);return target.writeUInt32BE(mantissa,28-exponent),target},Block.calculateMerkleRoot=function(transactions){if(typeforce([{getHash:types.Function}],transactions),0===transactions.length)throw TypeError("Cannot compute merkle root for zero transactions");var hashes=transactions.map(function(transaction){return transaction.getHash()});return fastMerkleRoot(hashes,bcrypto.hash256)},Block.prototype.checkMerkleRoot=function(){if(!this.transactions)return!1;var actualMerkleRoot=Block.calculateMerkleRoot(this.transactions);return 0===this.merkleRoot.compare(actualMerkleRoot)},Block.prototype.checkProofOfWork=function(){var hash=this.getHash().reverse(),target=Block.calculateTarget(this.bits);return hash.compare(target)<=0},module.exports=Block},{"./crypto":74,"./transaction":105,"./types":107,"merkle-lib/fastRoot":638,"safe-buffer":742,typeforce:816,"varuint-bitcoin":830}],73:[function(require,module,exports){var pushdata=require("pushdata-bitcoin"),varuint=require("varuint-bitcoin");function verifuint(value,max){if("number"!=typeof value)throw new Error("cannot write a non-number as a number");if(value<0)throw new Error("specified a negative value for writing an unsigned value");if(value>max)throw new Error("RangeError: value out of range");if(Math.floor(value)!==value)throw new Error("value has a fractional component")}module.exports={pushDataSize:pushdata.encodingLength,readPushDataInt:pushdata.decode,readUInt64LE:function(buffer,offset){var a=buffer.readUInt32LE(offset),b=buffer.readUInt32LE(offset+4);return verifuint((b*=4294967296)+a,9007199254740991),b+a},readVarInt:function(buffer,offset){return{number:varuint.decode(buffer,offset),size:varuint.decode.bytes}},varIntBuffer:varuint.encode,varIntSize:varuint.encodingLength,writePushDataInt:pushdata.encode,writeUInt64LE:function(buffer,value,offset){return verifuint(value,9007199254740991),buffer.writeInt32LE(-1&value,offset),buffer.writeUInt32LE(Math.floor(value/4294967296),offset+4),offset+8},writeVarInt:function(buffer,number,offset){return varuint.encode(number,buffer,offset),varuint.encode.bytes}}},{"pushdata-bitcoin":720,"varuint-bitcoin":830}],74:[function(require,module,exports){var createHash=require("create-hash");function ripemd160(buffer){return createHash("rmd160").update(buffer).digest()}function sha256(buffer){return createHash("sha256").update(buffer).digest()}module.exports={hash160:function(buffer){return ripemd160(sha256(buffer))},hash256:function(buffer){return sha256(sha256(buffer))},ripemd160:ripemd160,sha1:function(buffer){return createHash("sha1").update(buffer).digest()},sha256:sha256}},{"create-hash":239}],75:[function(require,module,exports){var Buffer=require("safe-buffer").Buffer,createHmac=require("create-hmac"),typeforce=require("typeforce"),types=require("./types"),BigInteger=require("bigi"),ECSignature=require("./ecsignature"),ZERO=Buffer.alloc(1,0),ONE=Buffer.alloc(1,1),secp256k1=require("ecurve").getCurveByName("secp256k1");function deterministicGenerateK(hash,x,checkSig){typeforce(types.tuple(types.Hash256bit,types.Buffer256bit,types.Function),arguments);var k=Buffer.alloc(32,0),v=Buffer.alloc(32,1);k=createHmac("sha256",k).update(v).update(ZERO).update(x).update(hash).digest(),v=createHmac("sha256",k).update(v).digest(),k=createHmac("sha256",k).update(v).update(ONE).update(x).update(hash).digest(),v=createHmac("sha256",k).update(v).digest(),v=createHmac("sha256",k).update(v).digest();for(var T=BigInteger.fromBuffer(v);T.signum()<=0||T.compareTo(secp256k1.n)>=0||!checkSig(T);)k=createHmac("sha256",k).update(v).update(ZERO).digest(),v=createHmac("sha256",k).update(v).digest(),v=createHmac("sha256",k).update(v).digest(),T=BigInteger.fromBuffer(v);return T}var N_OVER_TWO=secp256k1.n.shiftRight(1);module.exports={deterministicGenerateK:deterministicGenerateK,sign:function(hash,d){typeforce(types.tuple(types.Hash256bit,types.BigInt),arguments);var r,s,x=d.toBuffer(32),e=BigInteger.fromBuffer(hash),n=secp256k1.n,G=secp256k1.G;return deterministicGenerateK(hash,x,function(k){var Q=G.multiply(k);return!secp256k1.isInfinity(Q)&&0!==(r=Q.affineX.mod(n)).signum()&&0!==(s=k.modInverse(n).multiply(e.add(d.multiply(r))).mod(n)).signum()}),s.compareTo(N_OVER_TWO)>0&&(s=n.subtract(s)),new ECSignature(r,s)},verify:function(hash,signature,Q){typeforce(types.tuple(types.Hash256bit,types.ECSignature,types.ECPoint),arguments);var n=secp256k1.n,G=secp256k1.G,r=signature.r,s=signature.s;if(r.signum()<=0||r.compareTo(n)>=0)return!1;if(s.signum()<=0||s.compareTo(n)>=0)return!1;var e=BigInteger.fromBuffer(hash),sInv=s.modInverse(n),u1=e.multiply(sInv).mod(n),u2=r.multiply(sInv).mod(n),R=G.multiplyTwo(u1,Q,u2);return!secp256k1.isInfinity(R)&&R.affineX.mod(n).equals(r)},__curve:secp256k1}},{"./ecsignature":77,"./types":107,bigi:63,"create-hmac":241,ecurve:257,"safe-buffer":742,typeforce:816}],76:[function(require,module,exports){var baddress=require("./address"),bcrypto=require("./crypto"),ecdsa=require("./ecdsa"),randomBytes=require("randombytes"),typeforce=require("typeforce"),types=require("./types"),wif=require("wif"),NETWORKS=require("./networks"),BigInteger=require("bigi"),ecurve=require("ecurve"),secp256k1=ecdsa.__curve;function ECPair(d,Q,options){if(options&&typeforce({compressed:types.maybe(types.Boolean),network:types.maybe(types.Network)},options),options=options||{},d){if(d.signum()<=0)throw new Error("Private key must be greater than 0");if(d.compareTo(secp256k1.n)>=0)throw new Error("Private key must be less than the curve order");if(Q)throw new TypeError("Unexpected publicKey parameter");this.d=d}else typeforce(types.ECPoint,Q),this.__Q=Q;this.compressed=void 0===options.compressed||options.compressed,this.network=options.network||NETWORKS.bitcoin}Object.defineProperty(ECPair.prototype,"Q",{get:function(){return!this.__Q&&this.d&&(this.__Q=secp256k1.G.multiply(this.d)),this.__Q}}),ECPair.fromPublicKeyBuffer=function(buffer,network){var Q=ecurve.Point.decodeFrom(secp256k1,buffer);return new ECPair(null,Q,{compressed:Q.compressed,network:network})},ECPair.fromWIF=function(string,network){var decoded=wif.decode(string),version=decoded.version;if(types.Array(network)){if(!(network=network.filter(function(x){return version===x.wif}).pop()))throw new Error("Unknown network version")}else if(network=network||NETWORKS.bitcoin,version!==network.wif)throw new Error("Invalid network version");return new ECPair(BigInteger.fromBuffer(decoded.privateKey),null,{compressed:decoded.compressed,network:network})},ECPair.makeRandom=function(options){var d,rng=(options=options||{}).rng||randomBytes;do{var buffer=rng(32);typeforce(types.Buffer256bit,buffer),d=BigInteger.fromBuffer(buffer)}while(d.signum()<=0||d.compareTo(secp256k1.n)>=0);return new ECPair(d,null,options)},ECPair.prototype.getAddress=function(){return baddress.toBase58Check(bcrypto.hash160(this.getPublicKeyBuffer()),this.getNetwork().pubKeyHash)},ECPair.prototype.getNetwork=function(){return this.network},ECPair.prototype.getPublicKeyBuffer=function(){return this.Q.getEncoded(this.compressed)},ECPair.prototype.sign=function(hash){if(!this.d)throw new Error("Missing private key");return ecdsa.sign(hash,this.d)},ECPair.prototype.toWIF=function(){if(!this.d)throw new Error("Missing private key");return wif.encode(this.network.wif,this.d.toBuffer(32),this.compressed)},ECPair.prototype.verify=function(hash,signature){return ecdsa.verify(hash,signature,this.Q)},module.exports=ECPair},{"./address":71,"./crypto":74,"./ecdsa":75,"./networks":80,"./types":107,bigi:63,ecurve:257,randombytes:724,typeforce:816,wif:832}],77:[function(require,module,exports){(function(Buffer){var bip66=require("bip66"),typeforce=require("typeforce"),types=require("./types"),BigInteger=require("bigi");function ECSignature(r,s){typeforce(types.tuple(types.BigInt,types.BigInt),arguments),this.r=r,this.s=s}ECSignature.parseCompact=function(buffer){typeforce(types.BufferN(65),buffer);var flagByte=buffer.readUInt8(0)-27;if(flagByte!==(7&flagByte))throw new Error("Invalid signature parameter");return{compressed:!!(4&flagByte),i:3&flagByte,signature:ECSignature.fromRSBuffer(buffer.slice(1))}},ECSignature.fromRSBuffer=function(buffer){return typeforce(types.BufferN(64),buffer),new ECSignature(BigInteger.fromBuffer(buffer.slice(0,32)),BigInteger.fromBuffer(buffer.slice(32,64)))},ECSignature.fromDER=function(buffer){var decode=bip66.decode(buffer);return new ECSignature(BigInteger.fromDERInteger(decode.r),BigInteger.fromDERInteger(decode.s))},ECSignature.parseScriptSignature=function(buffer){var hashType=buffer.readUInt8(buffer.length-1),hashTypeMod=-129&hashType;if(hashTypeMod<=0||hashTypeMod>=4)throw new Error("Invalid hashType "+hashType);return{signature:ECSignature.fromDER(buffer.slice(0,-1)),hashType:hashType}},ECSignature.prototype.toCompact=function(i,compressed){compressed&&(i+=4),i+=27;var buffer=Buffer.alloc(65);return buffer.writeUInt8(i,0),this.toRSBuffer(buffer,1),buffer},ECSignature.prototype.toDER=function(){var r=Buffer.from(this.r.toDERInteger()),s=Buffer.from(this.s.toDERInteger());return bip66.encode(r,s)},ECSignature.prototype.toRSBuffer=function(buffer,offset){return buffer=buffer||Buffer.alloc(64),this.r.toBuffer(32).copy(buffer,offset),this.s.toBuffer(32).copy(buffer,offset+32),buffer},ECSignature.prototype.toScriptSignature=function(hashType){var hashTypeMod=-129&hashType;if(hashTypeMod<=0||hashTypeMod>=4)throw new Error("Invalid hashType "+hashType);var hashTypeBuffer=Buffer.alloc(1);return hashTypeBuffer.writeUInt8(hashType,0),Buffer.concat([this.toDER(),hashTypeBuffer])},module.exports=ECSignature}).call(this,require("buffer").Buffer)},{"./types":107,bigi:63,bip66:68,buffer:146,typeforce:816}],78:[function(require,module,exports){var Buffer=require("safe-buffer").Buffer,base58check=require("bs58check"),bcrypto=require("./crypto"),createHmac=require("create-hmac"),typeforce=require("typeforce"),types=require("./types"),NETWORKS=require("./networks"),BigInteger=require("bigi"),ECPair=require("./ecpair"),ecurve=require("ecurve"),curve=ecurve.getCurveByName("secp256k1");function HDNode(keyPair,chainCode){if(typeforce(types.tuple("ECPair",types.Buffer256bit),arguments),!keyPair.compressed)throw new TypeError("BIP32 only allows compressed keyPairs");this.keyPair=keyPair,this.chainCode=chainCode,this.depth=0,this.index=0,this.parentFingerprint=0}HDNode.HIGHEST_BIT=2147483648,HDNode.LENGTH=78,HDNode.MASTER_SECRET=Buffer.from("Bitcoin seed","utf8"),HDNode.fromSeedBuffer=function(seed,network){if(typeforce(types.tuple(types.Buffer,types.maybe(types.Network)),arguments),seed.length<16)throw new TypeError("Seed should be at least 128 bits");if(seed.length>64)throw new TypeError("Seed should be at most 512 bits");var I=createHmac("sha512",HDNode.MASTER_SECRET).update(seed).digest(),IL=I.slice(0,32),IR=I.slice(32),pIL=BigInteger.fromBuffer(IL);return new HDNode(new ECPair(pIL,null,{network:network}),IR)},HDNode.fromSeedHex=function(hex,network){return HDNode.fromSeedBuffer(Buffer.from(hex,"hex"),network)},HDNode.fromBase58=function(string,networks){var buffer=base58check.decode(string);if(78!==buffer.length)throw new Error("Invalid buffer length");var network,version=buffer.readUInt32BE(0);if(Array.isArray(networks)){if(!(network=networks.filter(function(x){return version===x.bip32.private||version===x.bip32.public}).pop()))throw new Error("Unknown network version")}else network=networks||NETWORKS.bitcoin;if(version!==network.bip32.private&&version!==network.bip32.public)throw new Error("Invalid network version");var depth=buffer[4],parentFingerprint=buffer.readUInt32BE(5);if(0===depth&&0!==parentFingerprint)throw new Error("Invalid parent fingerprint");var index=buffer.readUInt32BE(9);if(0===depth&&0!==index)throw new Error("Invalid index");var keyPair,chainCode=buffer.slice(13,45);if(version===network.bip32.private){if(0!==buffer.readUInt8(45))throw new Error("Invalid private key");var d=BigInteger.fromBuffer(buffer.slice(46,78));keyPair=new ECPair(d,null,{network:network})}else{var Q=ecurve.Point.decodeFrom(curve,buffer.slice(45,78));curve.validate(Q),keyPair=new ECPair(null,Q,{network:network})}var hd=new HDNode(keyPair,chainCode);return hd.depth=depth,hd.index=index,hd.parentFingerprint=parentFingerprint,hd},HDNode.prototype.getAddress=function(){return this.keyPair.getAddress()},HDNode.prototype.getIdentifier=function(){return bcrypto.hash160(this.keyPair.getPublicKeyBuffer())},HDNode.prototype.getFingerprint=function(){return this.getIdentifier().slice(0,4)},HDNode.prototype.getNetwork=function(){return this.keyPair.getNetwork()},HDNode.prototype.getPublicKeyBuffer=function(){return this.keyPair.getPublicKeyBuffer()},HDNode.prototype.neutered=function(){var neutered=new HDNode(new ECPair(null,this.keyPair.Q,{network:this.keyPair.network}),this.chainCode);return neutered.depth=this.depth,neutered.index=this.index,neutered.parentFingerprint=this.parentFingerprint,neutered},HDNode.prototype.sign=function(hash){return this.keyPair.sign(hash)},HDNode.prototype.verify=function(hash,signature){return this.keyPair.verify(hash,signature)},HDNode.prototype.toBase58=function(__isPrivate){if(void 0!==__isPrivate)throw new TypeError("Unsupported argument in 2.0.0");var network=this.keyPair.network,version=this.isNeutered()?network.bip32.public:network.bip32.private,buffer=Buffer.allocUnsafe(78);return buffer.writeUInt32BE(version,0),buffer.writeUInt8(this.depth,4),buffer.writeUInt32BE(this.parentFingerprint,5),buffer.writeUInt32BE(this.index,9),this.chainCode.copy(buffer,13),this.isNeutered()?this.keyPair.getPublicKeyBuffer().copy(buffer,45):(buffer.writeUInt8(0,45),this.keyPair.d.toBuffer(32).copy(buffer,46)),base58check.encode(buffer)},HDNode.prototype.derive=function(index){typeforce(types.UInt32,index);var isHardened=index>=HDNode.HIGHEST_BIT,data=Buffer.allocUnsafe(37);if(isHardened){if(this.isNeutered())throw new TypeError("Could not derive hardened child key");data[0]=0,this.keyPair.d.toBuffer(32).copy(data,1),data.writeUInt32BE(index,33)}else this.keyPair.getPublicKeyBuffer().copy(data,0),data.writeUInt32BE(index,33);var derivedKeyPair,I=createHmac("sha512",this.chainCode).update(data).digest(),IL=I.slice(0,32),IR=I.slice(32),pIL=BigInteger.fromBuffer(IL);if(pIL.compareTo(curve.n)>=0)return this.derive(index+1);if(this.isNeutered()){var Ki=curve.G.multiply(pIL).add(this.keyPair.Q);if(curve.isInfinity(Ki))return this.derive(index+1);derivedKeyPair=new ECPair(null,Ki,{network:this.keyPair.network})}else{var ki=pIL.add(this.keyPair.d).mod(curve.n);if(0===ki.signum())return this.derive(index+1);derivedKeyPair=new ECPair(ki,null,{network:this.keyPair.network})}var hd=new HDNode(derivedKeyPair,IR);return hd.depth=this.depth+1,hd.index=index,hd.parentFingerprint=this.getFingerprint().readUInt32BE(0),hd},HDNode.prototype.deriveHardened=function(index){return typeforce(types.UInt31,index),this.derive(index+HDNode.HIGHEST_BIT)},HDNode.prototype.isNeutered=function(){return!this.keyPair.d},HDNode.prototype.derivePath=function(path){typeforce(types.BIP32Path,path);var splitPath=path.split("/");if("m"===splitPath[0]){if(this.parentFingerprint)throw new Error("Not a master node");splitPath=splitPath.slice(1)}return splitPath.reduce(function(prevHd,indexStr){var index;return"'"===indexStr.slice(-1)?(index=parseInt(indexStr.slice(0,-1),10),prevHd.deriveHardened(index)):(index=parseInt(indexStr,10),prevHd.derive(index))},this)},module.exports=HDNode},{"./crypto":74,"./ecpair":76,"./networks":80,"./types":107,bigi:63,bs58check:140,"create-hmac":241,ecurve:257,"safe-buffer":742,typeforce:816}],79:[function(require,module,exports){var script=require("./script"),templates=require("./templates");for(var key in templates)script[key]=templates[key];module.exports={bufferutils:require("./bufferutils"),Block:require("./block"),ECPair:require("./ecpair"),ECSignature:require("./ecsignature"),HDNode:require("./hdnode"),Transaction:require("./transaction"),TransactionBuilder:require("./transaction_builder"),address:require("./address"),crypto:require("./crypto"),networks:require("./networks"),opcodes:require("bitcoin-ops"),script:script}},{"./address":71,"./block":72,"./bufferutils":73,"./crypto":74,"./ecpair":76,"./ecsignature":77,"./hdnode":78,"./networks":80,"./script":81,"./templates":83,"./transaction":105,"./transaction_builder":106,"bitcoin-ops":69}],80:[function(require,module,exports){module.exports={bitcoin:{messagePrefix:"Bitcoin Signed Message:\n",bech32:"bc",bip32:{public:76067358,private:76066276},pubKeyHash:0,scriptHash:5,wif:128},testnet:{messagePrefix:"Bitcoin Signed Message:\n",bech32:"tb",bip32:{public:70617039,private:70615956},pubKeyHash:111,scriptHash:196,wif:239},litecoin:{messagePrefix:"Litecoin Signed Message:\n",bip32:{public:27108450,private:27106558},pubKeyHash:48,scriptHash:50,wif:176}}},{}],81:[function(require,module,exports){var Buffer=require("safe-buffer").Buffer,bip66=require("bip66"),pushdata=require("pushdata-bitcoin"),typeforce=require("typeforce"),types=require("./types"),scriptNumber=require("./script_number"),OPS=require("bitcoin-ops"),REVERSE_OPS=require("bitcoin-ops/map"),OP_INT_BASE=OPS.OP_RESERVED;function isPushOnlyChunk(value){return types.Buffer(value)||function(value){return types.Number(value)&&(value===OPS.OP_0||value>=OPS.OP_1&&value<=OPS.OP_16||value===OPS.OP_1NEGATE)}(value)}function isPushOnly(value){return types.Array(value)&&value.every(isPushOnlyChunk)}function asMinimalOP(buffer){return 0===buffer.length?OPS.OP_0:1===buffer.length?buffer[0]>=1&&buffer[0]<=16?OP_INT_BASE+buffer[0]:129===buffer[0]?OPS.OP_1NEGATE:void 0:void 0}function compile(chunks){if(Buffer.isBuffer(chunks))return chunks;typeforce(types.Array,chunks);var bufferSize=chunks.reduce(function(accum,chunk){return Buffer.isBuffer(chunk)?1===chunk.length&&void 0!==asMinimalOP(chunk)?accum+1:accum+pushdata.encodingLength(chunk.length)+chunk.length:accum+1},0),buffer=Buffer.allocUnsafe(bufferSize),offset=0;if(chunks.forEach(function(chunk){if(Buffer.isBuffer(chunk)){var opcode=asMinimalOP(chunk);if(void 0!==opcode)return buffer.writeUInt8(opcode,offset),void(offset+=1);offset+=pushdata.encode(buffer,chunk.length,offset),chunk.copy(buffer,offset),offset+=chunk.length}else buffer.writeUInt8(chunk,offset),offset+=1}),offset!==buffer.length)throw new Error("Could not decode chunks");return buffer}function decompile(buffer){if(types.Array(buffer))return buffer;typeforce(types.Buffer,buffer);for(var chunks=[],i=0;iOPS.OP_0&&opcode<=OPS.OP_PUSHDATA4){var d=pushdata.decode(buffer,i);if(null===d)return[];if((i+=d.size)+d.number>buffer.length)return[];var data=buffer.slice(i,i+d.number);i+=d.number;var op=asMinimalOP(data);void 0!==op?chunks.push(op):chunks.push(data)}else chunks.push(opcode),i+=1}return chunks}function isDefinedHashType(hashType){var hashTypeMod=-129&hashType;return hashTypeMod>0&&hashTypeMod<4}module.exports={compile:compile,decompile:decompile,fromASM:function(asm){return typeforce(types.String,asm),compile(asm.split(" ").map(function(chunkStr){return void 0!==OPS[chunkStr]?OPS[chunkStr]:(typeforce(types.Hex,chunkStr),Buffer.from(chunkStr,"hex"))}))},toASM:function(chunks){return Buffer.isBuffer(chunks)&&(chunks=decompile(chunks)),chunks.map(function(chunk){if(Buffer.isBuffer(chunk)){var op=asMinimalOP(chunk);if(void 0===op)return chunk.toString("hex");chunk=op}return REVERSE_OPS[chunk]}).join(" ")},toStack:function(chunks){return chunks=decompile(chunks),typeforce(isPushOnly,chunks),chunks.map(function(op){return Buffer.isBuffer(op)?op:op===OPS.OP_0?Buffer.allocUnsafe(0):scriptNumber.encode(op-OP_INT_BASE)})},number:require("./script_number"),isCanonicalPubKey:function(buffer){if(!Buffer.isBuffer(buffer))return!1;if(buffer.length<33)return!1;switch(buffer[0]){case 2:case 3:return 33===buffer.length;case 4:return 65===buffer.length}return!1},isCanonicalSignature:function(buffer){return!!Buffer.isBuffer(buffer)&&!!isDefinedHashType(buffer[buffer.length-1])&&bip66.check(buffer.slice(0,-1))},isPushOnly:isPushOnly,isDefinedHashType:isDefinedHashType}},{"./script_number":82,"./types":107,bip66:68,"bitcoin-ops":69,"bitcoin-ops/map":70,"pushdata-bitcoin":720,"safe-buffer":742,typeforce:816}],82:[function(require,module,exports){var Buffer=require("safe-buffer").Buffer;module.exports={decode:function(buffer,maxLength,minimal){maxLength=maxLength||4,minimal=void 0===minimal||minimal;var length=buffer.length;if(0===length)return 0;if(length>maxLength)throw new TypeError("Script number overflow");if(minimal&&0==(127&buffer[length-1])&&(length<=1||0==(128&buffer[length-2])))throw new Error("Non-minimally encoded script number");if(5===length){var a=buffer.readUInt32LE(0),b=buffer.readUInt8(4);return 128&b?-(4294967296*(-129&b)+a):4294967296*b+a}for(var result=0,i=0;i2147483647?5:i>8388607?4:i>32767?3:i>127?2:i>0?1:0}(value),buffer=Buffer.allocUnsafe(size),negative=number<0,i=0;i>=8;return 128&buffer[size-1]?buffer.writeUInt8(negative?128:0,size-1):negative&&(buffer[size-1]|=128),buffer}}},{"safe-buffer":742}],83:[function(require,module,exports){var decompile=require("../script").decompile,multisig=require("./multisig"),nullData=require("./nulldata"),pubKey=require("./pubkey"),pubKeyHash=require("./pubkeyhash"),scriptHash=require("./scripthash"),witnessPubKeyHash=require("./witnesspubkeyhash"),witnessScriptHash=require("./witnessscripthash"),witnessCommitment=require("./witnesscommitment"),types={MULTISIG:"multisig",NONSTANDARD:"nonstandard",NULLDATA:"nulldata",P2PK:"pubkey",P2PKH:"pubkeyhash",P2SH:"scripthash",P2WPKH:"witnesspubkeyhash",P2WSH:"witnessscripthash",WITNESS_COMMITMENT:"witnesscommitment"};module.exports={classifyInput:function(script,allowIncomplete){var chunks=decompile(script);return pubKeyHash.input.check(chunks)?types.P2PKH:scriptHash.input.check(chunks,allowIncomplete)?types.P2SH:multisig.input.check(chunks,allowIncomplete)?types.MULTISIG:pubKey.input.check(chunks)?types.P2PK:types.NONSTANDARD},classifyOutput:function(script){if(witnessPubKeyHash.output.check(script))return types.P2WPKH;if(witnessScriptHash.output.check(script))return types.P2WSH;if(pubKeyHash.output.check(script))return types.P2PKH;if(scriptHash.output.check(script))return types.P2SH;var chunks=decompile(script);return multisig.output.check(chunks)?types.MULTISIG:pubKey.output.check(chunks)?types.P2PK:witnessCommitment.output.check(chunks)?types.WITNESS_COMMITMENT:nullData.output.check(chunks)?types.NULLDATA:types.NONSTANDARD},classifyWitness:function(script,allowIncomplete){var chunks=decompile(script);return witnessPubKeyHash.input.check(chunks)?types.P2WPKH:witnessScriptHash.input.check(chunks,allowIncomplete)?types.P2WSH:types.NONSTANDARD},multisig:multisig,nullData:nullData,pubKey:pubKey,pubKeyHash:pubKeyHash,scriptHash:scriptHash,witnessPubKeyHash:witnessPubKeyHash,witnessScriptHash:witnessScriptHash,witnessCommitment:witnessCommitment,types:types}},{"../script":81,"./multisig":84,"./nulldata":87,"./pubkey":88,"./pubkeyhash":91,"./scripthash":94,"./witnesscommitment":97,"./witnesspubkeyhash":99,"./witnessscripthash":102}],84:[function(require,module,exports){module.exports={input:require("./input"),output:require("./output")}},{"./input":85,"./output":86}],85:[function(require,module,exports){var Buffer=require("safe-buffer").Buffer,bscript=require("../../script"),p2mso=require("./output"),typeforce=require("typeforce"),OPS=require("bitcoin-ops");function partialSignature(value){return value===OPS.OP_0||bscript.isCanonicalSignature(value)}function check(script,allowIncomplete){var chunks=bscript.decompile(script);return!(chunks.length<2)&&(chunks[0]===OPS.OP_0&&(allowIncomplete?chunks.slice(1).every(partialSignature):chunks.slice(1).every(bscript.isCanonicalSignature)))}check.toJSON=function(){return"multisig input"};var EMPTY_BUFFER=Buffer.allocUnsafe(0);function encodeStack(signatures,scriptPubKey){if(typeforce([partialSignature],signatures),scriptPubKey){var scriptData=p2mso.decode(scriptPubKey);if(signatures.lengthscriptData.pubKeys.length)throw new TypeError("Too many signatures provided")}return[].concat(EMPTY_BUFFER,signatures.map(function(sig){return sig===OPS.OP_0?EMPTY_BUFFER:sig}))}function decodeStack(stack,allowIncomplete){return typeforce(typeforce.Array,stack),typeforce(check,stack,allowIncomplete),stack.slice(1)}module.exports={check:check,decode:function(buffer,allowIncomplete){return decodeStack(bscript.decompile(buffer),allowIncomplete)},decodeStack:decodeStack,encode:function(signatures,scriptPubKey){return bscript.compile(encodeStack(signatures,scriptPubKey))},encodeStack:encodeStack}},{"../../script":81,"./output":86,"bitcoin-ops":69,"safe-buffer":742,typeforce:816}],86:[function(require,module,exports){var bscript=require("../../script"),types=require("../../types"),typeforce=require("typeforce"),OPS=require("bitcoin-ops"),OP_INT_BASE=OPS.OP_RESERVED;function check(script,allowIncomplete){var chunks=bscript.decompile(script);if(chunks.length<4)return!1;if(chunks[chunks.length-1]!==OPS.OP_CHECKMULTISIG)return!1;if(!types.Number(chunks[0]))return!1;if(!types.Number(chunks[chunks.length-2]))return!1;var m=chunks[0]-OP_INT_BASE,n=chunks[chunks.length-2]-OP_INT_BASE;return!(m<=0)&&(!(n>16)&&(!(m>n)&&(n===chunks.length-3&&(!!allowIncomplete||chunks.slice(1,-2).every(bscript.isCanonicalPubKey)))))}check.toJSON=function(){return"multi-sig output"},module.exports={check:check,decode:function(buffer,allowIncomplete){var chunks=bscript.decompile(buffer);return typeforce(check,chunks,allowIncomplete),{m:chunks[0]-OP_INT_BASE,pubKeys:chunks.slice(1,-2)}},encode:function(m,pubKeys){typeforce({m:types.Number,pubKeys:[bscript.isCanonicalPubKey]},{m:m,pubKeys:pubKeys});var n=pubKeys.length;if(n1&&buffer[0]===OPS.OP_RETURN}check.toJSON=function(){return"null data output"},module.exports={output:{check:check,decode:function(buffer){return typeforce(check,buffer),buffer.slice(2)},encode:function(data){return typeforce(types.Buffer,data),bscript.compile([OPS.OP_RETURN,data])}}}},{"../script":81,"../types":107,"bitcoin-ops":69,typeforce:816}],88:[function(require,module,exports){arguments[4][84][0].apply(exports,arguments)},{"./input":89,"./output":90,dup:84}],89:[function(require,module,exports){var bscript=require("../../script"),typeforce=require("typeforce");function check(script){var chunks=bscript.decompile(script);return 1===chunks.length&&bscript.isCanonicalSignature(chunks[0])}function encodeStack(signature){return typeforce(bscript.isCanonicalSignature,signature),[signature]}function decodeStack(stack){return typeforce(typeforce.Array,stack),typeforce(check,stack),stack[0]}check.toJSON=function(){return"pubKey input"},module.exports={check:check,decode:function(buffer){return decodeStack(bscript.decompile(buffer))},decodeStack:decodeStack,encode:function(signature){return bscript.compile(encodeStack(signature))},encodeStack:encodeStack}},{"../../script":81,typeforce:816}],90:[function(require,module,exports){var bscript=require("../../script"),typeforce=require("typeforce"),OPS=require("bitcoin-ops");function check(script){var chunks=bscript.decompile(script);return 2===chunks.length&&bscript.isCanonicalPubKey(chunks[0])&&chunks[1]===OPS.OP_CHECKSIG}check.toJSON=function(){return"pubKey output"},module.exports={check:check,decode:function(buffer){var chunks=bscript.decompile(buffer);return typeforce(check,chunks),chunks[0]},encode:function(pubKey){return typeforce(bscript.isCanonicalPubKey,pubKey),bscript.compile([pubKey,OPS.OP_CHECKSIG])}}},{"../../script":81,"bitcoin-ops":69,typeforce:816}],91:[function(require,module,exports){arguments[4][84][0].apply(exports,arguments)},{"./input":92,"./output":93,dup:84}],92:[function(require,module,exports){var bscript=require("../../script"),typeforce=require("typeforce");function check(script){var chunks=bscript.decompile(script);return 2===chunks.length&&bscript.isCanonicalSignature(chunks[0])&&bscript.isCanonicalPubKey(chunks[1])}function encodeStack(signature,pubKey){return typeforce({signature:bscript.isCanonicalSignature,pubKey:bscript.isCanonicalPubKey},{signature:signature,pubKey:pubKey}),[signature,pubKey]}function decodeStack(stack){return typeforce(typeforce.Array,stack),typeforce(check,stack),{signature:stack[0],pubKey:stack[1]}}check.toJSON=function(){return"pubKeyHash input"},module.exports={check:check,decode:function(buffer){return decodeStack(bscript.decompile(buffer))},decodeStack:decodeStack,encode:function(signature,pubKey){return bscript.compile(encodeStack(signature,pubKey))},encodeStack:encodeStack}},{"../../script":81,typeforce:816}],93:[function(require,module,exports){var bscript=require("../../script"),types=require("../../types"),typeforce=require("typeforce"),OPS=require("bitcoin-ops");function check(script){var buffer=bscript.compile(script);return 25===buffer.length&&buffer[0]===OPS.OP_DUP&&buffer[1]===OPS.OP_HASH160&&20===buffer[2]&&buffer[23]===OPS.OP_EQUALVERIFY&&buffer[24]===OPS.OP_CHECKSIG}check.toJSON=function(){return"pubKeyHash output"},module.exports={check:check,decode:function(buffer){return typeforce(check,buffer),buffer.slice(3,23)},encode:function(pubKeyHash){return typeforce(types.Hash160bit,pubKeyHash),bscript.compile([OPS.OP_DUP,OPS.OP_HASH160,pubKeyHash,OPS.OP_EQUALVERIFY,OPS.OP_CHECKSIG])}}},{"../../script":81,"../../types":107,"bitcoin-ops":69,typeforce:816}],94:[function(require,module,exports){arguments[4][84][0].apply(exports,arguments)},{"./input":95,"./output":96,dup:84}],95:[function(require,module,exports){var Buffer=require("safe-buffer").Buffer,bscript=require("../../script"),typeforce=require("typeforce"),p2ms=require("../multisig/"),p2pk=require("../pubkey/"),p2pkh=require("../pubkeyhash/"),p2wpkho=require("../witnesspubkeyhash/output"),p2wsho=require("../witnessscripthash/output");function check(script,allowIncomplete){var chunks=bscript.decompile(script);if(chunks.length<1)return!1;var lastChunk=chunks[chunks.length-1];if(!Buffer.isBuffer(lastChunk))return!1;var scriptSigChunks=bscript.decompile(bscript.compile(chunks.slice(0,-1))),redeemScriptChunks=bscript.decompile(lastChunk);return 0!==redeemScriptChunks.length&&(!!bscript.isPushOnly(scriptSigChunks)&&(1===chunks.length?p2wsho.check(redeemScriptChunks)||p2wpkho.check(redeemScriptChunks):!(!p2pkh.input.check(scriptSigChunks)||!p2pkh.output.check(redeemScriptChunks))||(!(!p2ms.input.check(scriptSigChunks,allowIncomplete)||!p2ms.output.check(redeemScriptChunks))||!(!p2pk.input.check(scriptSigChunks)||!p2pk.output.check(redeemScriptChunks)))))}function encodeStack(redeemScriptStack,redeemScript){var serializedScriptPubKey=bscript.compile(redeemScript);return[].concat(redeemScriptStack,serializedScriptPubKey)}function decodeStack(stack){return typeforce(typeforce.Array,stack),typeforce(check,stack),{redeemScriptStack:stack.slice(0,-1),redeemScript:stack[stack.length-1]}}check.toJSON=function(){return"scriptHash input"},module.exports={check:check,decode:function(buffer){var result=decodeStack(bscript.decompile(buffer));return result.redeemScriptSig=bscript.compile(result.redeemScriptStack),delete result.redeemScriptStack,result},decodeStack:decodeStack,encode:function(redeemScriptSig,redeemScript){var redeemScriptStack=bscript.decompile(redeemScriptSig);return bscript.compile(encodeStack(redeemScriptStack,redeemScript))},encodeStack:encodeStack}},{"../../script":81,"../multisig/":84,"../pubkey/":88,"../pubkeyhash/":91,"../witnesspubkeyhash/output":101,"../witnessscripthash/output":104,"safe-buffer":742,typeforce:816}],96:[function(require,module,exports){var bscript=require("../../script"),types=require("../../types"),typeforce=require("typeforce"),OPS=require("bitcoin-ops");function check(script){var buffer=bscript.compile(script);return 23===buffer.length&&buffer[0]===OPS.OP_HASH160&&20===buffer[1]&&buffer[22]===OPS.OP_EQUAL}check.toJSON=function(){return"scriptHash output"},module.exports={check:check,decode:function(buffer){return typeforce(check,buffer),buffer.slice(2,22)},encode:function(scriptHash){return typeforce(types.Hash160bit,scriptHash),bscript.compile([OPS.OP_HASH160,scriptHash,OPS.OP_EQUAL])}}},{"../../script":81,"../../types":107,"bitcoin-ops":69,typeforce:816}],97:[function(require,module,exports){module.exports={output:require("./output")}},{"./output":98}],98:[function(require,module,exports){var Buffer=require("safe-buffer").Buffer,bscript=require("../../script"),types=require("../../types"),typeforce=require("typeforce"),OPS=require("bitcoin-ops"),HEADER=Buffer.from("aa21a9ed","hex");function check(script){var buffer=bscript.compile(script);return buffer.length>37&&buffer[0]===OPS.OP_RETURN&&36===buffer[1]&&buffer.slice(2,6).equals(HEADER)}check.toJSON=function(){return"Witness commitment output"},module.exports={check:check,decode:function(buffer){return typeforce(check,buffer),bscript.decompile(buffer)[1].slice(4,36)},encode:function(commitment){typeforce(types.Hash256bit,commitment);var buffer=Buffer.allocUnsafe(36);return HEADER.copy(buffer,0),commitment.copy(buffer,4),bscript.compile([OPS.OP_RETURN,buffer])}}},{"../../script":81,"../../types":107,"bitcoin-ops":69,"safe-buffer":742,typeforce:816}],99:[function(require,module,exports){arguments[4][84][0].apply(exports,arguments)},{"./input":100,"./output":101,dup:84}],100:[function(require,module,exports){var bscript=require("../../script"),typeforce=require("typeforce");function isCompressedCanonicalPubKey(pubKey){return bscript.isCanonicalPubKey(pubKey)&&33===pubKey.length}function check(script){var chunks=bscript.decompile(script);return 2===chunks.length&&bscript.isCanonicalSignature(chunks[0])&&isCompressedCanonicalPubKey(chunks[1])}check.toJSON=function(){return"witnessPubKeyHash input"},module.exports={check:check,decodeStack:function(stack){return typeforce(typeforce.Array,stack),typeforce(check,stack),{signature:stack[0],pubKey:stack[1]}},encodeStack:function(signature,pubKey){return typeforce({signature:bscript.isCanonicalSignature,pubKey:isCompressedCanonicalPubKey},{signature:signature,pubKey:pubKey}),[signature,pubKey]}}},{"../../script":81,typeforce:816}],101:[function(require,module,exports){var bscript=require("../../script"),types=require("../../types"),typeforce=require("typeforce"),OPS=require("bitcoin-ops");function check(script){var buffer=bscript.compile(script);return 22===buffer.length&&buffer[0]===OPS.OP_0&&20===buffer[1]}check.toJSON=function(){return"Witness pubKeyHash output"},module.exports={check:check,decode:function(buffer){return typeforce(check,buffer),buffer.slice(2)},encode:function(pubKeyHash){return typeforce(types.Hash160bit,pubKeyHash),bscript.compile([OPS.OP_0,pubKeyHash])}}},{"../../script":81,"../../types":107,"bitcoin-ops":69,typeforce:816}],102:[function(require,module,exports){arguments[4][84][0].apply(exports,arguments)},{"./input":103,"./output":104,dup:84}],103:[function(require,module,exports){(function(Buffer){var bscript=require("../../script"),types=require("../../types"),typeforce=require("typeforce"),p2ms=require("../multisig/"),p2pk=require("../pubkey/"),p2pkh=require("../pubkeyhash/");function check(chunks,allowIncomplete){if(typeforce(types.Array,chunks),chunks.length<1)return!1;var witnessScript=chunks[chunks.length-1];if(!Buffer.isBuffer(witnessScript))return!1;var witnessScriptChunks=bscript.decompile(witnessScript);if(0===witnessScriptChunks.length)return!1;var witnessRawScriptSig=bscript.compile(chunks.slice(0,-1));return!(!p2pkh.input.check(witnessRawScriptSig)||!p2pkh.output.check(witnessScriptChunks))||(!(!p2ms.input.check(witnessRawScriptSig,allowIncomplete)||!p2ms.output.check(witnessScriptChunks))||!(!p2pk.input.check(witnessRawScriptSig)||!p2pk.output.check(witnessScriptChunks)))}check.toJSON=function(){return"witnessScriptHash input"},module.exports={check:check,decodeStack:function(stack){return typeforce(typeforce.Array,stack),typeforce(check,stack),{witnessData:stack.slice(0,-1),witnessScript:stack[stack.length-1]}},encodeStack:function(witnessData,witnessScript){return typeforce({witnessData:[types.Buffer],witnessScript:types.Buffer},{witnessData:witnessData,witnessScript:witnessScript}),[].concat(witnessData,witnessScript)}}}).call(this,{isBuffer:require("../../../../insert-module-globals/node_modules/is-buffer/index.js")})},{"../../../../insert-module-globals/node_modules/is-buffer/index.js":397,"../../script":81,"../../types":107,"../multisig/":84,"../pubkey/":88,"../pubkeyhash/":91,typeforce:816}],104:[function(require,module,exports){var bscript=require("../../script"),types=require("../../types"),typeforce=require("typeforce"),OPS=require("bitcoin-ops");function check(script){var buffer=bscript.compile(script);return 34===buffer.length&&buffer[0]===OPS.OP_0&&32===buffer[1]}check.toJSON=function(){return"Witness scriptHash output"},module.exports={check:check,decode:function(buffer){return typeforce(check,buffer),buffer.slice(2)},encode:function(scriptHash){return typeforce(types.Hash256bit,scriptHash),bscript.compile([OPS.OP_0,scriptHash])}}},{"../../script":81,"../../types":107,"bitcoin-ops":69,typeforce:816}],105:[function(require,module,exports){var Buffer=require("safe-buffer").Buffer,bcrypto=require("./crypto"),bscript=require("./script"),bufferutils=require("./bufferutils"),opcodes=require("bitcoin-ops"),typeforce=require("typeforce"),types=require("./types"),varuint=require("varuint-bitcoin");function varSliceSize(someScript){var length=someScript.length;return varuint.encodingLength(length)+length}function Transaction(){this.version=1,this.locktime=0,this.ins=[],this.outs=[]}Transaction.DEFAULT_SEQUENCE=4294967295,Transaction.SIGHASH_ALL=1,Transaction.SIGHASH_NONE=2,Transaction.SIGHASH_SINGLE=3,Transaction.SIGHASH_ANYONECANPAY=128,Transaction.ADVANCED_TRANSACTION_MARKER=0,Transaction.ADVANCED_TRANSACTION_FLAG=1;var EMPTY_SCRIPT=Buffer.allocUnsafe(0),EMPTY_WITNESS=[],ZERO=Buffer.from("0000000000000000000000000000000000000000000000000000000000000000","hex"),ONE=Buffer.from("0000000000000000000000000000000000000000000000000000000000000001","hex"),VALUE_UINT64_MAX=Buffer.from("ffffffffffffffff","hex"),BLANK_OUTPUT={script:EMPTY_SCRIPT,valueBuffer:VALUE_UINT64_MAX};Transaction.fromBuffer=function(buffer,__noStrict){var offset=0;function readSlice(n){return offset+=n,buffer.slice(offset-n,offset)}function readUInt32(){var i=buffer.readUInt32LE(offset);return offset+=4,i}function readUInt64(){var i=bufferutils.readUInt64LE(buffer,offset);return offset+=8,i}function readVarInt(){var vi=varuint.decode(buffer,offset);return offset+=varuint.decode.bytes,vi}function readVarSlice(){return readSlice(readVarInt())}function readVector(){for(var count=readVarInt(),vector=[],i=0;i=this.ins.length)return ONE;var ourScript=bscript.compile(bscript.decompile(prevOutScript).filter(function(x){return x!==opcodes.OP_CODESEPARATOR})),txTmp=this.clone();if((31&hashType)===Transaction.SIGHASH_NONE)txTmp.outs=[],txTmp.ins.forEach(function(input,i){i!==inIndex&&(input.sequence=0)});else if((31&hashType)===Transaction.SIGHASH_SINGLE){if(inIndex>=this.outs.length)return ONE;txTmp.outs.length=inIndex+1;for(var i=0;i0)return signatures=signatures.map(function(signature){return signature||ops.OP_0}),allowIncomplete||(signatures=signatures.filter(function(x){return x!==ops.OP_0})),btemplates.multisig.input.encodeStack(signatures)}if(!allowIncomplete)throw new Error("Not enough signatures provided");return[]}function TransactionBuilder(network,maximumFeeRate){this.prevTxMap={},this.network=network||networks.bitcoin,this.maximumFeeRate=maximumFeeRate||2500,this.inputs=[],this.tx=new Transaction}function canSign(input){return void 0!==input.prevOutScript&&void 0!==input.signScript&&void 0!==input.pubKeys&&void 0!==input.signatures&&input.signatures.length===input.pubKeys.length&&input.pubKeys.length>0&&(!1===input.witness||!0===input.witness&&void 0!==input.value)}function signatureHashType(buffer){return buffer.readUInt8(buffer.length-1)}TransactionBuilder.prototype.setLockTime=function(locktime){if(typeforce(types.UInt32,locktime),this.inputs.some(function(input){return!!input.signatures&&input.signatures.some(function(s){return s})}))throw new Error("No, this would invalidate signatures");this.tx.locktime=locktime},TransactionBuilder.prototype.setVersion=function(version){typeforce(types.UInt32,version),this.tx.version=version},TransactionBuilder.fromTransaction=function(transaction,network){var txb=new TransactionBuilder(network);return txb.setVersion(transaction.version),txb.setLockTime(transaction.locktime),transaction.outs.forEach(function(txOut){txb.addOutput(txOut.script,txOut.value)}),transaction.ins.forEach(function(txIn){txb.__addInputUnsafe(txIn.hash,txIn.index,{sequence:txIn.sequence,script:txIn.script,witness:txIn.witness})}),txb.inputs.forEach(function(input,i){!function(input,transaction,vin){if(input.redeemScriptType===scriptTypes.MULTISIG&&input.redeemScript&&input.pubKeys.length!==input.signatures.length){var unmatched=input.signatures.concat();input.signatures=input.pubKeys.map(function(pubKey){var match,keyPair=ECPair.fromPublicKeyBuffer(pubKey);return unmatched.some(function(signature,i){if(!signature)return!1;var parsed=ECSignature.parseScriptSignature(signature),hash=transaction.hashForSignature(vin,input.redeemScript,parsed.hashType);return!!keyPair.verify(hash,parsed.signature)&&(unmatched[i]=void 0,match=signature,!0)}),match})}}(input,transaction,i)}),txb},TransactionBuilder.prototype.addInput=function(txHash,vout,sequence,prevOutScript){if(!this.__canModifyInputs())throw new Error("No, this would invalidate signatures");var value;if("string"==typeof txHash)txHash=Buffer.from(txHash,"hex").reverse();else if(txHash instanceof Transaction){var txOut=txHash.outs[vout];prevOutScript=txOut.script,value=txOut.value,txHash=txHash.getHash()}return this.__addInputUnsafe(txHash,vout,{sequence:sequence,prevOutScript:prevOutScript,value:value})},TransactionBuilder.prototype.__addInputUnsafe=function(txHash,vout,options){if(Transaction.isCoinbaseHash(txHash))throw new Error("coinbase inputs not supported");var prevTxOut=txHash.toString("hex")+":"+vout;if(void 0!==this.prevTxMap[prevTxOut])throw new Error("Duplicate TxOut: "+prevTxOut);var input={};if(void 0!==options.script&&(input=expandInput(options.script,options.witness||[])),void 0!==options.value&&(input.value=options.value),!input.prevOutScript&&options.prevOutScript){var prevOutType;if(!input.pubKeys&&!input.signatures){var expanded=expandOutput(options.prevOutScript);expanded.pubKeys&&(input.pubKeys=expanded.pubKeys,input.signatures=expanded.signatures),prevOutType=expanded.scriptType}input.prevOutScript=options.prevOutScript,input.prevOutType=prevOutType||btemplates.classifyOutput(options.prevOutScript)}var vin=this.tx.addInput(txHash,vout,options.sequence,options.scriptSig);return this.inputs[vin]=input,this.prevTxMap[prevTxOut]=vin,vin},TransactionBuilder.prototype.addOutput=function(scriptPubKey,value){if(!this.__canModifyOutputs())throw new Error("No, this would invalidate signatures");return"string"==typeof scriptPubKey&&(scriptPubKey=baddress.toOutputScript(scriptPubKey,this.network)),this.tx.addOutput(scriptPubKey,value)},TransactionBuilder.prototype.build=function(){return this.__build(!1)},TransactionBuilder.prototype.buildIncomplete=function(){return this.__build(!0)},TransactionBuilder.prototype.__build=function(allowIncomplete){if(!allowIncomplete){if(!this.tx.ins.length)throw new Error("Transaction has no inputs");if(!this.tx.outs.length)throw new Error("Transaction has no outputs")}var tx=this.tx.clone();if(this.inputs.forEach(function(input,i){if(!(input.witnessScriptType||input.redeemScriptType||input.prevOutType)&&!allowIncomplete)throw new Error("Transaction is not complete");var result=function(input,allowIncomplete){var scriptType=input.prevOutType,sig=[],witness=[];supportedType(scriptType)&&(sig=buildStack(scriptType,input.signatures,input.pubKeys,allowIncomplete));var p2sh=!1;if(scriptType===btemplates.types.P2SH){if(!allowIncomplete&&!supportedP2SHType(input.redeemScriptType))throw new Error("Impossible to sign this type");supportedType(input.redeemScriptType)&&(sig=buildStack(input.redeemScriptType,input.signatures,input.pubKeys,allowIncomplete)),input.redeemScriptType&&(p2sh=!0,scriptType=input.redeemScriptType)}switch(scriptType){case btemplates.types.P2WPKH:witness=buildStack(btemplates.types.P2PKH,input.signatures,input.pubKeys,allowIncomplete);break;case btemplates.types.P2WSH:if(!allowIncomplete&&!supportedType(input.witnessScriptType))throw new Error("Impossible to sign this type");supportedType(input.witnessScriptType)&&((witness=buildStack(input.witnessScriptType,input.signatures,input.pubKeys,allowIncomplete)).push(input.witnessScript),scriptType=input.witnessScriptType)}return p2sh&&sig.push(input.redeemScript),{type:scriptType,script:bscript.compile(sig),witness:witness}}(input,allowIncomplete);if(!allowIncomplete&&!supportedType(result.type)&&result.type!==btemplates.types.P2WPKH)throw new Error(result.type+" not supported");tx.setInputScript(i,result.script),tx.setWitness(i,result.witness)}),!allowIncomplete&&this.__overMaximumFees(tx.virtualSize()))throw new Error("Transaction has absurd fees");return tx},TransactionBuilder.prototype.sign=function(vin,keyPair,redeemScript,hashType,witnessValue,witnessScript){if(keyPair.network&&keyPair.network!==this.network)throw new TypeError("Inconsistent network");if(!this.inputs[vin])throw new Error("No input at index: "+vin);hashType=hashType||Transaction.SIGHASH_ALL;var input=this.inputs[vin];if(void 0!==input.redeemScript&&redeemScript&&!input.redeemScript.equals(redeemScript))throw new Error("Inconsistent redeemScript");var signatureHash,kpPubKey=keyPair.publicKey||keyPair.getPublicKeyBuffer();if(!canSign(input)){if(void 0!==witnessValue){if(void 0!==input.value&&input.value!==witnessValue)throw new Error("Input didn't match witnessValue");typeforce(types.Satoshi,witnessValue),input.value=witnessValue}if(canSign(input)||prepareInput(input,kpPubKey,redeemScript,0,witnessScript),!canSign(input))throw Error(input.prevOutType+" not supported")}if(signatureHash=input.witness?this.tx.hashForWitnessV0(vin,input.signScript,input.value,hashType):this.tx.hashForSignature(vin,input.signScript,hashType),!input.pubKeys.some(function(pubKey,i){if(!kpPubKey.equals(pubKey))return!1;if(input.signatures[i])throw new Error("Signature already exists");if(33!==kpPubKey.length&&input.signType===scriptTypes.P2WPKH)throw new Error("BIP143 rejects uncompressed public keys in P2WPKH or P2WSH");var signature=keyPair.sign(signatureHash);return Buffer.isBuffer(signature)&&(signature=ECSignature.fromRSBuffer(signature)),input.signatures[i]=signature.toScriptSignature(hashType),!0}))throw new Error("Key pair cannot sign for this input")},TransactionBuilder.prototype.__canModifyInputs=function(){return this.inputs.every(function(input){return void 0===input.signatures||input.signatures.every(function(signature){return!signature||signatureHashType(signature)&Transaction.SIGHASH_ANYONECANPAY})})},TransactionBuilder.prototype.__canModifyOutputs=function(){var nInputs=this.tx.ins.length,nOutputs=this.tx.outs.length;return this.inputs.every(function(input){return void 0===input.signatures||input.signatures.every(function(signature){if(!signature)return!0;var hashTypeMod=31&signatureHashType(signature);return hashTypeMod===Transaction.SIGHASH_NONE||(hashTypeMod===Transaction.SIGHASH_SINGLE?nInputs<=nOutputs:void 0)})})},TransactionBuilder.prototype.__overMaximumFees=function(bytes){return(this.inputs.reduce(function(a,x){return a+(x.value>>>0)},0)-this.tx.outs.reduce(function(a,x){return a+x.value},0))/bytes>this.maximumFeeRate},module.exports=TransactionBuilder},{"./address":71,"./crypto":74,"./ecpair":76,"./ecsignature":77,"./networks":80,"./script":81,"./templates":83,"./transaction":105,"./types":107,"bitcoin-ops":69,"safe-buffer":742,typeforce:816}],107:[function(require,module,exports){var typeforce=require("typeforce"),UINT31_MAX=Math.pow(2,31)-1;function BIP32Path(value){return typeforce.String(value)&&value.match(/^(m\/)?(\d+'?\/)*\d+'?$/)}BIP32Path.toJSON=function(){return"BIP32 derivation path"};var SATOSHI_MAX=21e14;var BigInt=typeforce.quacksLike("BigInteger"),ECPoint=typeforce.quacksLike("Point"),ECSignature=typeforce.compile({r:BigInt,s:BigInt}),Network=typeforce.compile({messagePrefix:typeforce.oneOf(typeforce.Buffer,typeforce.String),bip32:{public:typeforce.UInt32,private:typeforce.UInt32},pubKeyHash:typeforce.oneOf(typeforce.UInt8,typeforce.UInt16),scriptHash:typeforce.oneOf(typeforce.UInt8,typeforce.UInt16),wif:typeforce.UInt8}),types={BigInt:BigInt,BIP32Path:BIP32Path,Buffer256bit:typeforce.BufferN(32),ECPoint:ECPoint,ECSignature:ECSignature,Hash160bit:typeforce.BufferN(20),Hash256bit:typeforce.BufferN(32),Network:Network,Satoshi:function(value){return typeforce.UInt53(value)&&value<=SATOSHI_MAX},UInt31:function(value){return typeforce.UInt32(value)&&value<=UINT31_MAX}};for(var typeName in typeforce)types[typeName]=typeforce[typeName];module.exports=types},{typeforce:816}],108:[function(require,module,exports){!function(module,exports){"use strict";function assert(val,msg){if(!val)throw new Error(msg||"Assertion failed")}function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype,ctor.prototype=new TempCtor,ctor.prototype.constructor=ctor}function BN(number,base,endian){if(BN.isBN(number))return number;this.negative=0,this.words=null,this.length=0,this.red=null,null!==number&&("le"!==base&&"be"!==base||(endian=base,base=10),this._init(number||0,base||10,endian||"be"))}var Buffer;"object"==typeof module?module.exports=BN:exports.BN=BN,BN.BN=BN,BN.wordSize=26;try{Buffer=require("buffer").Buffer}catch(e){}function parseHex(str,start,end){for(var r=0,len=Math.min(str.length,end),i=start;i=49&&c<=54?c-49+10:c>=17&&c<=22?c-17+10:15&c}return r}function parseBase(str,start,end,mul){for(var r=0,len=Math.min(str.length,end),i=start;i=49?c-49+10:c>=17?c-17+10:c}return r}BN.isBN=function(num){return num instanceof BN||null!==num&&"object"==typeof num&&num.constructor.wordSize===BN.wordSize&&Array.isArray(num.words)},BN.max=function(left,right){return left.cmp(right)>0?left:right},BN.min=function(left,right){return left.cmp(right)<0?left:right},BN.prototype._init=function(number,base,endian){if("number"==typeof number)return this._initNumber(number,base,endian);if("object"==typeof number)return this._initArray(number,base,endian);"hex"===base&&(base=16),assert(base===(0|base)&&base>=2&&base<=36);var start=0;"-"===(number=number.toString().replace(/\s+/g,""))[0]&&start++,16===base?this._parseHex(number,start):this._parseBase(number,base,start),"-"===number[0]&&(this.negative=1),this.strip(),"le"===endian&&this._initArray(this.toArray(),base,endian)},BN.prototype._initNumber=function(number,base,endian){number<0&&(this.negative=1,number=-number),number<67108864?(this.words=[67108863&number],this.length=1):number<4503599627370496?(this.words=[67108863&number,number/67108864&67108863],this.length=2):(assert(number<9007199254740992),this.words=[67108863&number,number/67108864&67108863,1],this.length=3),"le"===endian&&this._initArray(this.toArray(),base,endian)},BN.prototype._initArray=function(number,base,endian){if(assert("number"==typeof number.length),number.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(number.length/3),this.words=new Array(this.length);for(var i=0;i=0;i-=3)w=number[i]|number[i-1]<<8|number[i-2]<<16,this.words[j]|=w<>>26-off&67108863,(off+=24)>=26&&(off-=26,j++);else if("le"===endian)for(i=0,j=0;i>>26-off&67108863,(off+=24)>=26&&(off-=26,j++);return this.strip()},BN.prototype._parseHex=function(number,start){this.length=Math.ceil((number.length-start)/6),this.words=new Array(this.length);for(var i=0;i=start;i-=6)w=parseHex(number,i,i+6),this.words[j]|=w<>>26-off&4194303,(off+=24)>=26&&(off-=26,j++);i+6!==start&&(w=parseHex(number,start,i+6),this.words[j]|=w<>>26-off&4194303),this.strip()},BN.prototype._parseBase=function(number,base,start){this.words=[0],this.length=1;for(var limbLen=0,limbPow=1;limbPow<=67108863;limbPow*=base)limbLen++;limbLen--,limbPow=limbPow/base|0;for(var total=number.length-start,mod=total%limbLen,end=Math.min(total,total-mod)+start,word=0,i=start;i1&&0===this.words[this.length-1];)this.length--;return this._normSign()},BN.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},BN.prototype.inspect=function(){return(this.red?""};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"],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],groupBases=[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 smallMulTo(self,num,out){out.negative=num.negative^self.negative;var len=self.length+num.length|0;out.length=len,len=len-1|0;var a=0|self.words[0],b=0|num.words[0],r=a*b,lo=67108863&r,carry=r/67108864|0;out.words[0]=lo;for(var k=1;k>>26,rword=67108863&carry,maxJ=Math.min(k,num.length-1),j=Math.max(0,k-self.length+1);j<=maxJ;j++){var i=k-j|0;ncarry+=(r=(a=0|self.words[i])*(b=0|num.words[j])+rword)/67108864|0,rword=67108863&r}out.words[k]=0|rword,carry=0|ncarry}return 0!==carry?out.words[k]=0|carry:out.length--,out.strip()}BN.prototype.toString=function(base,padding){var out;if(base=base||10,padding=0|padding||1,16===base||"hex"===base){out="";for(var off=0,carry=0,i=0;i>>24-off&16777215)||i!==this.length-1?zeros[6-word.length]+word+out:word+out,(off+=2)>=26&&(off-=26,i--)}for(0!==carry&&(out=carry.toString(16)+out);out.length%padding!=0;)out="0"+out;return 0!==this.negative&&(out="-"+out),out}if(base===(0|base)&&base>=2&&base<=36){var groupSize=groupSizes[base],groupBase=groupBases[base];out="";var c=this.clone();for(c.negative=0;!c.isZero();){var r=c.modn(groupBase).toString(base);out=(c=c.idivn(groupBase)).isZero()?r+out:zeros[groupSize-r.length]+r+out}for(this.isZero()&&(out="0"+out);out.length%padding!=0;)out="0"+out;return 0!==this.negative&&(out="-"+out),out}assert(!1,"Base should be between 2 and 36")},BN.prototype.toNumber=function(){var ret=this.words[0];return 2===this.length?ret+=67108864*this.words[1]:3===this.length&&1===this.words[2]?ret+=4503599627370496+67108864*this.words[1]:this.length>2&&assert(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-ret:ret},BN.prototype.toJSON=function(){return this.toString(16)},BN.prototype.toBuffer=function(endian,length){return assert(void 0!==Buffer),this.toArrayLike(Buffer,endian,length)},BN.prototype.toArray=function(endian,length){return this.toArrayLike(Array,endian,length)},BN.prototype.toArrayLike=function(ArrayType,endian,length){var byteLength=this.byteLength(),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 b,i,littleEndian="le"===endian,res=new ArrayType(reqLength),q=this.clone();if(littleEndian){for(i=0;!q.isZero();i++)b=q.andln(255),q.iushrn(8),res[i]=b;for(;i=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},BN.prototype._zeroBits=function(w){if(0===w)return 26;var t=w,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},BN.prototype.bitLength=function(){var w=this.words[this.length-1],hi=this._countBits(w);return 26*(this.length-1)+hi},BN.prototype.zeroBits=function(){if(this.isZero())return 0;for(var r=0,i=0;inum.length?this.clone().ior(num):num.clone().ior(this)},BN.prototype.uor=function(num){return this.length>num.length?this.clone().iuor(num):num.clone().iuor(this)},BN.prototype.iuand=function(num){var b;b=this.length>num.length?num:this;for(var i=0;inum.length?this.clone().iand(num):num.clone().iand(this)},BN.prototype.uand=function(num){return this.length>num.length?this.clone().iuand(num):num.clone().iuand(this)},BN.prototype.iuxor=function(num){var a,b;this.length>num.length?(a=this,b=num):(a=num,b=this);for(var i=0;inum.length?this.clone().ixor(num):num.clone().ixor(this)},BN.prototype.uxor=function(num){return this.length>num.length?this.clone().iuxor(num):num.clone().iuxor(this)},BN.prototype.inotn=function(width){assert("number"==typeof width&&width>=0);var bytesNeeded=0|Math.ceil(width/26),bitsLeft=width%26;this._expand(bytesNeeded),bitsLeft>0&&bytesNeeded--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-bitsLeft),this.strip()},BN.prototype.notn=function(width){return this.clone().inotn(width)},BN.prototype.setn=function(bit,val){assert("number"==typeof bit&&bit>=0);var off=bit/26|0,wbit=bit%26;return this._expand(off+1),this.words[off]=val?this.words[off]|1<num.length?(a=this,b=num):(a=num,b=this);for(var carry=0,i=0;i>>26;for(;0!==carry&&i>>26;if(this.length=a.length,0!==carry)this.words[this.length]=carry,this.length++;else if(a!==this)for(;inum.length?this.clone().iadd(num):num.clone().iadd(this)},BN.prototype.isub=function(num){if(0!==num.negative){num.negative=0;var r=this.iadd(num);return num.negative=1,r._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(num),this.negative=1,this._normSign();var a,b,cmp=this.cmp(num);if(0===cmp)return this.negative=0,this.length=1,this.words[0]=0,this;cmp>0?(a=this,b=num):(a=num,b=this);for(var carry=0,i=0;i>26,this.words[i]=67108863&r;for(;0!==carry&&i>26,this.words[i]=67108863&r;if(0===carry&&i>>13,a1=0|a[1],al1=8191&a1,ah1=a1>>>13,a2=0|a[2],al2=8191&a2,ah2=a2>>>13,a3=0|a[3],al3=8191&a3,ah3=a3>>>13,a4=0|a[4],al4=8191&a4,ah4=a4>>>13,a5=0|a[5],al5=8191&a5,ah5=a5>>>13,a6=0|a[6],al6=8191&a6,ah6=a6>>>13,a7=0|a[7],al7=8191&a7,ah7=a7>>>13,a8=0|a[8],al8=8191&a8,ah8=a8>>>13,a9=0|a[9],al9=8191&a9,ah9=a9>>>13,b0=0|b[0],bl0=8191&b0,bh0=b0>>>13,b1=0|b[1],bl1=8191&b1,bh1=b1>>>13,b2=0|b[2],bl2=8191&b2,bh2=b2>>>13,b3=0|b[3],bl3=8191&b3,bh3=b3>>>13,b4=0|b[4],bl4=8191&b4,bh4=b4>>>13,b5=0|b[5],bl5=8191&b5,bh5=b5>>>13,b6=0|b[6],bl6=8191&b6,bh6=b6>>>13,b7=0|b[7],bl7=8191&b7,bh7=b7>>>13,b8=0|b[8],bl8=8191&b8,bh8=b8>>>13,b9=0|b[9],bl9=8191&b9,bh9=b9>>>13;out.negative=self.negative^num.negative,out.length=19;var w0=(c+(lo=Math.imul(al0,bl0))|0)+((8191&(mid=(mid=Math.imul(al0,bh0))+Math.imul(ah0,bl0)|0))<<13)|0;c=((hi=Math.imul(ah0,bh0))+(mid>>>13)|0)+(w0>>>26)|0,w0&=67108863,lo=Math.imul(al1,bl0),mid=(mid=Math.imul(al1,bh0))+Math.imul(ah1,bl0)|0,hi=Math.imul(ah1,bh0);var w1=(c+(lo=lo+Math.imul(al0,bl1)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh1)|0)+Math.imul(ah0,bl1)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh1)|0)+(mid>>>13)|0)+(w1>>>26)|0,w1&=67108863,lo=Math.imul(al2,bl0),mid=(mid=Math.imul(al2,bh0))+Math.imul(ah2,bl0)|0,hi=Math.imul(ah2,bh0),lo=lo+Math.imul(al1,bl1)|0,mid=(mid=mid+Math.imul(al1,bh1)|0)+Math.imul(ah1,bl1)|0,hi=hi+Math.imul(ah1,bh1)|0;var w2=(c+(lo=lo+Math.imul(al0,bl2)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh2)|0)+Math.imul(ah0,bl2)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh2)|0)+(mid>>>13)|0)+(w2>>>26)|0,w2&=67108863,lo=Math.imul(al3,bl0),mid=(mid=Math.imul(al3,bh0))+Math.imul(ah3,bl0)|0,hi=Math.imul(ah3,bh0),lo=lo+Math.imul(al2,bl1)|0,mid=(mid=mid+Math.imul(al2,bh1)|0)+Math.imul(ah2,bl1)|0,hi=hi+Math.imul(ah2,bh1)|0,lo=lo+Math.imul(al1,bl2)|0,mid=(mid=mid+Math.imul(al1,bh2)|0)+Math.imul(ah1,bl2)|0,hi=hi+Math.imul(ah1,bh2)|0;var w3=(c+(lo=lo+Math.imul(al0,bl3)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh3)|0)+Math.imul(ah0,bl3)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh3)|0)+(mid>>>13)|0)+(w3>>>26)|0,w3&=67108863,lo=Math.imul(al4,bl0),mid=(mid=Math.imul(al4,bh0))+Math.imul(ah4,bl0)|0,hi=Math.imul(ah4,bh0),lo=lo+Math.imul(al3,bl1)|0,mid=(mid=mid+Math.imul(al3,bh1)|0)+Math.imul(ah3,bl1)|0,hi=hi+Math.imul(ah3,bh1)|0,lo=lo+Math.imul(al2,bl2)|0,mid=(mid=mid+Math.imul(al2,bh2)|0)+Math.imul(ah2,bl2)|0,hi=hi+Math.imul(ah2,bh2)|0,lo=lo+Math.imul(al1,bl3)|0,mid=(mid=mid+Math.imul(al1,bh3)|0)+Math.imul(ah1,bl3)|0,hi=hi+Math.imul(ah1,bh3)|0;var w4=(c+(lo=lo+Math.imul(al0,bl4)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh4)|0)+Math.imul(ah0,bl4)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh4)|0)+(mid>>>13)|0)+(w4>>>26)|0,w4&=67108863,lo=Math.imul(al5,bl0),mid=(mid=Math.imul(al5,bh0))+Math.imul(ah5,bl0)|0,hi=Math.imul(ah5,bh0),lo=lo+Math.imul(al4,bl1)|0,mid=(mid=mid+Math.imul(al4,bh1)|0)+Math.imul(ah4,bl1)|0,hi=hi+Math.imul(ah4,bh1)|0,lo=lo+Math.imul(al3,bl2)|0,mid=(mid=mid+Math.imul(al3,bh2)|0)+Math.imul(ah3,bl2)|0,hi=hi+Math.imul(ah3,bh2)|0,lo=lo+Math.imul(al2,bl3)|0,mid=(mid=mid+Math.imul(al2,bh3)|0)+Math.imul(ah2,bl3)|0,hi=hi+Math.imul(ah2,bh3)|0,lo=lo+Math.imul(al1,bl4)|0,mid=(mid=mid+Math.imul(al1,bh4)|0)+Math.imul(ah1,bl4)|0,hi=hi+Math.imul(ah1,bh4)|0;var w5=(c+(lo=lo+Math.imul(al0,bl5)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh5)|0)+Math.imul(ah0,bl5)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh5)|0)+(mid>>>13)|0)+(w5>>>26)|0,w5&=67108863,lo=Math.imul(al6,bl0),mid=(mid=Math.imul(al6,bh0))+Math.imul(ah6,bl0)|0,hi=Math.imul(ah6,bh0),lo=lo+Math.imul(al5,bl1)|0,mid=(mid=mid+Math.imul(al5,bh1)|0)+Math.imul(ah5,bl1)|0,hi=hi+Math.imul(ah5,bh1)|0,lo=lo+Math.imul(al4,bl2)|0,mid=(mid=mid+Math.imul(al4,bh2)|0)+Math.imul(ah4,bl2)|0,hi=hi+Math.imul(ah4,bh2)|0,lo=lo+Math.imul(al3,bl3)|0,mid=(mid=mid+Math.imul(al3,bh3)|0)+Math.imul(ah3,bl3)|0,hi=hi+Math.imul(ah3,bh3)|0,lo=lo+Math.imul(al2,bl4)|0,mid=(mid=mid+Math.imul(al2,bh4)|0)+Math.imul(ah2,bl4)|0,hi=hi+Math.imul(ah2,bh4)|0,lo=lo+Math.imul(al1,bl5)|0,mid=(mid=mid+Math.imul(al1,bh5)|0)+Math.imul(ah1,bl5)|0,hi=hi+Math.imul(ah1,bh5)|0;var w6=(c+(lo=lo+Math.imul(al0,bl6)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh6)|0)+Math.imul(ah0,bl6)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh6)|0)+(mid>>>13)|0)+(w6>>>26)|0,w6&=67108863,lo=Math.imul(al7,bl0),mid=(mid=Math.imul(al7,bh0))+Math.imul(ah7,bl0)|0,hi=Math.imul(ah7,bh0),lo=lo+Math.imul(al6,bl1)|0,mid=(mid=mid+Math.imul(al6,bh1)|0)+Math.imul(ah6,bl1)|0,hi=hi+Math.imul(ah6,bh1)|0,lo=lo+Math.imul(al5,bl2)|0,mid=(mid=mid+Math.imul(al5,bh2)|0)+Math.imul(ah5,bl2)|0,hi=hi+Math.imul(ah5,bh2)|0,lo=lo+Math.imul(al4,bl3)|0,mid=(mid=mid+Math.imul(al4,bh3)|0)+Math.imul(ah4,bl3)|0,hi=hi+Math.imul(ah4,bh3)|0,lo=lo+Math.imul(al3,bl4)|0,mid=(mid=mid+Math.imul(al3,bh4)|0)+Math.imul(ah3,bl4)|0,hi=hi+Math.imul(ah3,bh4)|0,lo=lo+Math.imul(al2,bl5)|0,mid=(mid=mid+Math.imul(al2,bh5)|0)+Math.imul(ah2,bl5)|0,hi=hi+Math.imul(ah2,bh5)|0,lo=lo+Math.imul(al1,bl6)|0,mid=(mid=mid+Math.imul(al1,bh6)|0)+Math.imul(ah1,bl6)|0,hi=hi+Math.imul(ah1,bh6)|0;var w7=(c+(lo=lo+Math.imul(al0,bl7)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh7)|0)+Math.imul(ah0,bl7)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh7)|0)+(mid>>>13)|0)+(w7>>>26)|0,w7&=67108863,lo=Math.imul(al8,bl0),mid=(mid=Math.imul(al8,bh0))+Math.imul(ah8,bl0)|0,hi=Math.imul(ah8,bh0),lo=lo+Math.imul(al7,bl1)|0,mid=(mid=mid+Math.imul(al7,bh1)|0)+Math.imul(ah7,bl1)|0,hi=hi+Math.imul(ah7,bh1)|0,lo=lo+Math.imul(al6,bl2)|0,mid=(mid=mid+Math.imul(al6,bh2)|0)+Math.imul(ah6,bl2)|0,hi=hi+Math.imul(ah6,bh2)|0,lo=lo+Math.imul(al5,bl3)|0,mid=(mid=mid+Math.imul(al5,bh3)|0)+Math.imul(ah5,bl3)|0,hi=hi+Math.imul(ah5,bh3)|0,lo=lo+Math.imul(al4,bl4)|0,mid=(mid=mid+Math.imul(al4,bh4)|0)+Math.imul(ah4,bl4)|0,hi=hi+Math.imul(ah4,bh4)|0,lo=lo+Math.imul(al3,bl5)|0,mid=(mid=mid+Math.imul(al3,bh5)|0)+Math.imul(ah3,bl5)|0,hi=hi+Math.imul(ah3,bh5)|0,lo=lo+Math.imul(al2,bl6)|0,mid=(mid=mid+Math.imul(al2,bh6)|0)+Math.imul(ah2,bl6)|0,hi=hi+Math.imul(ah2,bh6)|0,lo=lo+Math.imul(al1,bl7)|0,mid=(mid=mid+Math.imul(al1,bh7)|0)+Math.imul(ah1,bl7)|0,hi=hi+Math.imul(ah1,bh7)|0;var w8=(c+(lo=lo+Math.imul(al0,bl8)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh8)|0)+Math.imul(ah0,bl8)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh8)|0)+(mid>>>13)|0)+(w8>>>26)|0,w8&=67108863,lo=Math.imul(al9,bl0),mid=(mid=Math.imul(al9,bh0))+Math.imul(ah9,bl0)|0,hi=Math.imul(ah9,bh0),lo=lo+Math.imul(al8,bl1)|0,mid=(mid=mid+Math.imul(al8,bh1)|0)+Math.imul(ah8,bl1)|0,hi=hi+Math.imul(ah8,bh1)|0,lo=lo+Math.imul(al7,bl2)|0,mid=(mid=mid+Math.imul(al7,bh2)|0)+Math.imul(ah7,bl2)|0,hi=hi+Math.imul(ah7,bh2)|0,lo=lo+Math.imul(al6,bl3)|0,mid=(mid=mid+Math.imul(al6,bh3)|0)+Math.imul(ah6,bl3)|0,hi=hi+Math.imul(ah6,bh3)|0,lo=lo+Math.imul(al5,bl4)|0,mid=(mid=mid+Math.imul(al5,bh4)|0)+Math.imul(ah5,bl4)|0,hi=hi+Math.imul(ah5,bh4)|0,lo=lo+Math.imul(al4,bl5)|0,mid=(mid=mid+Math.imul(al4,bh5)|0)+Math.imul(ah4,bl5)|0,hi=hi+Math.imul(ah4,bh5)|0,lo=lo+Math.imul(al3,bl6)|0,mid=(mid=mid+Math.imul(al3,bh6)|0)+Math.imul(ah3,bl6)|0,hi=hi+Math.imul(ah3,bh6)|0,lo=lo+Math.imul(al2,bl7)|0,mid=(mid=mid+Math.imul(al2,bh7)|0)+Math.imul(ah2,bl7)|0,hi=hi+Math.imul(ah2,bh7)|0,lo=lo+Math.imul(al1,bl8)|0,mid=(mid=mid+Math.imul(al1,bh8)|0)+Math.imul(ah1,bl8)|0,hi=hi+Math.imul(ah1,bh8)|0;var w9=(c+(lo=lo+Math.imul(al0,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh9)|0)+Math.imul(ah0,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh9)|0)+(mid>>>13)|0)+(w9>>>26)|0,w9&=67108863,lo=Math.imul(al9,bl1),mid=(mid=Math.imul(al9,bh1))+Math.imul(ah9,bl1)|0,hi=Math.imul(ah9,bh1),lo=lo+Math.imul(al8,bl2)|0,mid=(mid=mid+Math.imul(al8,bh2)|0)+Math.imul(ah8,bl2)|0,hi=hi+Math.imul(ah8,bh2)|0,lo=lo+Math.imul(al7,bl3)|0,mid=(mid=mid+Math.imul(al7,bh3)|0)+Math.imul(ah7,bl3)|0,hi=hi+Math.imul(ah7,bh3)|0,lo=lo+Math.imul(al6,bl4)|0,mid=(mid=mid+Math.imul(al6,bh4)|0)+Math.imul(ah6,bl4)|0,hi=hi+Math.imul(ah6,bh4)|0,lo=lo+Math.imul(al5,bl5)|0,mid=(mid=mid+Math.imul(al5,bh5)|0)+Math.imul(ah5,bl5)|0,hi=hi+Math.imul(ah5,bh5)|0,lo=lo+Math.imul(al4,bl6)|0,mid=(mid=mid+Math.imul(al4,bh6)|0)+Math.imul(ah4,bl6)|0,hi=hi+Math.imul(ah4,bh6)|0,lo=lo+Math.imul(al3,bl7)|0,mid=(mid=mid+Math.imul(al3,bh7)|0)+Math.imul(ah3,bl7)|0,hi=hi+Math.imul(ah3,bh7)|0,lo=lo+Math.imul(al2,bl8)|0,mid=(mid=mid+Math.imul(al2,bh8)|0)+Math.imul(ah2,bl8)|0,hi=hi+Math.imul(ah2,bh8)|0;var w10=(c+(lo=lo+Math.imul(al1,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al1,bh9)|0)+Math.imul(ah1,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah1,bh9)|0)+(mid>>>13)|0)+(w10>>>26)|0,w10&=67108863,lo=Math.imul(al9,bl2),mid=(mid=Math.imul(al9,bh2))+Math.imul(ah9,bl2)|0,hi=Math.imul(ah9,bh2),lo=lo+Math.imul(al8,bl3)|0,mid=(mid=mid+Math.imul(al8,bh3)|0)+Math.imul(ah8,bl3)|0,hi=hi+Math.imul(ah8,bh3)|0,lo=lo+Math.imul(al7,bl4)|0,mid=(mid=mid+Math.imul(al7,bh4)|0)+Math.imul(ah7,bl4)|0,hi=hi+Math.imul(ah7,bh4)|0,lo=lo+Math.imul(al6,bl5)|0,mid=(mid=mid+Math.imul(al6,bh5)|0)+Math.imul(ah6,bl5)|0,hi=hi+Math.imul(ah6,bh5)|0,lo=lo+Math.imul(al5,bl6)|0,mid=(mid=mid+Math.imul(al5,bh6)|0)+Math.imul(ah5,bl6)|0,hi=hi+Math.imul(ah5,bh6)|0,lo=lo+Math.imul(al4,bl7)|0,mid=(mid=mid+Math.imul(al4,bh7)|0)+Math.imul(ah4,bl7)|0,hi=hi+Math.imul(ah4,bh7)|0,lo=lo+Math.imul(al3,bl8)|0,mid=(mid=mid+Math.imul(al3,bh8)|0)+Math.imul(ah3,bl8)|0,hi=hi+Math.imul(ah3,bh8)|0;var w11=(c+(lo=lo+Math.imul(al2,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al2,bh9)|0)+Math.imul(ah2,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah2,bh9)|0)+(mid>>>13)|0)+(w11>>>26)|0,w11&=67108863,lo=Math.imul(al9,bl3),mid=(mid=Math.imul(al9,bh3))+Math.imul(ah9,bl3)|0,hi=Math.imul(ah9,bh3),lo=lo+Math.imul(al8,bl4)|0,mid=(mid=mid+Math.imul(al8,bh4)|0)+Math.imul(ah8,bl4)|0,hi=hi+Math.imul(ah8,bh4)|0,lo=lo+Math.imul(al7,bl5)|0,mid=(mid=mid+Math.imul(al7,bh5)|0)+Math.imul(ah7,bl5)|0,hi=hi+Math.imul(ah7,bh5)|0,lo=lo+Math.imul(al6,bl6)|0,mid=(mid=mid+Math.imul(al6,bh6)|0)+Math.imul(ah6,bl6)|0,hi=hi+Math.imul(ah6,bh6)|0,lo=lo+Math.imul(al5,bl7)|0,mid=(mid=mid+Math.imul(al5,bh7)|0)+Math.imul(ah5,bl7)|0,hi=hi+Math.imul(ah5,bh7)|0,lo=lo+Math.imul(al4,bl8)|0,mid=(mid=mid+Math.imul(al4,bh8)|0)+Math.imul(ah4,bl8)|0,hi=hi+Math.imul(ah4,bh8)|0;var w12=(c+(lo=lo+Math.imul(al3,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al3,bh9)|0)+Math.imul(ah3,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah3,bh9)|0)+(mid>>>13)|0)+(w12>>>26)|0,w12&=67108863,lo=Math.imul(al9,bl4),mid=(mid=Math.imul(al9,bh4))+Math.imul(ah9,bl4)|0,hi=Math.imul(ah9,bh4),lo=lo+Math.imul(al8,bl5)|0,mid=(mid=mid+Math.imul(al8,bh5)|0)+Math.imul(ah8,bl5)|0,hi=hi+Math.imul(ah8,bh5)|0,lo=lo+Math.imul(al7,bl6)|0,mid=(mid=mid+Math.imul(al7,bh6)|0)+Math.imul(ah7,bl6)|0,hi=hi+Math.imul(ah7,bh6)|0,lo=lo+Math.imul(al6,bl7)|0,mid=(mid=mid+Math.imul(al6,bh7)|0)+Math.imul(ah6,bl7)|0,hi=hi+Math.imul(ah6,bh7)|0,lo=lo+Math.imul(al5,bl8)|0,mid=(mid=mid+Math.imul(al5,bh8)|0)+Math.imul(ah5,bl8)|0,hi=hi+Math.imul(ah5,bh8)|0;var w13=(c+(lo=lo+Math.imul(al4,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al4,bh9)|0)+Math.imul(ah4,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah4,bh9)|0)+(mid>>>13)|0)+(w13>>>26)|0,w13&=67108863,lo=Math.imul(al9,bl5),mid=(mid=Math.imul(al9,bh5))+Math.imul(ah9,bl5)|0,hi=Math.imul(ah9,bh5),lo=lo+Math.imul(al8,bl6)|0,mid=(mid=mid+Math.imul(al8,bh6)|0)+Math.imul(ah8,bl6)|0,hi=hi+Math.imul(ah8,bh6)|0,lo=lo+Math.imul(al7,bl7)|0,mid=(mid=mid+Math.imul(al7,bh7)|0)+Math.imul(ah7,bl7)|0,hi=hi+Math.imul(ah7,bh7)|0,lo=lo+Math.imul(al6,bl8)|0,mid=(mid=mid+Math.imul(al6,bh8)|0)+Math.imul(ah6,bl8)|0,hi=hi+Math.imul(ah6,bh8)|0;var w14=(c+(lo=lo+Math.imul(al5,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al5,bh9)|0)+Math.imul(ah5,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah5,bh9)|0)+(mid>>>13)|0)+(w14>>>26)|0,w14&=67108863,lo=Math.imul(al9,bl6),mid=(mid=Math.imul(al9,bh6))+Math.imul(ah9,bl6)|0,hi=Math.imul(ah9,bh6),lo=lo+Math.imul(al8,bl7)|0,mid=(mid=mid+Math.imul(al8,bh7)|0)+Math.imul(ah8,bl7)|0,hi=hi+Math.imul(ah8,bh7)|0,lo=lo+Math.imul(al7,bl8)|0,mid=(mid=mid+Math.imul(al7,bh8)|0)+Math.imul(ah7,bl8)|0,hi=hi+Math.imul(ah7,bh8)|0;var w15=(c+(lo=lo+Math.imul(al6,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al6,bh9)|0)+Math.imul(ah6,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah6,bh9)|0)+(mid>>>13)|0)+(w15>>>26)|0,w15&=67108863,lo=Math.imul(al9,bl7),mid=(mid=Math.imul(al9,bh7))+Math.imul(ah9,bl7)|0,hi=Math.imul(ah9,bh7),lo=lo+Math.imul(al8,bl8)|0,mid=(mid=mid+Math.imul(al8,bh8)|0)+Math.imul(ah8,bl8)|0,hi=hi+Math.imul(ah8,bh8)|0;var w16=(c+(lo=lo+Math.imul(al7,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al7,bh9)|0)+Math.imul(ah7,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah7,bh9)|0)+(mid>>>13)|0)+(w16>>>26)|0,w16&=67108863,lo=Math.imul(al9,bl8),mid=(mid=Math.imul(al9,bh8))+Math.imul(ah9,bl8)|0,hi=Math.imul(ah9,bh8);var w17=(c+(lo=lo+Math.imul(al8,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al8,bh9)|0)+Math.imul(ah8,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah8,bh9)|0)+(mid>>>13)|0)+(w17>>>26)|0,w17&=67108863;var w18=(c+(lo=Math.imul(al9,bl9))|0)+((8191&(mid=(mid=Math.imul(al9,bh9))+Math.imul(ah9,bl9)|0))<<13)|0;return c=((hi=Math.imul(ah9,bh9))+(mid>>>13)|0)+(w18>>>26)|0,w18&=67108863,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,0!==c&&(o[19]=c,out.length++),out};function jumboMulTo(self,num,out){return(new FFTM).mulp(self,num,out)}function FFTM(x,y){this.x=x,this.y=y}Math.imul||(comb10MulTo=smallMulTo),BN.prototype.mulTo=function(num,out){var len=this.length+num.length;return 10===this.length&&10===num.length?comb10MulTo(this,num,out):len<63?smallMulTo(this,num,out):len<1024?function(self,num,out){out.negative=num.negative^self.negative,out.length=self.length+num.length;for(var carry=0,hncarry=0,k=0;k>>26)|0)>>>26,ncarry&=67108863}out.words[k]=rword,carry=ncarry,ncarry=hncarry}return 0!==carry?out.words[k]=carry:out.length--,out.strip()}(this,num,out):jumboMulTo(this,num,out)},FFTM.prototype.makeRBT=function(N){for(var t=new Array(N),l=BN.prototype._countBits(N)-1,i=0;i>=1;return rb},FFTM.prototype.permute=function(rbt,rws,iws,rtws,itws,N){for(var i=0;i>>=1)i++;return 1<>>=13,rws[2*i+1]=8191&carry,carry>>>=13;for(i=2*len;i>=26,carry+=w/67108864|0,carry+=lo>>>26,this.words[i]=67108863&lo}return 0!==carry&&(this.words[i]=carry,this.length++),this},BN.prototype.muln=function(num){return this.clone().imuln(num)},BN.prototype.sqr=function(){return this.mul(this)},BN.prototype.isqr=function(){return this.imul(this.clone())},BN.prototype.pow=function(num){var w=function(num){for(var w=new Array(num.bitLength()),bit=0;bit>>wbit}return w}(num);if(0===w.length)return new BN(1);for(var res=this,i=0;i=0);var i,r=bits%26,s=(bits-r)/26,carryMask=67108863>>>26-r<<26-r;if(0!==r){var carry=0;for(i=0;i>>26-r}carry&&(this.words[i]=carry,this.length++)}if(0!==s){for(i=this.length-1;i>=0;i--)this.words[i+s]=this.words[i];for(i=0;i=0),h=hint?(hint-hint%26)/26:0;var r=bits%26,s=Math.min((bits-r)/26,this.length),mask=67108863^67108863>>>r<s)for(this.length-=s,i=0;i=0&&(0!==carry||i>=h);i--){var word=0|this.words[i];this.words[i]=carry<<26-r|word>>>r,carry=word&mask}return maskedWords&&0!==carry&&(maskedWords.words[maskedWords.length++]=carry),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},BN.prototype.ishrn=function(bits,hint,extended){return assert(0===this.negative),this.iushrn(bits,hint,extended)},BN.prototype.shln=function(bits){return this.clone().ishln(bits)},BN.prototype.ushln=function(bits){return this.clone().iushln(bits)},BN.prototype.shrn=function(bits){return this.clone().ishrn(bits)},BN.prototype.ushrn=function(bits){return this.clone().iushrn(bits)},BN.prototype.testn=function(bit){assert("number"==typeof bit&&bit>=0);var r=bit%26,s=(bit-r)/26,q=1<=0);var r=bits%26,s=(bits-r)/26;if(assert(0===this.negative,"imaskn works only with positive numbers"),this.length<=s)return this;if(0!==r&&s++,this.length=Math.min(s,this.length),0!==r){var mask=67108863^67108863>>>r<=67108864;i++)this.words[i]-=67108864,i===this.length-1?this.words[i+1]=1:this.words[i+1]++;return this.length=Math.max(this.length,i+1),this},BN.prototype.isubn=function(num){if(assert("number"==typeof num),assert(num<67108864),num<0)return this.iaddn(-num);if(0!==this.negative)return this.negative=0,this.iaddn(num),this.negative=1,this;if(this.words[0]-=num,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var i=0;i>26)-(right/67108864|0),this.words[i+shift]=67108863&w}for(;i>26,this.words[i+shift]=67108863&w;if(0===carry)return this.strip();for(assert(-1===carry),carry=0,i=0;i>26,this.words[i]=67108863&w;return this.negative=1,this.strip()},BN.prototype._wordDiv=function(num,mode){var shift=(this.length,num.length),a=this.clone(),b=num,bhi=0|b.words[b.length-1];0!==(shift=26-this._countBits(bhi))&&(b=b.ushln(shift),a.iushln(shift),bhi=0|b.words[b.length-1]);var q,m=a.length-b.length;if("mod"!==mode){(q=new BN(null)).length=m+1,q.words=new Array(q.length);for(var i=0;i=0;j--){var qj=67108864*(0|a.words[b.length+j])+(0|a.words[b.length+j-1]);for(qj=Math.min(qj/bhi|0,67108863),a._ishlnsubmul(b,qj,j);0!==a.negative;)qj--,a.negative=0,a._ishlnsubmul(b,1,j),a.isZero()||(a.negative^=1);q&&(q.words[j]=qj)}return q&&q.strip(),a.strip(),"div"!==mode&&0!==shift&&a.iushrn(shift),{div:q||null,mod:a}},BN.prototype.divmod=function(num,mode,positive){return assert(!num.isZero()),this.isZero()?{div:new BN(0),mod:new BN(0)}:0!==this.negative&&0===num.negative?(res=this.neg().divmod(num,mode),"mod"!==mode&&(div=res.div.neg()),"div"!==mode&&(mod=res.mod.neg(),positive&&0!==mod.negative&&mod.iadd(num)),{div:div,mod:mod}):0===this.negative&&0!==num.negative?(res=this.divmod(num.neg(),mode),"mod"!==mode&&(div=res.div.neg()),{div:div,mod:res.mod}):0!=(this.negative&num.negative)?(res=this.neg().divmod(num.neg(),mode),"div"!==mode&&(mod=res.mod.neg(),positive&&0!==mod.negative&&mod.isub(num)),{div:res.div,mod:mod}):num.length>this.length||this.cmp(num)<0?{div:new BN(0),mod:this}:1===num.length?"div"===mode?{div:this.divn(num.words[0]),mod:null}:"mod"===mode?{div:null,mod:new BN(this.modn(num.words[0]))}:{div:this.divn(num.words[0]),mod:new BN(this.modn(num.words[0]))}:this._wordDiv(num,mode);var div,mod,res},BN.prototype.div=function(num){return this.divmod(num,"div",!1).div},BN.prototype.mod=function(num){return this.divmod(num,"mod",!1).mod},BN.prototype.umod=function(num){return this.divmod(num,"mod",!0).mod},BN.prototype.divRound=function(num){var dm=this.divmod(num);if(dm.mod.isZero())return dm.div;var mod=0!==dm.div.negative?dm.mod.isub(num):dm.mod,half=num.ushrn(1),r2=num.andln(1),cmp=mod.cmp(half);return cmp<0||1===r2&&0===cmp?dm.div:0!==dm.div.negative?dm.div.isubn(1):dm.div.iaddn(1)},BN.prototype.modn=function(num){assert(num<=67108863);for(var p=(1<<26)%num,acc=0,i=this.length-1;i>=0;i--)acc=(p*acc+(0|this.words[i]))%num;return acc},BN.prototype.idivn=function(num){assert(num<=67108863);for(var carry=0,i=this.length-1;i>=0;i--){var w=(0|this.words[i])+67108864*carry;this.words[i]=w/num|0,carry=w%num}return this.strip()},BN.prototype.divn=function(num){return this.clone().idivn(num)},BN.prototype.egcd=function(p){assert(0===p.negative),assert(!p.isZero());var x=this,y=p.clone();x=0!==x.negative?x.umod(p):x.clone();for(var A=new BN(1),B=new BN(0),C=new BN(0),D=new BN(1),g=0;x.isEven()&&y.isEven();)x.iushrn(1),y.iushrn(1),++g;for(var yp=y.clone(),xp=x.clone();!x.isZero();){for(var i=0,im=1;0==(x.words[0]&im)&&i<26;++i,im<<=1);if(i>0)for(x.iushrn(i);i-- >0;)(A.isOdd()||B.isOdd())&&(A.iadd(yp),B.isub(xp)),A.iushrn(1),B.iushrn(1);for(var j=0,jm=1;0==(y.words[0]&jm)&&j<26;++j,jm<<=1);if(j>0)for(y.iushrn(j);j-- >0;)(C.isOdd()||D.isOdd())&&(C.iadd(yp),D.isub(xp)),C.iushrn(1),D.iushrn(1);x.cmp(y)>=0?(x.isub(y),A.isub(C),B.isub(D)):(y.isub(x),C.isub(A),D.isub(B))}return{a:C,b:D,gcd:y.iushln(g)}},BN.prototype._invmp=function(p){assert(0===p.negative),assert(!p.isZero());var a=this,b=p.clone();a=0!==a.negative?a.umod(p):a.clone();for(var res,x1=new BN(1),x2=new BN(0),delta=b.clone();a.cmpn(1)>0&&b.cmpn(1)>0;){for(var i=0,im=1;0==(a.words[0]&im)&&i<26;++i,im<<=1);if(i>0)for(a.iushrn(i);i-- >0;)x1.isOdd()&&x1.iadd(delta),x1.iushrn(1);for(var j=0,jm=1;0==(b.words[0]&jm)&&j<26;++j,jm<<=1);if(j>0)for(b.iushrn(j);j-- >0;)x2.isOdd()&&x2.iadd(delta),x2.iushrn(1);a.cmp(b)>=0?(a.isub(b),x1.isub(x2)):(b.isub(a),x2.isub(x1))}return(res=0===a.cmpn(1)?x1:x2).cmpn(0)<0&&res.iadd(p),res},BN.prototype.gcd=function(num){if(this.isZero())return num.abs();if(num.isZero())return this.abs();var a=this.clone(),b=num.clone();a.negative=0,b.negative=0;for(var shift=0;a.isEven()&&b.isEven();shift++)a.iushrn(1),b.iushrn(1);for(;;){for(;a.isEven();)a.iushrn(1);for(;b.isEven();)b.iushrn(1);var r=a.cmp(b);if(r<0){var t=a;a=b,b=t}else if(0===r||0===b.cmpn(1))break;a.isub(b)}return b.iushln(shift)},BN.prototype.invm=function(num){return this.egcd(num).a.umod(num)},BN.prototype.isEven=function(){return 0==(1&this.words[0])},BN.prototype.isOdd=function(){return 1==(1&this.words[0])},BN.prototype.andln=function(num){return this.words[0]&num},BN.prototype.bincn=function(bit){assert("number"==typeof bit);var r=bit%26,s=(bit-r)/26,q=1<>>26,w&=67108863,this.words[i]=w}return 0!==carry&&(this.words[i]=carry,this.length++),this},BN.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},BN.prototype.cmpn=function(num){var res,negative=num<0;if(0!==this.negative&&!negative)return-1;if(0===this.negative&&negative)return 1;if(this.strip(),this.length>1)res=1;else{negative&&(num=-num),assert(num<=67108863,"Number is too big");var w=0|this.words[0];res=w===num?0:wnum.length)return 1;if(this.length=0;i--){var a=0|this.words[i],b=0|num.words[i];if(a!==b){ab&&(res=1);break}}return res},BN.prototype.gtn=function(num){return 1===this.cmpn(num)},BN.prototype.gt=function(num){return 1===this.cmp(num)},BN.prototype.gten=function(num){return this.cmpn(num)>=0},BN.prototype.gte=function(num){return this.cmp(num)>=0},BN.prototype.ltn=function(num){return-1===this.cmpn(num)},BN.prototype.lt=function(num){return-1===this.cmp(num)},BN.prototype.lten=function(num){return this.cmpn(num)<=0},BN.prototype.lte=function(num){return this.cmp(num)<=0},BN.prototype.eqn=function(num){return 0===this.cmpn(num)},BN.prototype.eq=function(num){return 0===this.cmp(num)},BN.red=function(num){return new Red(num)},BN.prototype.toRed=function(ctx){return assert(!this.red,"Already a number in reduction context"),assert(0===this.negative,"red works only with positives"),ctx.convertTo(this)._forceRed(ctx)},BN.prototype.fromRed=function(){return assert(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},BN.prototype._forceRed=function(ctx){return this.red=ctx,this},BN.prototype.forceRed=function(ctx){return assert(!this.red,"Already a number in reduction context"),this._forceRed(ctx)},BN.prototype.redAdd=function(num){return assert(this.red,"redAdd works only with red numbers"),this.red.add(this,num)},BN.prototype.redIAdd=function(num){return assert(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,num)},BN.prototype.redSub=function(num){return assert(this.red,"redSub works only with red numbers"),this.red.sub(this,num)},BN.prototype.redISub=function(num){return assert(this.red,"redISub works only with red numbers"),this.red.isub(this,num)},BN.prototype.redShl=function(num){return assert(this.red,"redShl works only with red numbers"),this.red.shl(this,num)},BN.prototype.redMul=function(num){return assert(this.red,"redMul works only with red numbers"),this.red._verify2(this,num),this.red.mul(this,num)},BN.prototype.redIMul=function(num){return assert(this.red,"redMul works only with red numbers"),this.red._verify2(this,num),this.red.imul(this,num)},BN.prototype.redSqr=function(){return assert(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},BN.prototype.redISqr=function(){return assert(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},BN.prototype.redSqrt=function(){return assert(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},BN.prototype.redInvm=function(){return assert(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},BN.prototype.redNeg=function(){return assert(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},BN.prototype.redPow=function(num){return assert(this.red&&!num.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,num)};var primes={k256:null,p224:null,p192:null,p25519:null};function MPrime(name,p){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),this.tmp=this._tmp()}function K256(){MPrime.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function P224(){MPrime.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function P192(){MPrime.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function P25519(){MPrime.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function Red(m){if("string"==typeof m){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}function Mont(m){Red.call(this,m),this.shift=this.m.bitLength(),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)}MPrime.prototype._tmp=function(){var tmp=new BN(null);return tmp.words=new Array(Math.ceil(this.n/13)),tmp},MPrime.prototype.ireduce=function(num){var rlen,r=num;do{this.split(r,this.tmp),rlen=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(rlen>this.n);var cmp=rlen0?r.isub(this.p):r.strip(),r},MPrime.prototype.split=function(input,out){input.iushrn(this.n,0,out)},MPrime.prototype.imulK=function(num){return num.imul(this.k)},inherits(K256,MPrime),K256.prototype.split=function(input,output){for(var outLen=Math.min(input.length,9),i=0;i>>22,prev=next}prev>>>=22,input.words[i-10]=prev,0===prev&&input.length>10?input.length-=10:input.length-=9},K256.prototype.imulK=function(num){num.words[num.length]=0,num.words[num.length+1]=0,num.length+=2;for(var lo=0,i=0;i>>=26,num.words[i]=lo,carry=hi}return 0!==carry&&(num.words[num.length++]=carry),num},BN._prime=function(name){if(primes[name])return primes[name];var prime;if("k256"===name)prime=new K256;else if("p224"===name)prime=new P224;else if("p192"===name)prime=new P192;else{if("p25519"!==name)throw new Error("Unknown prime "+name);prime=new P25519}return primes[name]=prime,prime},Red.prototype._verify1=function(a){assert(0===a.negative,"red works only with positives"),assert(a.red,"red works only with red numbers")},Red.prototype._verify2=function(a,b){assert(0==(a.negative|b.negative),"red works only with positives"),assert(a.red&&a.red===b.red,"red works only with red numbers")},Red.prototype.imod=function(a){return this.prime?this.prime.ireduce(a)._forceRed(this):a.umod(this.m)._forceRed(this)},Red.prototype.neg=function(a){return a.isZero()?a.clone():this.m.sub(a)._forceRed(this)},Red.prototype.add=function(a,b){this._verify2(a,b);var res=a.add(b);return res.cmp(this.m)>=0&&res.isub(this.m),res._forceRed(this)},Red.prototype.iadd=function(a,b){this._verify2(a,b);var res=a.iadd(b);return res.cmp(this.m)>=0&&res.isub(this.m),res},Red.prototype.sub=function(a,b){this._verify2(a,b);var res=a.sub(b);return res.cmpn(0)<0&&res.iadd(this.m),res._forceRed(this)},Red.prototype.isub=function(a,b){this._verify2(a,b);var res=a.isub(b);return res.cmpn(0)<0&&res.iadd(this.m),res},Red.prototype.shl=function(a,num){return this._verify1(a),this.imod(a.ushln(num))},Red.prototype.imul=function(a,b){return this._verify2(a,b),this.imod(a.imul(b))},Red.prototype.mul=function(a,b){return this._verify2(a,b),this.imod(a.mul(b))},Red.prototype.isqr=function(a){return this.imul(a,a.clone())},Red.prototype.sqr=function(a){return this.mul(a,a)},Red.prototype.sqrt=function(a){if(a.isZero())return a.clone();var mod3=this.m.andln(3);if(assert(mod3%2==1),3===mod3){var pow=this.m.add(new BN(1)).iushrn(2);return this.pow(a,pow)}for(var q=this.m.subn(1),s=0;!q.isZero()&&0===q.andln(1);)s++,q.iushrn(1);assert(!q.isZero());var one=new BN(1).toRed(this),nOne=one.redNeg(),lpow=this.m.subn(1).iushrn(1),z=this.m.bitLength();for(z=new BN(2*z*z).toRed(this);0!==this.pow(z,lpow).cmp(nOne);)z.redIAdd(nOne);for(var c=this.pow(z,q),r=this.pow(a,q.addn(1).iushrn(1)),t=this.pow(a,q),m=s;0!==t.cmp(one);){for(var tmp=t,i=0;0!==tmp.cmp(one);i++)tmp=tmp.redSqr();assert(i=0;i--){for(var word=num.words[i],j=start-1;j>=0;j--){var bit=word>>j&1;res!==wnd[0]&&(res=this.sqr(res)),0!==bit||0!==current?(current<<=1,current|=bit,(4===++currentLen||0===i&&0===j)&&(res=this.mul(res,wnd[current]),currentLen=0,current=0)):currentLen=0}start=26}return res},Red.prototype.convertTo=function(num){var r=num.umod(this.m);return r===num?r.clone():r},Red.prototype.convertFrom=function(num){var res=num.clone();return res.red=null,res},BN.mont=function(num){return new Mont(num)},inherits(Mont,Red),Mont.prototype.convertTo=function(num){return this.imod(num.ushln(this.shift))},Mont.prototype.convertFrom=function(num){var r=this.imod(num.mul(this.rinv));return r.red=null,r},Mont.prototype.imul=function(a,b){if(a.isZero()||b.isZero())return a.words[0]=0,a.length=1,a;var t=a.imul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;return u.cmp(this.m)>=0?res=u.isub(this.m):u.cmpn(0)<0&&(res=u.iadd(this.m)),res._forceRed(this)},Mont.prototype.mul=function(a,b){if(a.isZero()||b.isZero())return new BN(0)._forceRed(this);var t=a.mul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;return u.cmp(this.m)>=0?res=u.isub(this.m):u.cmpn(0)<0&&(res=u.iadd(this.m)),res._forceRed(this)},Mont.prototype.invm=function(a){return this.imod(a._invmp(this.m).mul(this.r2))._forceRed(this)}}(void 0===module||module,this)},{buffer:110}],109:[function(require,module,exports){var r;function Rand(rand){this.rand=rand}if(module.exports=function(len){return r||(r=new Rand(null)),r.generate(len)},module.exports.Rand=Rand,Rand.prototype.generate=function(len){return this._rand(len)},Rand.prototype._rand=function(n){if(this.rand.getBytes)return this.rand.getBytes(n);for(var res=new Uint8Array(n),i=0;i>>24]^SUB_MIX1[s1>>>16&255]^SUB_MIX2[s2>>>8&255]^SUB_MIX3[255&s3]^keySchedule[ksRow++],t1=SUB_MIX0[s1>>>24]^SUB_MIX1[s2>>>16&255]^SUB_MIX2[s3>>>8&255]^SUB_MIX3[255&s0]^keySchedule[ksRow++],t2=SUB_MIX0[s2>>>24]^SUB_MIX1[s3>>>16&255]^SUB_MIX2[s0>>>8&255]^SUB_MIX3[255&s1]^keySchedule[ksRow++],t3=SUB_MIX0[s3>>>24]^SUB_MIX1[s0>>>16&255]^SUB_MIX2[s1>>>8&255]^SUB_MIX3[255&s2]^keySchedule[ksRow++],s0=t0,s1=t1,s2=t2,s3=t3;return t0=(SBOX[s0>>>24]<<24|SBOX[s1>>>16&255]<<16|SBOX[s2>>>8&255]<<8|SBOX[255&s3])^keySchedule[ksRow++],t1=(SBOX[s1>>>24]<<24|SBOX[s2>>>16&255]<<16|SBOX[s3>>>8&255]<<8|SBOX[255&s0])^keySchedule[ksRow++],t2=(SBOX[s2>>>24]<<24|SBOX[s3>>>16&255]<<16|SBOX[s0>>>8&255]<<8|SBOX[255&s1])^keySchedule[ksRow++],t3=(SBOX[s3>>>24]<<24|SBOX[s0>>>16&255]<<16|SBOX[s1>>>8&255]<<8|SBOX[255&s2])^keySchedule[ksRow++],[t0>>>=0,t1>>>=0,t2>>>=0,t3>>>=0]}var RCON=[0,1,2,4,8,16,32,64,128,27,54],G=function(){for(var d=new Array(256),j=0;j<256;j++)d[j]=j<128?j<<1:j<<1^283;for(var SBOX=[],INV_SBOX=[],SUB_MIX=[[],[],[],[]],INV_SUB_MIX=[[],[],[],[]],x=0,xi=0,i=0;i<256;++i){var sx=xi^xi<<1^xi<<2^xi<<3^xi<<4;sx=sx>>>8^255&sx^99,SBOX[x]=sx,INV_SBOX[sx]=x;var x2=d[x],x4=d[x2],x8=d[x4],t=257*d[sx]^16843008*sx;SUB_MIX[0][x]=t<<24|t>>>8,SUB_MIX[1][x]=t<<16|t>>>16,SUB_MIX[2][x]=t<<8|t>>>24,SUB_MIX[3][x]=t,t=16843009*x8^65537*x4^257*x2^16843008*x,INV_SUB_MIX[0][sx]=t<<24|t>>>8,INV_SUB_MIX[1][sx]=t<<16|t>>>16,INV_SUB_MIX[2][sx]=t<<8|t>>>24,INV_SUB_MIX[3][sx]=t,0===x?x=xi=1:(x=x2^d[d[d[x8^x2]]],xi^=d[d[xi]])}return{SBOX:SBOX,INV_SBOX:INV_SBOX,SUB_MIX:SUB_MIX,INV_SUB_MIX:INV_SUB_MIX}}();function AES(key){this._key=asUInt32Array(key),this._reset()}AES.blockSize=16,AES.keySize=32,AES.prototype.blockSize=AES.blockSize,AES.prototype.keySize=AES.keySize,AES.prototype._reset=function(){for(var keyWords=this._key,keySize=keyWords.length,nRounds=keySize+6,ksRows=4*(nRounds+1),keySchedule=[],k=0;k>>24,t=G.SBOX[t>>>24]<<24|G.SBOX[t>>>16&255]<<16|G.SBOX[t>>>8&255]<<8|G.SBOX[255&t],t^=RCON[k/keySize|0]<<24):keySize>6&&k%keySize==4&&(t=G.SBOX[t>>>24]<<24|G.SBOX[t>>>16&255]<<16|G.SBOX[t>>>8&255]<<8|G.SBOX[255&t]),keySchedule[k]=keySchedule[k-keySize]^t}for(var invKeySchedule=[],ik=0;ik>>24]]^G.INV_SUB_MIX[1][G.SBOX[tt>>>16&255]]^G.INV_SUB_MIX[2][G.SBOX[tt>>>8&255]]^G.INV_SUB_MIX[3][G.SBOX[255&tt]]}this._nRounds=nRounds,this._keySchedule=keySchedule,this._invKeySchedule=invKeySchedule},AES.prototype.encryptBlockRaw=function(M){return cryptBlock(M=asUInt32Array(M),this._keySchedule,G.SUB_MIX,G.SBOX,this._nRounds)},AES.prototype.encryptBlock=function(M){var out=this.encryptBlockRaw(M),buf=Buffer.allocUnsafe(16);return buf.writeUInt32BE(out[0],0),buf.writeUInt32BE(out[1],4),buf.writeUInt32BE(out[2],8),buf.writeUInt32BE(out[3],12),buf},AES.prototype.decryptBlock=function(M){var m1=(M=asUInt32Array(M))[1];M[1]=M[3],M[3]=m1;var out=cryptBlock(M,this._invKeySchedule,G.INV_SUB_MIX,G.INV_SBOX,this._nRounds),buf=Buffer.allocUnsafe(16);return buf.writeUInt32BE(out[0],0),buf.writeUInt32BE(out[3],4),buf.writeUInt32BE(out[2],8),buf.writeUInt32BE(out[1],12),buf},AES.prototype.scrub=function(){scrubVec(this._keySchedule),scrubVec(this._invKeySchedule),scrubVec(this._key)},module.exports.AES=AES},{"safe-buffer":742}],112:[function(require,module,exports){var aes=require("./aes"),Buffer=require("safe-buffer").Buffer,Transform=require("cipher-base"),inherits=require("inherits"),GHASH=require("./ghash"),xor=require("buffer-xor"),incr32=require("./incr32");function StreamCipher(mode,key,iv,decrypt){Transform.call(this);var h=Buffer.alloc(4,0);this._cipher=new aes.AES(key);var ck=this._cipher.encryptBlock(h);this._ghash=new GHASH(ck),iv=function(self,iv,ck){if(12===iv.length)return self._finID=Buffer.concat([iv,Buffer.from([0,0,0,1])]),Buffer.concat([iv,Buffer.from([0,0,0,2])]);var ghash=new GHASH(ck),len=iv.length,toPad=len%16;ghash.update(iv),toPad&&(toPad=16-toPad,ghash.update(Buffer.alloc(toPad,0))),ghash.update(Buffer.alloc(8,0));var ivBits=8*len,tail=Buffer.alloc(8);tail.writeUIntBE(ivBits,0,8),ghash.update(tail),self._finID=ghash.state;var out=Buffer.from(self._finID);return incr32(out),out}(this,iv,ck),this._prev=Buffer.from(iv),this._cache=Buffer.allocUnsafe(0),this._secCache=Buffer.allocUnsafe(0),this._decrypt=decrypt,this._alen=0,this._len=0,this._mode=mode,this._authTag=null,this._called=!1}inherits(StreamCipher,Transform),StreamCipher.prototype._update=function(chunk){if(!this._called&&this._alen){var rump=16-this._alen%16;rump<16&&(rump=Buffer.alloc(rump,0),this._ghash.update(rump))}this._called=!0;var out=this._mode.encrypt(this,chunk);return this._decrypt?this._ghash.update(chunk):this._ghash.update(out),this._len+=chunk.length,out},StreamCipher.prototype._final=function(){if(this._decrypt&&!this._authTag)throw new Error("Unsupported state or unable to authenticate data");var tag=xor(this._ghash.final(8*this._alen,8*this._len),this._cipher.encryptBlock(this._finID));if(this._decrypt&&function(a,b){var out=0;a.length!==b.length&&out++;for(var len=Math.min(a.length,b.length),i=0;i16)throw new Error("unable to decrypt data");var i=-1;for(;++i16)return out=this.cache.slice(0,16),this.cache=this.cache.slice(16),out}else if(this.cache.length>=16)return out=this.cache.slice(0,16),this.cache=this.cache.slice(16),out;return null},Splitter.prototype.flush=function(){if(this.cache.length)return this.cache},exports.createDecipher=function(suite,password){var config=MODES[suite.toLowerCase()];if(!config)throw new TypeError("invalid suite type");var keys=ebtk(password,!1,config.key,config.iv);return createDecipheriv(suite,keys.key,keys.iv)},exports.createDecipheriv=createDecipheriv},{"./aes":111,"./authCipher":112,"./modes":124,"./streamCipher":127,"cipher-base":155,evp_bytestokey:336,inherits:396,"safe-buffer":742}],115:[function(require,module,exports){var MODES=require("./modes"),AuthCipher=require("./authCipher"),Buffer=require("safe-buffer").Buffer,StreamCipher=require("./streamCipher"),Transform=require("cipher-base"),aes=require("./aes"),ebtk=require("evp_bytestokey");function Cipher(mode,key,iv){Transform.call(this),this._cache=new Splitter,this._cipher=new aes.AES(key),this._prev=Buffer.from(iv),this._mode=mode,this._autopadding=!0}require("inherits")(Cipher,Transform),Cipher.prototype._update=function(data){var chunk,thing;this._cache.add(data);for(var out=[];chunk=this._cache.get();)thing=this._mode.encrypt(this,chunk),out.push(thing);return Buffer.concat(out)};var PADDING=Buffer.alloc(16,16);function Splitter(){this.cache=Buffer.allocUnsafe(0)}function createCipheriv(suite,password,iv){var config=MODES[suite.toLowerCase()];if(!config)throw new TypeError("invalid suite type");if("string"==typeof password&&(password=Buffer.from(password)),password.length!==config.key/8)throw new TypeError("invalid key length "+password.length);if("string"==typeof iv&&(iv=Buffer.from(iv)),"GCM"!==config.mode&&iv.length!==config.iv)throw new TypeError("invalid iv length "+iv.length);return"stream"===config.type?new StreamCipher(config.module,password,iv):"auth"===config.type?new AuthCipher(config.module,password,iv):new Cipher(config.module,password,iv)}Cipher.prototype._final=function(){var chunk=this._cache.flush();if(this._autopadding)return chunk=this._mode.encrypt(this,chunk),this._cipher.scrub(),chunk;if(!chunk.equals(PADDING))throw this._cipher.scrub(),new Error("data not multiple of block length")},Cipher.prototype.setAutoPadding=function(setTo){return this._autopadding=!!setTo,this},Splitter.prototype.add=function(data){this.cache=Buffer.concat([this.cache,data])},Splitter.prototype.get=function(){if(this.cache.length>15){var out=this.cache.slice(0,16);return this.cache=this.cache.slice(16),out}return null},Splitter.prototype.flush=function(){for(var len=16-this.cache.length,padBuff=Buffer.allocUnsafe(len),i=-1;++i>>0,0),buf.writeUInt32BE(out[1]>>>0,4),buf.writeUInt32BE(out[2]>>>0,8),buf.writeUInt32BE(out[3]>>>0,12),buf}function GHASH(key){this.h=key,this.state=Buffer.alloc(16,0),this.cache=Buffer.allocUnsafe(0)}GHASH.prototype.ghash=function(block){for(var i=-1;++i0;j--)Vi[j]=Vi[j]>>>1|(1&Vi[j-1])<<31;Vi[0]=Vi[0]>>>1,lsbVi&&(Vi[0]=Vi[0]^225<<24)}this.state=fromArray(Zi)},GHASH.prototype.update=function(buf){var chunk;for(this.cache=Buffer.concat([this.cache,buf]);this.cache.length>=16;)chunk=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(chunk)},GHASH.prototype.final=function(abl,bl){return this.cache.length&&this.ghash(Buffer.concat([this.cache,ZEROES],16)),this.ghash(fromArray([0,abl,0,bl])),this.state},module.exports=GHASH},{"safe-buffer":742}],117:[function(require,module,exports){module.exports=function(iv){for(var item,len=iv.length;len--;){if(255!==(item=iv.readUInt8(len))){item++,iv.writeUInt8(item,len);break}iv.writeUInt8(0,len)}}},{}],118:[function(require,module,exports){var xor=require("buffer-xor");exports.encrypt=function(self,block){var data=xor(block,self._prev);return self._prev=self._cipher.encryptBlock(data),self._prev},exports.decrypt=function(self,block){var pad=self._prev;self._prev=block;var out=self._cipher.decryptBlock(block);return xor(out,pad)}},{"buffer-xor":144}],119:[function(require,module,exports){var Buffer=require("safe-buffer").Buffer,xor=require("buffer-xor");function encryptStart(self,data,decrypt){var len=data.length,out=xor(data,self._cache);return self._cache=self._cache.slice(len),self._prev=Buffer.concat([self._prev,decrypt?data:out]),out}exports.encrypt=function(self,data,decrypt){for(var len,out=Buffer.allocUnsafe(0);data.length;){if(0===self._cache.length&&(self._cache=self._cipher.encryptBlock(self._prev),self._prev=Buffer.allocUnsafe(0)),!(self._cache.length<=data.length)){out=Buffer.concat([out,encryptStart(self,data,decrypt)]);break}len=self._cache.length,out=Buffer.concat([out,encryptStart(self,data.slice(0,len),decrypt)]),data=data.slice(len)}return out}},{"buffer-xor":144,"safe-buffer":742}],120:[function(require,module,exports){var Buffer=require("safe-buffer").Buffer;function encryptByte(self,byteParam,decrypt){for(var pad,bit,value,i=-1,out=0;++i<8;)pad=self._cipher.encryptBlock(self._prev),bit=byteParam&1<<7-i?128:0,out+=(128&(value=pad[0]^bit))>>i%8,self._prev=shiftIn(self._prev,decrypt?bit:value);return out}function shiftIn(buffer,value){var len=buffer.length,i=-1,out=Buffer.allocUnsafe(buffer.length);for(buffer=Buffer.concat([buffer,Buffer.from([value])]);++i>7;return out}exports.encrypt=function(self,chunk,decrypt){for(var len=chunk.length,out=Buffer.allocUnsafe(len),i=-1;++i=0||!r.umod(priv.prime1)||!r.umod(priv.prime2);)r=new bn(randomBytes(len));return r}module.exports=crt,crt.getr=getr}).call(this,require("buffer").Buffer)},{"bn.js":108,buffer:146,randombytes:724}],132:[function(require,module,exports){module.exports=require("./browser/algorithms.json")},{"./browser/algorithms.json":133}],133:[function(require,module,exports){module.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"}}},{}],134:[function(require,module,exports){module.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"}},{}],135:[function(require,module,exports){(function(Buffer){var createHash=require("create-hash"),stream=require("stream"),inherits=require("inherits"),sign=require("./sign"),verify=require("./verify"),algorithms=require("./algorithms.json");function Sign(algorithm){stream.Writable.call(this);var data=algorithms[algorithm];if(!data)throw new Error("Unknown message digest");this._hashType=data.hash,this._hash=createHash(data.hash),this._tag=data.id,this._signType=data.sign}function Verify(algorithm){stream.Writable.call(this);var data=algorithms[algorithm];if(!data)throw new Error("Unknown message digest");this._hash=createHash(data.hash),this._tag=data.id,this._signType=data.sign}function createSign(algorithm){return new Sign(algorithm)}function createVerify(algorithm){return new Verify(algorithm)}Object.keys(algorithms).forEach(function(key){algorithms[key].id=new Buffer(algorithms[key].id,"hex"),algorithms[key.toLowerCase()]=algorithms[key]}),inherits(Sign,stream.Writable),Sign.prototype._write=function(data,_,done){this._hash.update(data),done()},Sign.prototype.update=function(data,enc){return"string"==typeof data&&(data=new Buffer(data,enc)),this._hash.update(data),this},Sign.prototype.sign=function(key,enc){this.end();var hash=this._hash.digest(),sig=sign(hash,key,this._hashType,this._signType,this._tag);return enc?sig.toString(enc):sig},inherits(Verify,stream.Writable),Verify.prototype._write=function(data,_,done){this._hash.update(data),done()},Verify.prototype.update=function(data,enc){return"string"==typeof data&&(data=new Buffer(data,enc)),this._hash.update(data),this},Verify.prototype.verify=function(key,sig,enc){"string"==typeof sig&&(sig=new Buffer(sig,enc)),this.end();var hash=this._hash.digest();return verify(sig,hash,key,this._signType,this._tag)},module.exports={Sign:createSign,Verify:createVerify,createSign:createSign,createVerify:createVerify}}).call(this,require("buffer").Buffer)},{"./algorithms.json":133,"./sign":136,"./verify":137,buffer:146,"create-hash":239,inherits:396,stream:808}],136:[function(require,module,exports){(function(Buffer){var createHmac=require("create-hmac"),crt=require("browserify-rsa"),EC=require("elliptic").ec,BN=require("bn.js"),parseKeys=require("parse-asn1"),curves=require("./curves.json");function getKey(x,q,hash,algo){if((x=new Buffer(x.toArray())).length0&&bits.ishrn(shift),bits}function makeKey(q,kv,algo){var t,k;do{for(t=new Buffer(0);8*t.length=q)throw new Error("invalid sig")}module.exports=function(sig,hash,key,signType,tag){var pub=parseKeys(key);if("ec"===pub.type){if("ecdsa"!==signType&&"ecdsa/rsa"!==signType)throw new Error("wrong public key type");return function(sig,hash,pub){var curveId=curves[pub.data.algorithm.curve.join(".")];if(!curveId)throw new Error("unknown curve "+pub.data.algorithm.curve.join("."));var curve=new EC(curveId),pubkey=pub.data.subjectPrivateKey.data;return curve.verify(hash,sig,pubkey)}(sig,hash,pub)}if("dsa"===pub.type){if("dsa"!==signType)throw new Error("wrong public key type");return function(sig,hash,pub){var p=pub.data.p,q=pub.data.q,g=pub.data.g,y=pub.data.pub_key,unpacked=parseKeys.signature.decode(sig,"der"),s=unpacked.s,r=unpacked.r;checkValue(s,q),checkValue(r,q);var montp=BN.mont(p),w=s.invm(q);return 0===g.toRed(montp).redPow(new BN(hash).mul(w).mod(q)).fromRed().mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed()).mod(p).mod(q).cmp(r)}(sig,hash,pub)}if("rsa"!==signType&&"ecdsa/rsa"!==signType)throw new Error("wrong public key type");hash=Buffer.concat([tag,hash]);for(var len=pub.modulus.byteLength(),pad=[1],padNum=0;hash.length+pad.length+2K_MAX_LENGTH)throw new RangeError('The value "'+length+'" is invalid for option "size"');var buf=new Uint8Array(length);return Object.setPrototypeOf(buf,Buffer.prototype),buf}function Buffer(arg,encodingOrOffset,length){if("number"==typeof arg){if("string"==typeof encodingOrOffset)throw new TypeError('The "string" argument must be of type string. Received type number');return allocUnsafe(arg)}return from(arg,encodingOrOffset,length)}function from(value,encodingOrOffset,length){if("string"==typeof value)return function(string,encoding){"string"==typeof encoding&&""!==encoding||(encoding="utf8");if(!Buffer.isEncoding(encoding))throw new TypeError("Unknown encoding: "+encoding);var length=0|byteLength(string,encoding),buf=createBuffer(length),actual=buf.write(string,encoding);actual!==length&&(buf=buf.slice(0,actual));return buf}(value,encodingOrOffset);if(ArrayBuffer.isView(value))return fromArrayLike(value);if(null==value)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof value);if(isInstance(value,ArrayBuffer)||value&&isInstance(value.buffer,ArrayBuffer))return function(array,byteOffset,length){if(byteOffset<0||array.byteLength=K_MAX_LENGTH)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+K_MAX_LENGTH.toString(16)+" bytes");return 0|length}function byteLength(string,encoding){if(Buffer.isBuffer(string))return string.length;if(ArrayBuffer.isView(string)||isInstance(string,ArrayBuffer))return string.byteLength;if("string"!=typeof string)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof string);var len=string.length,mustMatch=arguments.length>2&&!0===arguments[2];if(!mustMatch&&0===len)return 0;for(var loweredCase=!1;;)switch(encoding){case"ascii":case"latin1":case"binary":return len;case"utf8":case"utf-8":return utf8ToBytes(string).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*len;case"hex":return len>>>1;case"base64":return base64ToBytes(string).length;default:if(loweredCase)return mustMatch?-1:utf8ToBytes(string).length;encoding=(""+encoding).toLowerCase(),loweredCase=!0}}function swap(b,n,m){var i=b[n];b[n]=b[m],b[m]=i}function bidirectionalIndexOf(buffer,val,byteOffset,encoding,dir){if(0===buffer.length)return-1;if("string"==typeof byteOffset?(encoding=byteOffset,byteOffset=0):byteOffset>2147483647?byteOffset=2147483647:byteOffset<-2147483648&&(byteOffset=-2147483648),numberIsNaN(byteOffset=+byteOffset)&&(byteOffset=dir?0:buffer.length-1),byteOffset<0&&(byteOffset=buffer.length+byteOffset),byteOffset>=buffer.length){if(dir)return-1;byteOffset=buffer.length-1}else if(byteOffset<0){if(!dir)return-1;byteOffset=0}if("string"==typeof val&&(val=Buffer.from(val,encoding)),Buffer.isBuffer(val))return 0===val.length?-1:arrayIndexOf(buffer,val,byteOffset,encoding,dir);if("number"==typeof val)return val&=255,"function"==typeof Uint8Array.prototype.indexOf?dir?Uint8Array.prototype.indexOf.call(buffer,val,byteOffset):Uint8Array.prototype.lastIndexOf.call(buffer,val,byteOffset):arrayIndexOf(buffer,[val],byteOffset,encoding,dir);throw new TypeError("val must be string, number or Buffer")}function arrayIndexOf(arr,val,byteOffset,encoding,dir){var i,indexSize=1,arrLength=arr.length,valLength=val.length;if(void 0!==encoding&&("ucs2"===(encoding=String(encoding).toLowerCase())||"ucs-2"===encoding||"utf16le"===encoding||"utf-16le"===encoding)){if(arr.length<2||val.length<2)return-1;indexSize=2,arrLength/=2,valLength/=2,byteOffset/=2}function read(buf,i){return 1===indexSize?buf[i]:buf.readUInt16BE(i*indexSize)}if(dir){var foundIndex=-1;for(i=byteOffset;iarrLength&&(byteOffset=arrLength-valLength),i=byteOffset;i>=0;i--){for(var found=!0,j=0;jremaining&&(length=remaining):length=remaining;var strLen=string.length;length>strLen/2&&(length=strLen/2);for(var i=0;i>8,lo=c%256,byteArray.push(lo),byteArray.push(hi);return byteArray}(string,buf.length-offset),buf,offset,length)}function base64Slice(buf,start,end){return 0===start&&end===buf.length?base64.fromByteArray(buf):base64.fromByteArray(buf.slice(start,end))}function utf8Slice(buf,start,end){end=Math.min(buf.length,end);for(var res=[],i=start;i239?4:firstByte>223?3:firstByte>191?2:1;if(i+bytesPerSequence<=end)switch(bytesPerSequence){case 1:firstByte<128&&(codePoint=firstByte);break;case 2:128==(192&(secondByte=buf[i+1]))&&(tempCodePoint=(31&firstByte)<<6|63&secondByte)>127&&(codePoint=tempCodePoint);break;case 3:secondByte=buf[i+1],thirdByte=buf[i+2],128==(192&secondByte)&&128==(192&thirdByte)&&(tempCodePoint=(15&firstByte)<<12|(63&secondByte)<<6|63&thirdByte)>2047&&(tempCodePoint<55296||tempCodePoint>57343)&&(codePoint=tempCodePoint);break;case 4:secondByte=buf[i+1],thirdByte=buf[i+2],fourthByte=buf[i+3],128==(192&secondByte)&&128==(192&thirdByte)&&128==(192&fourthByte)&&(tempCodePoint=(15&firstByte)<<18|(63&secondByte)<<12|(63&thirdByte)<<6|63&fourthByte)>65535&&tempCodePoint<1114112&&(codePoint=tempCodePoint)}null===codePoint?(codePoint=65533,bytesPerSequence=1):codePoint>65535&&(codePoint-=65536,res.push(codePoint>>>10&1023|55296),codePoint=56320|1023&codePoint),res.push(codePoint),i+=bytesPerSequence}return function(codePoints){var len=codePoints.length;if(len<=MAX_ARGUMENTS_LENGTH)return String.fromCharCode.apply(String,codePoints);var res="",i=0;for(;ithis.length)return"";if((void 0===end||end>this.length)&&(end=this.length),end<=0)return"";if((end>>>=0)<=(start>>>=0))return"";for(encoding||(encoding="utf8");;)switch(encoding){case"hex":return hexSlice(this,start,end);case"utf8":case"utf-8":return utf8Slice(this,start,end);case"ascii":return asciiSlice(this,start,end);case"latin1":case"binary":return latin1Slice(this,start,end);case"base64":return base64Slice(this,start,end);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(encoding+"").toLowerCase(),loweredCase=!0}}.apply(this,arguments)},Buffer.prototype.toLocaleString=Buffer.prototype.toString,Buffer.prototype.equals=function(b){if(!Buffer.isBuffer(b))throw new TypeError("Argument must be a Buffer");return this===b||0===Buffer.compare(this,b)},Buffer.prototype.inspect=function(){var str="",max=exports.INSPECT_MAX_BYTES;return str=this.toString("hex",0,max).replace(/(.{2})/g,"$1 ").trim(),this.length>max&&(str+=" ... "),""},customInspectSymbol&&(Buffer.prototype[customInspectSymbol]=Buffer.prototype.inspect),Buffer.prototype.compare=function(target,start,end,thisStart,thisEnd){if(isInstance(target,Uint8Array)&&(target=Buffer.from(target,target.offset,target.byteLength)),!Buffer.isBuffer(target))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof target);if(void 0===start&&(start=0),void 0===end&&(end=target?target.length:0),void 0===thisStart&&(thisStart=0),void 0===thisEnd&&(thisEnd=this.length),start<0||end>target.length||thisStart<0||thisEnd>this.length)throw new RangeError("out of range index");if(thisStart>=thisEnd&&start>=end)return 0;if(thisStart>=thisEnd)return-1;if(start>=end)return 1;if(start>>>=0,end>>>=0,thisStart>>>=0,thisEnd>>>=0,this===target)return 0;for(var x=thisEnd-thisStart,y=end-start,len=Math.min(x,y),thisCopy=this.slice(thisStart,thisEnd),targetCopy=target.slice(start,end),i=0;i>>=0,isFinite(length)?(length>>>=0,void 0===encoding&&(encoding="utf8")):(encoding=length,length=void 0)}var remaining=this.length-offset;if((void 0===length||length>remaining)&&(length=remaining),string.length>0&&(length<0||offset<0)||offset>this.length)throw new RangeError("Attempt to write outside buffer bounds");encoding||(encoding="utf8");for(var loweredCase=!1;;)switch(encoding){case"hex":return hexWrite(this,string,offset,length);case"utf8":case"utf-8":return utf8Write(this,string,offset,length);case"ascii":return asciiWrite(this,string,offset,length);case"latin1":case"binary":return latin1Write(this,string,offset,length);case"base64":return base64Write(this,string,offset,length);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,string,offset,length);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(""+encoding).toLowerCase(),loweredCase=!0}},Buffer.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var MAX_ARGUMENTS_LENGTH=4096;function asciiSlice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;ilen)&&(end=len);for(var out="",i=start;ilength)throw new RangeError("Trying to access beyond buffer length")}function checkInt(buf,value,offset,ext,max,min){if(!Buffer.isBuffer(buf))throw new TypeError('"buffer" argument must be a Buffer instance');if(value>max||valuebuf.length)throw new RangeError("Index out of range")}function checkIEEE754(buf,value,offset,ext,max,min){if(offset+ext>buf.length)throw new RangeError("Index out of range");if(offset<0)throw new RangeError("Index out of range")}function writeFloat(buf,value,offset,littleEndian,noAssert){return value=+value,offset>>>=0,noAssert||checkIEEE754(buf,0,offset,4),ieee754.write(buf,value,offset,littleEndian,23,4),offset+4}function writeDouble(buf,value,offset,littleEndian,noAssert){return value=+value,offset>>>=0,noAssert||checkIEEE754(buf,0,offset,8),ieee754.write(buf,value,offset,littleEndian,52,8),offset+8}Buffer.prototype.slice=function(start,end){var len=this.length;start=~~start,end=void 0===end?len:~~end,start<0?(start+=len)<0&&(start=0):start>len&&(start=len),end<0?(end+=len)<0&&(end=0):end>len&&(end=len),end>>=0,byteLength>>>=0,noAssert||checkOffset(offset,byteLength,this.length);for(var val=this[offset],mul=1,i=0;++i>>=0,byteLength>>>=0,noAssert||checkOffset(offset,byteLength,this.length);for(var val=this[offset+--byteLength],mul=1;byteLength>0&&(mul*=256);)val+=this[offset+--byteLength]*mul;return val},Buffer.prototype.readUInt8=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,1,this.length),this[offset]},Buffer.prototype.readUInt16LE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,2,this.length),this[offset]|this[offset+1]<<8},Buffer.prototype.readUInt16BE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,2,this.length),this[offset]<<8|this[offset+1]},Buffer.prototype.readUInt32LE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,4,this.length),(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+16777216*this[offset+3]},Buffer.prototype.readUInt32BE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,4,this.length),16777216*this[offset]+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3])},Buffer.prototype.readIntLE=function(offset,byteLength,noAssert){offset>>>=0,byteLength>>>=0,noAssert||checkOffset(offset,byteLength,this.length);for(var val=this[offset],mul=1,i=0;++i=(mul*=128)&&(val-=Math.pow(2,8*byteLength)),val},Buffer.prototype.readIntBE=function(offset,byteLength,noAssert){offset>>>=0,byteLength>>>=0,noAssert||checkOffset(offset,byteLength,this.length);for(var i=byteLength,mul=1,val=this[offset+--i];i>0&&(mul*=256);)val+=this[offset+--i]*mul;return val>=(mul*=128)&&(val-=Math.pow(2,8*byteLength)),val},Buffer.prototype.readInt8=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,1,this.length),128&this[offset]?-1*(255-this[offset]+1):this[offset]},Buffer.prototype.readInt16LE=function(offset,noAssert){offset>>>=0,noAssert||checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return 32768&val?4294901760|val:val},Buffer.prototype.readInt16BE=function(offset,noAssert){offset>>>=0,noAssert||checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return 32768&val?4294901760|val:val},Buffer.prototype.readInt32LE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,4,this.length),this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24},Buffer.prototype.readInt32BE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,4,this.length),this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3]},Buffer.prototype.readFloatLE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!0,23,4)},Buffer.prototype.readFloatBE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!1,23,4)},Buffer.prototype.readDoubleLE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!0,52,8)},Buffer.prototype.readDoubleBE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!1,52,8)},Buffer.prototype.writeUIntLE=function(value,offset,byteLength,noAssert){(value=+value,offset>>>=0,byteLength>>>=0,noAssert)||checkInt(this,value,offset,byteLength,Math.pow(2,8*byteLength)-1,0);var mul=1,i=0;for(this[offset]=255&value;++i>>=0,byteLength>>>=0,noAssert)||checkInt(this,value,offset,byteLength,Math.pow(2,8*byteLength)-1,0);var i=byteLength-1,mul=1;for(this[offset+i]=255&value;--i>=0&&(mul*=256);)this[offset+i]=value/mul&255;return offset+byteLength},Buffer.prototype.writeUInt8=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,1,255,0),this[offset]=255&value,offset+1},Buffer.prototype.writeUInt16LE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,2,65535,0),this[offset]=255&value,this[offset+1]=value>>>8,offset+2},Buffer.prototype.writeUInt16BE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,2,65535,0),this[offset]=value>>>8,this[offset+1]=255&value,offset+2},Buffer.prototype.writeUInt32LE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,4,4294967295,0),this[offset+3]=value>>>24,this[offset+2]=value>>>16,this[offset+1]=value>>>8,this[offset]=255&value,offset+4},Buffer.prototype.writeUInt32BE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,4,4294967295,0),this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=255&value,offset+4},Buffer.prototype.writeIntLE=function(value,offset,byteLength,noAssert){if(value=+value,offset>>>=0,!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=0,mul=1,sub=0;for(this[offset]=255&value;++i>0)-sub&255;return offset+byteLength},Buffer.prototype.writeIntBE=function(value,offset,byteLength,noAssert){if(value=+value,offset>>>=0,!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=byteLength-1,mul=1,sub=0;for(this[offset+i]=255&value;--i>=0&&(mul*=256);)value<0&&0===sub&&0!==this[offset+i+1]&&(sub=1),this[offset+i]=(value/mul>>0)-sub&255;return offset+byteLength},Buffer.prototype.writeInt8=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,1,127,-128),value<0&&(value=255+value+1),this[offset]=255&value,offset+1},Buffer.prototype.writeInt16LE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,2,32767,-32768),this[offset]=255&value,this[offset+1]=value>>>8,offset+2},Buffer.prototype.writeInt16BE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,2,32767,-32768),this[offset]=value>>>8,this[offset+1]=255&value,offset+2},Buffer.prototype.writeInt32LE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),this[offset]=255&value,this[offset+1]=value>>>8,this[offset+2]=value>>>16,this[offset+3]=value>>>24,offset+4},Buffer.prototype.writeInt32BE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),value<0&&(value=4294967295+value+1),this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=255&value,offset+4},Buffer.prototype.writeFloatLE=function(value,offset,noAssert){return writeFloat(this,value,offset,!0,noAssert)},Buffer.prototype.writeFloatBE=function(value,offset,noAssert){return writeFloat(this,value,offset,!1,noAssert)},Buffer.prototype.writeDoubleLE=function(value,offset,noAssert){return writeDouble(this,value,offset,!0,noAssert)},Buffer.prototype.writeDoubleBE=function(value,offset,noAssert){return writeDouble(this,value,offset,!1,noAssert)},Buffer.prototype.copy=function(target,targetStart,start,end){if(!Buffer.isBuffer(target))throw new TypeError("argument should be a Buffer");if(start||(start=0),end||0===end||(end=this.length),targetStart>=target.length&&(targetStart=target.length),targetStart||(targetStart=0),end>0&&end=this.length)throw new RangeError("Index out of range");if(end<0)throw new RangeError("sourceEnd out of bounds");end>this.length&&(end=this.length),target.length-targetStart=0;--i)target[i+targetStart]=this[i+start];else Uint8Array.prototype.set.call(target,this.subarray(start,end),targetStart);return len},Buffer.prototype.fill=function(val,start,end,encoding){if("string"==typeof val){if("string"==typeof start?(encoding=start,start=0,end=this.length):"string"==typeof end&&(encoding=end,end=this.length),void 0!==encoding&&"string"!=typeof encoding)throw new TypeError("encoding must be a string");if("string"==typeof encoding&&!Buffer.isEncoding(encoding))throw new TypeError("Unknown encoding: "+encoding);if(1===val.length){var code=val.charCodeAt(0);("utf8"===encoding&&code<128||"latin1"===encoding)&&(val=code)}}else"number"==typeof val?val&=255:"boolean"==typeof val&&(val=Number(val));if(start<0||this.length>>=0,end=void 0===end?this.length:end>>>0,val||(val=0),"number"==typeof val)for(i=start;i55295&&codePoint<57344){if(!leadSurrogate){if(codePoint>56319){(units-=3)>-1&&bytes.push(239,191,189);continue}if(i+1===length){(units-=3)>-1&&bytes.push(239,191,189);continue}leadSurrogate=codePoint;continue}if(codePoint<56320){(units-=3)>-1&&bytes.push(239,191,189),leadSurrogate=codePoint;continue}codePoint=65536+(leadSurrogate-55296<<10|codePoint-56320)}else leadSurrogate&&(units-=3)>-1&&bytes.push(239,191,189);if(leadSurrogate=null,codePoint<128){if((units-=1)<0)break;bytes.push(codePoint)}else if(codePoint<2048){if((units-=2)<0)break;bytes.push(codePoint>>6|192,63&codePoint|128)}else if(codePoint<65536){if((units-=3)<0)break;bytes.push(codePoint>>12|224,codePoint>>6&63|128,63&codePoint|128)}else{if(!(codePoint<1114112))throw new Error("Invalid code point");if((units-=4)<0)break;bytes.push(codePoint>>18|240,codePoint>>12&63|128,codePoint>>6&63|128,63&codePoint|128)}}return bytes}function base64ToBytes(str){return base64.toByteArray(function(str){if((str=(str=str.split("=")[0]).trim().replace(INVALID_BASE64_RE,"")).length<2)return"";for(;str.length%4!=0;)str+="=";return str}(str))}function blitBuffer(src,dst,offset,length){for(var i=0;i=dst.length||i>=src.length);++i)dst[i+offset]=src[i];return i}function isInstance(obj,type){return obj instanceof type||null!=obj&&null!=obj.constructor&&null!=obj.constructor.name&&obj.constructor.name===type.name}function numberIsNaN(obj){return obj!=obj}var hexSliceLookupTable=function(){for(var table=new Array(256),i=0;i<16;++i)for(var i16=16*i,j=0;j<16;++j)table[i16+j]="0123456789abcdef"[i]+"0123456789abcdef"[j];return table}()}).call(this,require("buffer").Buffer)},{"base64-js":56,buffer:146,ieee754:395}],147:[function(require,module,exports){"use strict";var validate=require("./validation").validate,CHARSET="qpzry9x8gf2tvdw0s3jn54khce6mua7l",CHARSET_INVERSE_INDEX={q:0,p:1,z:2,r:3,y:4,9:5,x:6,8:7,g:8,f:9,2:10,t:11,v:12,d:13,w:14,0:15,s:16,3:17,j:18,n:19,5:20,4:21,k:22,h:23,c:24,e:25,6:26,m:27,u:28,a:29,7:30,l:31};module.exports={encode:function(data){validate(data instanceof Uint8Array,"Invalid data: "+data+".");for(var base32="",i=0;i>from==0,"Invalid value: "+value+"."),accumulator=accumulator<=to;)bits-=to,result[index]=accumulator>>bits&mask,++index}return strictMode?validate(bits0&&(result[index]=accumulator<index;)if((value=O[index++])!=value)return!0}else for(;length>index;index++)if((IS_INCLUDES||index in O)&&O[index]===el)return IS_INCLUDES||index||0;return!IS_INCLUDES&&-1}}},{"./_to-absolute-index":208,"./_to-iobject":210,"./_to-length":211}],162:[function(require,module,exports){var ctx=require("./_ctx"),IObject=require("./_iobject"),toObject=require("./_to-object"),toLength=require("./_to-length"),asc=require("./_array-species-create");module.exports=function(TYPE,$create){var IS_MAP=1==TYPE,IS_FILTER=2==TYPE,IS_SOME=3==TYPE,IS_EVERY=4==TYPE,IS_FIND_INDEX=6==TYPE,NO_HOLES=5==TYPE||IS_FIND_INDEX,create=$create||asc;return function($this,callbackfn,that){for(var val,res,O=toObject($this),self=IObject(O),f=ctx(callbackfn,that,3),length=toLength(self.length),index=0,result=IS_MAP?create($this,length):IS_FILTER?create($this,0):void 0;length>index;index++)if((NO_HOLES||index in self)&&(res=f(val=self[index],index,O),TYPE))if(IS_MAP)result[index]=res;else if(res)switch(TYPE){case 3:return!0;case 5:return val;case 6:return index;case 2:result.push(val)}else if(IS_EVERY)return!1;return IS_FIND_INDEX?-1:IS_SOME||IS_EVERY?IS_EVERY:result}}},{"./_array-species-create":164,"./_ctx":170,"./_iobject":183,"./_to-length":211,"./_to-object":212}],163:[function(require,module,exports){var isObject=require("./_is-object"),isArray=require("./_is-array"),SPECIES=require("./_wks")("species");module.exports=function(original){var C;return isArray(original)&&("function"!=typeof(C=original.constructor)||C!==Array&&!isArray(C.prototype)||(C=void 0),isObject(C)&&null===(C=C[SPECIES])&&(C=void 0)),void 0===C?Array:C}},{"./_is-array":185,"./_is-object":186,"./_wks":216}],164:[function(require,module,exports){var speciesConstructor=require("./_array-species-constructor");module.exports=function(original,length){return new(speciesConstructor(original))(length)}},{"./_array-species-constructor":163}],165:[function(require,module,exports){var cof=require("./_cof"),TAG=require("./_wks")("toStringTag"),ARG="Arguments"==cof(function(){return arguments}());module.exports=function(it){var O,T,B;return void 0===it?"Undefined":null===it?"Null":"string"==typeof(T=function(it,key){try{return it[key]}catch(e){}}(O=Object(it),TAG))?T:ARG?cof(O):"Object"==(B=cof(O))&&"function"==typeof O.callee?"Arguments":B}},{"./_cof":166,"./_wks":216}],166:[function(require,module,exports){var toString={}.toString;module.exports=function(it){return toString.call(it).slice(8,-1)}},{}],167:[function(require,module,exports){"use strict";var dP=require("./_object-dp").f,create=require("./_object-create"),redefineAll=require("./_redefine-all"),ctx=require("./_ctx"),anInstance=require("./_an-instance"),forOf=require("./_for-of"),$iterDefine=require("./_iter-define"),step=require("./_iter-step"),setSpecies=require("./_set-species"),DESCRIPTORS=require("./_descriptors"),fastKey=require("./_meta").fastKey,validate=require("./_validate-collection"),SIZE=DESCRIPTORS?"_s":"size",getEntry=function(that,key){var entry,index=fastKey(key);if("F"!==index)return that._i[index];for(entry=that._f;entry;entry=entry.n)if(entry.k==key)return entry};module.exports={getConstructor:function(wrapper,NAME,IS_MAP,ADDER){var C=wrapper(function(that,iterable){anInstance(that,C,NAME,"_i"),that._t=NAME,that._i=create(null),that._f=void 0,that._l=void 0,that[SIZE]=0,void 0!=iterable&&forOf(iterable,IS_MAP,that[ADDER],that)});return redefineAll(C.prototype,{clear:function(){for(var that=validate(this,NAME),data=that._i,entry=that._f;entry;entry=entry.n)entry.r=!0,entry.p&&(entry.p=entry.p.n=void 0),delete data[entry.i];that._f=that._l=void 0,that[SIZE]=0},delete:function(key){var that=validate(this,NAME),entry=getEntry(that,key);if(entry){var next=entry.n,prev=entry.p;delete that._i[entry.i],entry.r=!0,prev&&(prev.n=next),next&&(next.p=prev),that._f==entry&&(that._f=next),that._l==entry&&(that._l=prev),that[SIZE]--}return!!entry},forEach:function(callbackfn){validate(this,NAME);for(var entry,f=ctx(callbackfn,arguments.length>1?arguments[1]:void 0,3);entry=entry?entry.n:this._f;)for(f(entry.v,entry.k,this);entry&&entry.r;)entry=entry.p},has:function(key){return!!getEntry(validate(this,NAME),key)}}),DESCRIPTORS&&dP(C.prototype,"size",{get:function(){return validate(this,NAME)[SIZE]}}),C},def:function(that,key,value){var prev,index,entry=getEntry(that,key);return entry?entry.v=value:(that._l=entry={i:index=fastKey(key,!0),k:key,v:value,p:prev=that._l,n:void 0,r:!1},that._f||(that._f=entry),prev&&(prev.n=entry),that[SIZE]++,"F"!==index&&(that._i[index]=entry)),that},getEntry:getEntry,setStrong:function(C,NAME,IS_MAP){$iterDefine(C,NAME,function(iterated,kind){this._t=validate(iterated,NAME),this._k=kind,this._l=void 0},function(){for(var kind=this._k,entry=this._l;entry&&entry.r;)entry=entry.p;return this._t&&(this._l=entry=entry?entry.n:this._t._f)?step(0,"keys"==kind?entry.k:"values"==kind?entry.v:[entry.k,entry.v]):(this._t=void 0,step(1))},IS_MAP?"entries":"values",!IS_MAP,!0),setSpecies(NAME)}}},{"./_an-instance":159,"./_ctx":170,"./_descriptors":172,"./_for-of":177,"./_iter-define":189,"./_iter-step":190,"./_meta":193,"./_object-create":194,"./_object-dp":195,"./_redefine-all":201,"./_set-species":203,"./_validate-collection":215}],168:[function(require,module,exports){"use strict";var global=require("./_global"),$export=require("./_export"),meta=require("./_meta"),fails=require("./_fails"),hide=require("./_hide"),redefineAll=require("./_redefine-all"),forOf=require("./_for-of"),anInstance=require("./_an-instance"),isObject=require("./_is-object"),setToStringTag=require("./_set-to-string-tag"),dP=require("./_object-dp").f,each=require("./_array-methods")(0),DESCRIPTORS=require("./_descriptors");module.exports=function(NAME,wrapper,methods,common,IS_MAP,IS_WEAK){var Base=global[NAME],C=Base,ADDER=IS_MAP?"set":"add",proto=C&&C.prototype,O={};return DESCRIPTORS&&"function"==typeof C&&(IS_WEAK||proto.forEach&&!fails(function(){(new C).entries().next()}))?(C=wrapper(function(target,iterable){anInstance(target,C,NAME,"_c"),target._c=new Base,void 0!=iterable&&forOf(iterable,IS_MAP,target[ADDER],target)}),each("add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON".split(","),function(KEY){var IS_ADDER="add"==KEY||"set"==KEY;KEY in proto&&(!IS_WEAK||"clear"!=KEY)&&hide(C.prototype,KEY,function(a,b){if(anInstance(this,C,KEY),!IS_ADDER&&IS_WEAK&&!isObject(a))return"get"==KEY&&void 0;var result=this._c[KEY](0===a?0:a,b);return IS_ADDER?this:result})}),IS_WEAK||dP(C.prototype,"size",{get:function(){return this._c.size}})):(C=common.getConstructor(wrapper,NAME,IS_MAP,ADDER),redefineAll(C.prototype,methods),meta.NEED=!0),setToStringTag(C,NAME),O[NAME]=C,$export($export.G+$export.W+$export.F,O),IS_WEAK||common.setStrong(C,NAME,IS_MAP),C}},{"./_an-instance":159,"./_array-methods":162,"./_descriptors":172,"./_export":175,"./_fails":176,"./_for-of":177,"./_global":178,"./_hide":180,"./_is-object":186,"./_meta":193,"./_object-dp":195,"./_redefine-all":201,"./_set-to-string-tag":204}],169:[function(require,module,exports){var core=module.exports={version:"2.6.11"};"number"==typeof __e&&(__e=core)},{}],170:[function(require,module,exports){var aFunction=require("./_a-function");module.exports=function(fn,that,length){if(aFunction(fn),void 0===that)return fn;switch(length){case 1:return function(a){return fn.call(that,a)};case 2:return function(a,b){return fn.call(that,a,b)};case 3:return function(a,b,c){return fn.call(that,a,b,c)}}return function(){return fn.apply(that,arguments)}}},{"./_a-function":157}],171:[function(require,module,exports){module.exports=function(it){if(void 0==it)throw TypeError("Can't call method on "+it);return it}},{}],172:[function(require,module,exports){module.exports=!require("./_fails")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},{"./_fails":176}],173:[function(require,module,exports){var isObject=require("./_is-object"),document=require("./_global").document,is=isObject(document)&&isObject(document.createElement);module.exports=function(it){return is?document.createElement(it):{}}},{"./_global":178,"./_is-object":186}],174:[function(require,module,exports){module.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},{}],175:[function(require,module,exports){var global=require("./_global"),core=require("./_core"),ctx=require("./_ctx"),hide=require("./_hide"),has=require("./_has"),$export=function(type,name,source){var key,own,out,IS_FORCED=type&$export.F,IS_GLOBAL=type&$export.G,IS_STATIC=type&$export.S,IS_PROTO=type&$export.P,IS_BIND=type&$export.B,IS_WRAP=type&$export.W,exports=IS_GLOBAL?core:core[name]||(core[name]={}),expProto=exports.prototype,target=IS_GLOBAL?global:IS_STATIC?global[name]:(global[name]||{}).prototype;for(key in IS_GLOBAL&&(source=name),source)(own=!IS_FORCED&&target&&void 0!==target[key])&&has(exports,key)||(out=own?target[key]:source[key],exports[key]=IS_GLOBAL&&"function"!=typeof target[key]?source[key]:IS_BIND&&own?ctx(out,global):IS_WRAP&&target[key]==out?function(C){var F=function(a,b,c){if(this instanceof C){switch(arguments.length){case 0:return new C;case 1:return new C(a);case 2:return new C(a,b)}return new C(a,b,c)}return C.apply(this,arguments)};return F.prototype=C.prototype,F}(out):IS_PROTO&&"function"==typeof out?ctx(Function.call,out):out,IS_PROTO&&((exports.virtual||(exports.virtual={}))[key]=out,type&$export.R&&expProto&&!expProto[key]&&hide(expProto,key,out)))};$export.F=1,$export.G=2,$export.S=4,$export.P=8,$export.B=16,$export.W=32,$export.U=64,$export.R=128,module.exports=$export},{"./_core":169,"./_ctx":170,"./_global":178,"./_has":179,"./_hide":180}],176:[function(require,module,exports){module.exports=function(exec){try{return!!exec()}catch(e){return!0}}},{}],177:[function(require,module,exports){var ctx=require("./_ctx"),call=require("./_iter-call"),isArrayIter=require("./_is-array-iter"),anObject=require("./_an-object"),toLength=require("./_to-length"),getIterFn=require("./core.get-iterator-method"),BREAK={},RETURN={};(exports=module.exports=function(iterable,entries,fn,that,ITERATOR){var length,step,iterator,result,iterFn=ITERATOR?function(){return iterable}:getIterFn(iterable),f=ctx(fn,that,entries?2:1),index=0;if("function"!=typeof iterFn)throw TypeError(iterable+" is not iterable!");if(isArrayIter(iterFn)){for(length=toLength(iterable.length);length>index;index++)if((result=entries?f(anObject(step=iterable[index])[0],step[1]):f(iterable[index]))===BREAK||result===RETURN)return result}else for(iterator=iterFn.call(iterable);!(step=iterator.next()).done;)if((result=call(iterator,f,step.value,entries))===BREAK||result===RETURN)return result}).BREAK=BREAK,exports.RETURN=RETURN},{"./_an-object":160,"./_ctx":170,"./_is-array-iter":184,"./_iter-call":187,"./_to-length":211,"./core.get-iterator-method":217}],178:[function(require,module,exports){var global=module.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=global)},{}],179:[function(require,module,exports){var hasOwnProperty={}.hasOwnProperty;module.exports=function(it,key){return hasOwnProperty.call(it,key)}},{}],180:[function(require,module,exports){var dP=require("./_object-dp"),createDesc=require("./_property-desc");module.exports=require("./_descriptors")?function(object,key,value){return dP.f(object,key,createDesc(1,value))}:function(object,key,value){return object[key]=value,object}},{"./_descriptors":172,"./_object-dp":195,"./_property-desc":200}],181:[function(require,module,exports){var document=require("./_global").document;module.exports=document&&document.documentElement},{"./_global":178}],182:[function(require,module,exports){module.exports=!require("./_descriptors")&&!require("./_fails")(function(){return 7!=Object.defineProperty(require("./_dom-create")("div"),"a",{get:function(){return 7}}).a})},{"./_descriptors":172,"./_dom-create":173,"./_fails":176}],183:[function(require,module,exports){var cof=require("./_cof");module.exports=Object("z").propertyIsEnumerable(0)?Object:function(it){return"String"==cof(it)?it.split(""):Object(it)}},{"./_cof":166}],184:[function(require,module,exports){var Iterators=require("./_iterators"),ITERATOR=require("./_wks")("iterator"),ArrayProto=Array.prototype;module.exports=function(it){return void 0!==it&&(Iterators.Array===it||ArrayProto[ITERATOR]===it)}},{"./_iterators":191,"./_wks":216}],185:[function(require,module,exports){var cof=require("./_cof");module.exports=Array.isArray||function(arg){return"Array"==cof(arg)}},{"./_cof":166}],186:[function(require,module,exports){module.exports=function(it){return"object"==typeof it?null!==it:"function"==typeof it}},{}],187:[function(require,module,exports){var anObject=require("./_an-object");module.exports=function(iterator,fn,value,entries){try{return entries?fn(anObject(value)[0],value[1]):fn(value)}catch(e){var ret=iterator.return;throw void 0!==ret&&anObject(ret.call(iterator)),e}}},{"./_an-object":160}],188:[function(require,module,exports){"use strict";var create=require("./_object-create"),descriptor=require("./_property-desc"),setToStringTag=require("./_set-to-string-tag"),IteratorPrototype={};require("./_hide")(IteratorPrototype,require("./_wks")("iterator"),function(){return this}),module.exports=function(Constructor,NAME,next){Constructor.prototype=create(IteratorPrototype,{next:descriptor(1,next)}),setToStringTag(Constructor,NAME+" Iterator")}},{"./_hide":180,"./_object-create":194,"./_property-desc":200,"./_set-to-string-tag":204,"./_wks":216}],189:[function(require,module,exports){"use strict";var LIBRARY=require("./_library"),$export=require("./_export"),redefine=require("./_redefine"),hide=require("./_hide"),Iterators=require("./_iterators"),$iterCreate=require("./_iter-create"),setToStringTag=require("./_set-to-string-tag"),getPrototypeOf=require("./_object-gpo"),ITERATOR=require("./_wks")("iterator"),BUGGY=!([].keys&&"next"in[].keys()),returnThis=function(){return this};module.exports=function(Base,NAME,Constructor,next,DEFAULT,IS_SET,FORCED){$iterCreate(Constructor,NAME,next);var methods,key,IteratorPrototype,getMethod=function(kind){if(!BUGGY&&kind in proto)return proto[kind];switch(kind){case"keys":case"values":return function(){return new Constructor(this,kind)}}return function(){return new Constructor(this,kind)}},TAG=NAME+" Iterator",DEF_VALUES="values"==DEFAULT,VALUES_BUG=!1,proto=Base.prototype,$native=proto[ITERATOR]||proto["@@iterator"]||DEFAULT&&proto[DEFAULT],$default=$native||getMethod(DEFAULT),$entries=DEFAULT?DEF_VALUES?getMethod("entries"):$default:void 0,$anyNative="Array"==NAME&&proto.entries||$native;if($anyNative&&(IteratorPrototype=getPrototypeOf($anyNative.call(new Base)))!==Object.prototype&&IteratorPrototype.next&&(setToStringTag(IteratorPrototype,TAG,!0),LIBRARY||"function"==typeof IteratorPrototype[ITERATOR]||hide(IteratorPrototype,ITERATOR,returnThis)),DEF_VALUES&&$native&&"values"!==$native.name&&(VALUES_BUG=!0,$default=function(){return $native.call(this)}),LIBRARY&&!FORCED||!BUGGY&&!VALUES_BUG&&proto[ITERATOR]||hide(proto,ITERATOR,$default),Iterators[NAME]=$default,Iterators[TAG]=returnThis,DEFAULT)if(methods={values:DEF_VALUES?$default:getMethod("values"),keys:IS_SET?$default:getMethod("keys"),entries:$entries},FORCED)for(key in methods)key in proto||redefine(proto,key,methods[key]);else $export($export.P+$export.F*(BUGGY||VALUES_BUG),NAME,methods);return methods}},{"./_export":175,"./_hide":180,"./_iter-create":188,"./_iterators":191,"./_library":192,"./_object-gpo":197,"./_redefine":202,"./_set-to-string-tag":204,"./_wks":216}],190:[function(require,module,exports){module.exports=function(done,value){return{value:value,done:!!done}}},{}],191:[function(require,module,exports){module.exports={}},{}],192:[function(require,module,exports){module.exports=!0},{}],193:[function(require,module,exports){var META=require("./_uid")("meta"),isObject=require("./_is-object"),has=require("./_has"),setDesc=require("./_object-dp").f,id=0,isExtensible=Object.isExtensible||function(){return!0},FREEZE=!require("./_fails")(function(){return isExtensible(Object.preventExtensions({}))}),setMeta=function(it){setDesc(it,META,{value:{i:"O"+ ++id,w:{}}})},meta=module.exports={KEY:META,NEED:!1,fastKey:function(it,create){if(!isObject(it))return"symbol"==typeof it?it:("string"==typeof it?"S":"P")+it;if(!has(it,META)){if(!isExtensible(it))return"F";if(!create)return"E";setMeta(it)}return it[META].i},getWeak:function(it,create){if(!has(it,META)){if(!isExtensible(it))return!0;if(!create)return!1;setMeta(it)}return it[META].w},onFreeze:function(it){return FREEZE&&meta.NEED&&isExtensible(it)&&!has(it,META)&&setMeta(it),it}}},{"./_fails":176,"./_has":179,"./_is-object":186,"./_object-dp":195,"./_uid":214}],194:[function(require,module,exports){var anObject=require("./_an-object"),dPs=require("./_object-dps"),enumBugKeys=require("./_enum-bug-keys"),IE_PROTO=require("./_shared-key")("IE_PROTO"),Empty=function(){},createDict=function(){var iframeDocument,iframe=require("./_dom-create")("iframe"),i=enumBugKeys.length;for(iframe.style.display="none",require("./_html").appendChild(iframe),iframe.src="javascript:",(iframeDocument=iframe.contentWindow.document).open(),iframeDocument.write("